BiGapiguides
POST /v1/bank/reconcile · 1 cent per operation

Match invoices against a bank statement

Send e-invoices and one bank statement (CAMT or MT940): which invoices are paid, partly paid or open, and which payments match no invoice. Matches by invoice number, amount, IBAN and name.

Try it

curl -X POST https://api.bigapi.dev/v1/bank/reconcile -H 'Authorization: Bearer $KEY' -F 'files=@kontoauszug.xml' -F 'files=@RE-1001.xml' -F 'files=@RE-1002.pdf'

New keys come with 100 free operations, no signup: curl -X POST https://api.bigapi.dev/v1/keys. Failed calls cost nothing.

Parameters

NameMeaning
files requiredUp to 49 e-invoices (XRechnung or ZUGFeRD, XML or PDF) plus exactly one bank statement (CAMT .xml or MT940), in any order. Send each file as files.
directionoutgoing: your own invoices, matched against money received; incoming: supplier invoices, matched against money paid (also by the supplier's IBAN). If no invoice matches in the chosen direction but some match in the other, the warning direction_mismatch says so; no_payments_in_direction if the statement has no payments that way.
Allowed: outgoing, incoming
Default: "outgoing"
outputjson for agents; xlsx with the sheets 'Rechnungen' and 'Zahlungen ohne Rechnung'.
Allowed: json, xlsx
Default: "json"

Result and price

1¢ · 1 cent per operation

Returns application/json | spreadsheet. Response headers carry the cost (X-BigAPI-Cost) and notes about your input (X-BigAPI-Warnings).

Good to know

Errors your agent should handle

400 need_one_statementSend exactly one bank statement (CAMT or MT940) together with the invoices.
400 no_invoicesNo readable e-invoice among the files.

From an agent (MCP)

Connect BiGapi as an MCP server: https://api.bigapi.dev/mcp (hosted) or npx -y @bigapi/mcp (local). Then ask in plain words; the agent finds bank_reconcile on its own.

Here are my invoices from October and the bank statement. Which ones are still unpaid?