canonical: https://jentic.com/apis/buckaroo.io/buckaroo-io

# Buckaroo Checkout JSON Gateway API

Buckaroo's Checkout JSON Gateway is the European payment gateway API used to create transactions across iDEAL, credit cards, SEPA Direct Debit, Bancontact, Klarna, Apple Pay, and other European payment methods. The spec covers transaction creation, status polling for single and multiple keys, cancellation, refund and invoice lookup, data request operations for KYC and additional consumer information, and IBAN/BBAN validation tools. It is the primary integration surface for online merchants who need to accept payments in the Netherlands and broader EU through Buckaroo.

## For AI agents

Create and track payment transactions, run KYC data requests, and validate IBANs across European payment methods on the Buckaroo gateway.

## Scope

Does not handle merchant onboarding, payout reporting, or accounting reconciliation files - use for transaction creation, status, refunds, and IBAN validation only.

## Capabilities

- Create a payment transaction with iDEAL, card, SEPA Direct Debit, Klarna, or other Buckaroo-supported services
- Poll transaction status by key or fetch statuses for multiple transaction keys in one call
- Cancel a single transaction or batch-cancel multiple transactions in one request
- Fetch refund eligibility and pre-filled refund info for a transaction key
- Retrieve invoice information for issued credit invoices via invoice key
- Run a Buckaroo data request for KYC, age verification, or address verification before payment
- Validate or convert IBAN and BBAN strings via the gateway's tools endpoints

## Use cases

### European Checkout with iDEAL and SEPA

Accept payments in the Netherlands and the wider EU by creating a transaction on `/json/Transaction` with the chosen Service (e.g. ideal, sepadirectdebit, paybycard) and the order amount, currency, and invoice number. Buckaroo returns either a final status or a redirect URL for the consumer to authorise the payment, which a checkout flow can present and then poll via getTransactionStatus. End-to-end integration takes a few days when the merchant already has a Buckaroo contract.

Example prompt: POST to `/json/Transaction` with Services.ServiceList containing ideal, an AmountDebit of 49.99, Currency EUR, and an Invoice number, then return the redirect URL

### Refund and Invoice Reconciliation

Reconcile completed transactions with finance records by calling getRefundInfo for any transaction key needing a refund, and getInvoiceInfo for invoice keys to retrieve credit invoice details. Combined with getMultipleTransactionStatuses for batch polling, this powers nightly reconciliation jobs and customer-service refund tooling without screen-scraping the Buckaroo dashboard.

Example prompt: Call getRefundInfo on `/json/Transaction/RefundInfo/{transactionKey}` for a customer's transaction, confirm refundable amount, then create the refund transaction

### Pre-Payment KYC and IBAN Validation

Reduce failed direct-debit attempts and fraud by running a Buckaroo data request via performDataRequest for KYC, age, or address verification, and validating the consumer's IBAN with `/json/Tools/IbanConverter/{iban}` before submitting the payment. This is especially useful for SEPA Direct Debit flows where invalid IBANs cause downstream chargebacks. Validation happens in a single round trip per consumer.

Example prompt: Call validateIban on `/json/Tools/IbanConverter/{iban}` with the customer's IBAN and reject the checkout if the response indicates an invalid IBAN

### AI Agent Payment Initiation Through Jentic

Allow an AI agent to initiate a Buckaroo payment on a user's behalf without ever holding the merchant's website key or secret key. Through Jentic, the agent searches for transaction creation, loads the createTransaction schema, and executes against `/json/Transaction` with the order details. The Buckaroo HMAC Authorization header is computed by Jentic from the secret stored in the vault so the credentials never enter the agent's context.

