Charge Flow
Charge the customer with the Mandate
Charging a customer with a saved Mandate lets you collect payments on demand or on a schedule—perfect for subscriptions, invoices, or one-click repeat payments.
Prerequisite: Mandate Setup
Before you can charge a customer, you must have a valid Mandate (Direct Debit authorization) for their bank account. See Mandate Setup for details.
Create a Charge
Call the /charge/create
endpoint with the Mandate ID, amount, and a unique reference. This will initiate a direct debit from the customer’s account.
Handle the Response
On success, you’ll receive a Charge object and an orderId
. Use this according to the Status Flow to update your system as the payment progresses.
Create a Charge
A valid mandate ID for the customer’s bank account. Retrieve this from the mandate_setup_succeeded
webhook.
Your unique reference for this charge (e.g., order ID). Must be unique per merchant per order (max 200 chars).
The amount to charge. Must include total
(decimal) and currency
(e.g., EUR, GBP).
A unique key to prevent duplicate charges if the request is retried.
Optional. The subaccount to use for this charge (for platforms/marketplaces).
Optional. Additional data to store with the charge (deprecated).
The unique identifier for the created charge.
The mandate used for this charge.
The order associated with this charge.
The subaccount used for this charge (if any).
Use a new idempotencyKey for each unique charge. If you retry the same charge, use the same key to avoid double-charging the customer.
Always listen for webhooks (e.g., charge_succeeded
, charge_failed
) to update your system as the payment status changes.