Reconcile transaction

POST https://api.invunion.com/api/v1/transactions/:code/reconcile transactions:write Markdown

Ignore, include, or unlink matches on a bank transaction. To allocate a payment to an invoice, use Create match.

This is inbox control for one transaction, identified by `transaction_code`. It does not create a settlement.

`ignore` cancels live matches and hides the line from invoice matching. `include` brings an ignored line back and re-runs matching. `unlink_all` cancels every live match on the line; set `ignore` to true to exclude it afterwards. `unlink_match` cancels one match. `save` only updates an existing live match (invoice, customer, payment method, and amount together) for the Invunion workbench. `matchId` is the match UUID, not the transaction code.

See also

  • Update match (PUT/api/v1/matches/:id). Change the amount or cancel one match without deleting the row.
  • Cancel match (DELETE/api/v1/matches/:id). Permanently delete one match.
  • Matches . Which call to use for each change.

Path parameters

NameTypeRequired
code

Transaction code (`transaction_code`).

Example: TX-8891

string

Max 50

Required

Body parameters

NameTypeRequired
action

ignore, include, and unlink_all are the usual public actions. save updates an existing live match and cannot create one; use Create match.

string

No maximum

Required
Allowed valuesignoreincludeunlink_allunlink_matchsave
matchId

Required for save and unlink_match. UUID of a live match on this transaction. Not used for ignore, include, or unlink_all.

Example: 1c9e6679-7425-40de-944b-e07fc1f90ae7

string

No maximum

Optional
counterpartyId

Required for save. Counterparty code (`account_code`).

Example: CPT-042

string

No maximum

Optional
paymentMethodId

Required for save. Catalog payment-method code that belongs to the counterparty.

Example: PM-001

string

No maximum

Optional
invoiceId

Required for save. Invoice number billed to the counterparty.

Example: INV-2026-0042

string

No maximum

Optional
matchedAmount

Required for save. Positive amount allocated on this match.

Example: 1000

number
Optional
ignore

For unlink_all only. If true, also ignore the transaction after unlinking.

Allowed valuestruefalse
boolean
Optional

Errors

This operation can return the following errors in addition to generic HTTP failures.

Error HTTP code Description
Missing Bearer token 401 The Authorization header is missing or is not a Bearer token.
Invalid or revoked API key 401 The API key is unknown, malformed, expired, or has been revoked.
API key is missing scope transactions:write 403 The key does not include transactions:write. A write scope does not imply the matching read scope.
Too many requests, please try again later 429 Wait and retry. The Retry-After header is the number of seconds to wait.
Validation failed 400 The body failed schema validation. details lists field and message.
Tenant required 400 The authenticated credential is not bound to a tenant.
An ignored transaction cannot be reconciled 400 save and unlink_match are refused on an ignored transaction. Use include first.
Invoice does not belong to the selected counterparty 400 invoiceId is not billed to counterpartyId.
Payment method does not belong to the selected counterparty 400 paymentMethodId is not linked to counterpartyId.
Transaction and invoice currencies must match 400 Cross-currency matching needs a conversion rate, or the currencies differ when no rate applies.
No applicable currency conversion rate is available 400 The match needs FX and no rate is stored for that date.
A live match already exists for this transaction and invoice 400 Another active match already links this pair.
Transaction not found 404 No transaction with this code exists in the authenticated tenant.
Match not found 404 matchId is missing, not on this transaction, or not live.
Invoice not found 404 invoiceId does not exist in this tenant.
Internal server error 500 Unexpected server error. The JSON body includes correlationId. Retry with backoff.