Example prompt: Use Jentic to search 'create a Buckaroo iDEAL payment', load the createTransaction schema, and execute with the order amount and Service ideal

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/json/Transaction` | Create a new payment transaction with a chosen service |
| GET | `/json/Transaction/Status/{transactionKey}` | Get the status of a single transaction |
| POST | `/json/Transaction/Statuses` | Get statuses for multiple transaction keys |
| POST | `/json/Transaction/Cancel/{transactionKey}` | Cancel a pending transaction |
| GET | `/json/Transaction/RefundInfo/{transactionKey}` | Retrieve refund eligibility and amount for a transaction |
| POST | `/json/DataRequest` | Run a KYC or verification data request |
| GET | `/json/Tools/IbanConverter/{iban}` | Validate an IBAN string |
| GET | `/json/Transaction/InvoiceInfo/{invoiceKey}` | Retrieve credit invoice details by invoice key |

## Key resources

- **Transactions** — Create, cancel, and inspect status of payment transactions across European payment methods
- **Data Requests** — Run KYC, age, and address verification data requests and fetch their service specifications
- **Refunds and Invoices** — Look up refundable amounts and credit invoice details for completed transactions
- **Tools** — Validate IBANs and convert Dutch BBANs to IBAN format

## Why Jentic

- **Setup:** Wiring the Buckaroo JSON Gateway by hand means computing the per-request HMAC-SHA256 Authorization header from your website key and secret and coordinating transaction, status, and refund endpoints yourself. Through Jentic you install once, import the Buckaroo Checkout JSON Gateway API from the API Directory, store the website key and secret once, and your agent calls it.
- **Permission scoping:** Buckaroo puts the transaction key in the URL path (`/json/Transaction/Status/{transactionKey}`, `/json/Transaction/Cancel/{transactionKey}`), so a rule can pin your agent to one transaction: it can read that transaction's status and refund info and nothing else. You choose the operations it may call, so creating or cancelling a transaction is not included unless you add it.
- **Credential handling:** Your Buckaroo website key and secret are stored once, encrypted, by your own Jentic One instance, which computes the HMAC-SHA256 Authorization header at execution time. The secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an iDEAL payment', and Jentic returns the matching createTransaction operation with its Services schema so the agent calls `/json/Transaction` without browsing the reference docs.

## Related APIs

- **Buckaroo Plaza API** — Buckaroo's merchant-management surface complementing the Checkout JSON Gateway
- **Bud Financial API** — Open Banking aggregation that can verify account ownership before a Buckaroo SEPA Direct Debit
- **Buddy PT API** — Alternative payments-adjacent integration for a different European market

## FAQ

### What authentication does the Buckaroo Checkout JSON Gateway API use?

Buckaroo uses an apiKey-style Authorization header that contains an HMAC-SHA256 signature computed from the website key, secret key, request method, URL, timestamp, nonce, and request body hash. Through Jentic the website key and secret key are stored encrypted in the vault and the signature is computed at execution time so the secret key never enters the agent's context.

### Can I create an iDEAL payment with the Buckaroo API?

Yes. POST to `/json/Transaction` with Services.ServiceList containing ServiceName 'ideal', the AmountDebit, Currency 'EUR', Invoice number, and ClientIP. Buckaroo returns a RequiredAction with a RedirectURL for the consumer's bank, plus a transaction key you can poll on `/json/Transaction/Status/{transactionKey}` to confirm settlement.

### What are the rate limits for the Buckaroo API?

Buckaroo does not publish a global per-second rate limit in the spec. Production traffic is shaped by the Buckaroo merchant agreement and abuse-protection limits applied to the gateway. If a request is throttled the API returns an error response and clients should back off before retrying.

### How do I check a Buckaroo transaction status through Jentic?

Install the SDK with pip install jentic, search for 'check Buckaroo transaction status', load the getTransactionStatus schema, and execute it against `/json/Transaction/Status/{transactionKey}` with the transaction key. Jentic computes the HMAC Authorization header from the vault and returns the parsed status response.

### Can I refund a transaction with this API?

Yes. First call getRefundInfo on `/json/Transaction/RefundInfo/{transactionKey}` to confirm the refundable amount and pre-filled fields, then create a new refund transaction via `/json/Transaction` with the appropriate refund Service and the original transaction key in the OriginalTransactionKey field.

### Can I validate an IBAN before charging?

Yes. GET `/json/Tools/IbanConverter/{iban}` returns whether the IBAN is structurally valid and, where supported, the bank name. For Dutch BBAN inputs, `/json/Tools/BbanToIbanConverter/{bban}` converts to full IBAN. Use this before initiating SEPA Direct Debit to avoid downstream chargebacks for invalid account numbers.

### Can I limit what my agent is allowed to do with the Buckaroo Checkout JSON Gateway API?

Yes. Because you run Jentic One yourself, your own rules decide which Buckaroo operations and credentials the agent may use, so you can allow only what a task needs. Since the transaction key sits in the URL path on operations like `/json/Transaction/Status/{transactionKey}` and `/json/Transaction/RefundInfo/{transactionKey}`, a rule can pin the agent to a single transaction and let it read only that status and refund info. Creating a payment on `/json/Transaction` or cancelling one on `/json/Transaction/Cancel/{transactionKey}` stays off limits unless you explicitly grant it, and your website key and secret are held by your instance rather than the agent.
