Match transaction to a booking
Assigns a bank transaction to an existing journal intent and marks it as reconciled. The link is always established at the intent level, not at the level of individual booking lines. For foreign-currency items, reconciliation runs against the EUR booking value; currently the full open document amount is always closed and the difference is booked as realized FX gain/loss.
POST
/v1/bank-transactions/:id/reconcile Authorization
Authorization string header required API key in the format
ll_.... Pass as a Bearer token. Request Body
intent_id uuid required Booking intent
candidate_kind string required
"bank_booking", "open_receivable" or "open_liability" open_item_account string conditional Required for
open_receivable / open_liability Responses
200
Success
400
INVALID_INPUT Required fields are missing or values do not match the expected format.
404
NOT_FOUND The requested resource was not found.
404
TARGET_NOT_FOUND The booking target (intent) does not exist or does not belong to this tenant.
400
DIRECTION_MISMATCH The debit/credit direction of the transaction does not match the booking.
400
SETTLEMENT_EXCEEDS_OPEN_AMOUNT
422
UNSUPPORTED_SETTLEMENT_CURRENCY
409
TARGET_AMBIGUOUS Multiple matching bookings found — specify the intent ID explicitly.
POST
cURL /v1/bank-transactions/:id/reconcile -cmd">curl --request -method">POST -punct">\
--url 'https://api.ledgerlou.de/v1/bank-transactions/:id/reconcile' -punct">\
--header 'Authorization: Bearer ll_your_key' -punct">\
--header 'Content-Type: application/json' -punct">\
--data '{
"intent_id": "b2c3d4e5-...",
"candidate_kind": "open_liability",
"open_item_account": "3300"
}' 200 Response
JSON {
"ok": true,
"mode": "<string>",
"intent_id": "<string>"
}