Reconcile transaction

POST https://api.invunion.com/api/v1/transactions/:code/reconcile transactions:write Idempotency-Key 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 of one match.
  • Reverse match (POST/api/v1/matches/:id/reverse). Reverse one wrong payment with a reason.
  • 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 More than 100 requests in one minute from this API key or IP address. Wait for the Retry-After header (seconds) and retry.
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.
Idempotency-Key must be 8-255 characters: letters, digits, ".", "_", ":" or "-". 400 The Idempotency-Key header is present but malformed.
A request with this Idempotency-Key is still being processed. 409 The first request with this key has not finished. Retry after it completes. code is idempotency_in_progress.
This Idempotency-Key was already used with a different request body. 422 Send a new key for a different request. code is idempotency_key_reuse.