Skip to content

Ignore a bank statement line

The bank_statements.lines.ignore operation: POST /api/v1/bank_statements/lines/{id}/ignore in the REST API and the bank_statements_lines_ignore tool in the MCP server.

POST/api/v1/bank_statements/lines/{id}/ignore

Takes a line out of the review queue without paying an invoice, with the reason: a bank fee, a processor payout, a refund, or a partial payment settled with the customer another way. The line stays in the statement as ignored; nothing is posted.

At a glance

  • REST: POST /api/v1/bank_statements/lines/{id}/ignore
  • MCP tool: bank_statements_lines_ignore
  • Operation ID: bank_statements.lines.ignore
  • Scope: Legal entity
  • Permission: invoices:write
  • Risk tier: write
  • Dry run: Supported (send Ownrecord-Dry-Run: true)
  • Idempotency: Idempotency-Key required
  • Modes: Test and live
  • Authentication: API key with the invoices:write scope
  • Since: M5

Request

Path parameters

FieldTypeDescription
idbsl_… ID

Body

A JSON object (Content-Type: application/json):

FieldTypeRequiredDescription
reasonstringYesWhy the line pays no invoice (a fee, a payout, a refund, a partial payment settled otherwise).
expectedVersioninteger (at least 1)No

Response

200 OK with a JSON object:

FieldTypeDescription
idbsl_… ID
object"bank_statement_line"
entityIdent_… ID
livemodeboolean
importIdbsi_… ID
rowintegerThe line's row in its file (the header is row 1).
bookingDatestring
amountmoneySigned: incoming money is positive.
referencestring
counterpartystring
matchStatusone of unmatched, matched, partial, ignoredmatched (paid an invoice), partial and unmatched (the review queue) or ignored.
reviewobject or nullWhy the line wasn't matched automatically, and the invoices it may pay.
invoiceIdinv_… ID or nullThe invoice the line paid (matched) or points to (partial).
brandIdbrd_… ID or null
ledgerTransactionIdtxn_… ID or null
payoutItemIdstring or nullThe processor payout (a reconciliation item) a matched line confirms instead of paying an invoice.
matchedByone of automatic, manual or null
matchedAtdate-time or null
ignoredReasonstring or null
versioninteger
createdAtdate-time
updatedAtdate-time

Examples

A bank fee

HTTP
POST /api/v1/bank_statements/lines/bsl_01m4tx5nj8emwbyf7y9vcf48bc/ignore
Authorization: Bearer or_test_…
Idempotency-Key: 3f1c9a52-7d0e-4b8f-9a61-0c2d5e8b7f14
Content-Type: application/json

{
  "reason": "Bank fee"
}

Response (200):

JSON
{
  "id": "bsl_01m4tx5nj8emwbyf7y9vcf48bc",
  "object": "bank_statement_line",
  "entityId": "ent_01m4tx5nj8emwbyf7y9vcf47zm",
  "livemode": false,
  "importId": "bsi_01m4tx5nj8emwbyf7y9vcf48ba",
  "row": 3,
  "bookingDate": "2026-11-04",
  "amount": {
    "amount": "450000000",
    "currency": "EUR"
  },
  "reference": "Invoice 2026-000132",
  "counterparty": "Berg Software AG",
  "matchStatus": "ignored",
  "review": {
    "reason": "amount_only",
    "candidateInvoiceIds": ["inv_01m4tx5nj8emwbyf7y9vcf48bd"],
    "candidates": [
      {
        "invoiceId": "inv_01m4tx5nj8emwbyf7y9vcf48bd",
        "number": "GEN-2026-000132",
        "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47z0"
      }
    ]
  },
  "invoiceId": null,
  "brandId": null,
  "ledgerTransactionId": null,
  "payoutItemId": null,
  "matchedBy": null,
  "matchedAt": null,
  "ignoredReason": "Bank fee",
  "version": 2,
  "createdAt": "2026-11-05T09:00:00.000Z",
  "updatedAt": "2026-11-05T10:00:00.000Z"
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400A field is malformed or out of range.Fix the fields listed in details.issues and send the request again.
resource_not_found404No bank statement import or line with this ID is visible to the request.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
bank_statement_line_resolved409The line was matched or ignored already.Read the line: matchStatus and invoiceId say how it was resolved. A matched line paid its invoice; reverse that with the invoice's own actions if it was wrong.
version_conflict409The line changed since you read it (expectedVersion); retry.Fetch the object again and retry the change.
permission_denied403The credentials can't record invoice payments for this entity (invoices:write, finance).Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, invalid_json, unsupported_media_type, authentication_required, api_key_invalid, scope_required, idempotency_key_required, idempotency_key_reused, idempotency_in_progress, approval_required, approval_rejected, approval_expired, stale_approval, approval_policy_denied, rate_limited, internal_error.