BankConnector is an ISO 20022 payment engine as a service. Send canonical payment JSON in, BankConnector validates it, converts it to the exact pain.001 flavour your bank expects, and delivers it — then normalises whatever comes back (camt.053, pain.002) into one shape. You write one integration; the bank-specific XML dialects are BankConnector's problem, not yours.
Get Started · API Reference · Guides
BankConnector is multi-tenant: Platform (a BankConnector customer) → Company (the Platform's end-user organisation) → User (a login). There are two kinds of reader — every guide page is tagged for one or both.
You are a company connecting your own system to a bank. You'll hold an API key, submit payments, and receive results. Read, in order: Getting Started → Authentication → Core Concepts → Submitting Payments → Idempotency → Receiving Results → Errors & Retries → Validation → Best Practices → Going Live.
You run a BankConnector workspace for multiple companies — provisioning companies, managing tenants, and everything an Integration Client does too. Read the whole guide; operator-only surfaces are called out with 🏗️ where they appear.
This is a real request. GET /profiles is stateless and works with the public, read-only sandbox key — no signup required.
curl -H "X-API-Key: demo_sandbox_public_key_readonly" \
https://sandbox.bankconnector.com/profiles
And here's the core of the integration — submitting a payment. This is the same canonical shape used in our own test suite, not an invented example:
curl -X POST https://sandbox.bankconnector.com/journal/payments \
-H "X-API-Key: $BC_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-10432-v1" \
-d '{
"platformId": "<platformId>",
"companyId": "<companyId>",
"bankKey": "abn-amro-nl",
"payment": {
"messageId": "ORDER-2026-10432",
"initiatingParty": { "name": "Acme Holding" },
"payments": [{
"paymentId": "p1",
"paymentType": "sepa",
"executionDate": "2026-07-15",
"debtor": {
"name": "Acme Holding",
"account": { "iban": "NL91ABNA0417164300" },
"agent": { "bic": "ABNANL2A" }
},
"transactions": [{
"endToEndId": "e1",
"amount": "1250.00",
"currency": "EUR",
"creditor": {
"name": "Supplier BV",
"account": { "iban": "FR1420041010050500013M02606" },
"agent": { "bic": "BNPAFRPP" }
}
}]
}]
}
}'
# 201 { "id": "...", "journalNo": "...", "status": "converted", "xml": "<Document>...", "deliveryMode": "host-to-host" }
Open the full interactive version — with your own sandbox key and live responses — in the API Reference.