Delete Tradelines
Delete Tradeline Due to Fraud
Mark a tradeline as fraud so it can be removed from active reporting and downstream partner systems.
About
This flow lets your organization remove a tradeline when it is determined to be fraudulent.
The deletion flow happens in two stages:
- Immediate fraud close: Bloom marks the tradeline as closed with a fraud reason right away.
- Final deletion sync: Bloom later finalizes the deletion and sends a
tradeline.deletedwebhook after reporting systems have caught up.
This protects data consistency while still giving you an immediate fraud action.
Before you begin
You need the following before using this flow:
- Fraud deletion must be enabled for your organization.
- The tradeline must currently be open.
- Your request must be authenticated for the user/account that owns the tradeline.
If you are unsure whether fraud deletion is enabled for your org, contact your Bloom representative.
Authentication
Use your normal Bloom API authentication for protected user actions.
If authentication is missing or invalid, the request will be rejected.
Headers
| Header | Value | Description |
|---|---|---|
| Authorization | Bearer <access-token> | Authenticates your API request. Required. |
| Content-Type | application/json | Always application/json. Required. |
GraphQL request
Use the deleteTradeline(input: DeleteTradelineInput!) mutation. Pass the tradeline ID in input.tradelineId:
mutation DeleteTradelineForFraud($input: DeleteTradelineInput!) {
deleteTradeline(input: $input) {
tradeline {
id
status
closeReason
}
}
}Example variables:
{
"input": {
"tradelineId": "4c4f50ae-1977-4e64-b143-c9bfc2f80501"
}
}Response
On success, the mutation returns the updated tradeline object.
At this point, you should expect:
statusto beCLOSEDcloseReasonto beFRAUD
Example response:
{
"data": {
"deleteTradeline": {
"tradeline": {
"id": "4c4f50ae-1977-4e64-b143-c9bfc2f80501",
"status": "CLOSED",
"closeReason": "FRAUD"
}
}
}
}What happens next
After the immediate response:
- Bloom records the fraud closure and removes active attestation linkage for that tradeline.
- Bloom runs a follow-up deletion process on a schedule.
- Once downstream reporting confirms timing requirements, Bloom marks the tradeline as fully deleted.
- Bloom sends a
tradeline.deletedwebhook to eligible partner organizations.
Webhook behavior
When final deletion is completed, Bloom sends:
- Event type:
tradeline.deleted
Webhook delivery follows your organization's webhook configuration and eligibility settings.
Error reference
Common request errors
| Error message | What it means | What to do |
|---|---|---|
| Not implemented / unavailable | Fraud deletion is not enabled for your organization. | Contact your Bloom representative to enable fraud deletion. |
| Invalid request | The tradeline is not in a deletable state (for example, it is already closed or deleted). | Confirm the current tradeline status, then retry only if it is open. |
| Not found | The tradeline ID does not exist, or it does not belong to the authenticated user. | Verify the tradeline ID and ensure you are calling with the correct user context. |
| Unauthorized | Authentication is missing or invalid. | Send a valid access token and retry. |
Operational notes
- Deletion finalization is asynchronous. A successful mutation response means the fraud close succeeded immediately; full deletion and webhook delivery can happen later.
- You can safely monitor webhook delivery or poll tradeline status if your workflow requires confirmation of final deletion.
Best practices
- Treat the GraphQL response as confirmation of fraud close.
- Treat the
tradeline.deletedwebhook as confirmation of final deletion sync. - Store the tradeline ID in your system so you can reconcile status changes and webhook events.
Updated 19 days ago
