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:

  1. Immediate fraud close: Bloom marks the tradeline as closed with a fraud reason right away.
  2. Final deletion sync: Bloom later finalizes the deletion and sends a tradeline.deleted webhook 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:

  1. Fraud deletion must be enabled for your organization.
  2. The tradeline must currently be open.
  3. 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

HeaderValueDescription
AuthorizationBearer <access-token>Authenticates your API request. Required.
Content-Typeapplication/jsonAlways 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:

  • status to be CLOSED
  • closeReason to be FRAUD

Example response:

{
  "data": {
    "deleteTradeline": {
      "tradeline": {
        "id": "4c4f50ae-1977-4e64-b143-c9bfc2f80501",
        "status": "CLOSED",
        "closeReason": "FRAUD"
      }
    }
  }
}

What happens next

After the immediate response:

  1. Bloom records the fraud closure and removes active attestation linkage for that tradeline.
  2. Bloom runs a follow-up deletion process on a schedule.
  3. Once downstream reporting confirms timing requirements, Bloom marks the tradeline as fully deleted.
  4. Bloom sends a tradeline.deleted webhook 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 messageWhat it meansWhat to do
Not implemented / unavailableFraud deletion is not enabled for your organization.Contact your Bloom representative to enable fraud deletion.
Invalid requestThe 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 foundThe 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.
UnauthorizedAuthentication 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.deleted webhook as confirmation of final deletion sync.
  • Store the tradeline ID in your system so you can reconcile status changes and webhook events.