Skip to main content
Payment Intents let you accept card and Apple Pay payments into an account. Create an intent for the amount you want to collect, then confirm it with an intent action.

The Payment Intent object

string
Unique payment intent identifier.
string
ISO 4217 currency code. e.g. USD, GBP, EUR.
number
Amount in the smallest currency unit. 5000 = $50.00 USD.
string
Your unique order or transaction reference.
string
Optional human-readable payment description.
string
Intent status. One of requires_action, processing, completed, cancelled, or failed.
string
Reason for the current status. Present when a payment fails or is cancelled with a reason.
string
Entity that owns the payment intent.
string
Account credited when the payment completes.
number
Unix timestamp in milliseconds when the intent was created.

Payment intent statuses


The Intent Action object

string
Unique intent action identifier.
string
Currency inherited from the payment intent.
number
Payment amount inherited from the payment intent.
number
Fee charged for the payment in the smallest currency unit.
number
Amount charged for the payment.
number
Amount refunded so far in the smallest currency unit.
string
Client reference inherited from the payment intent.
string
Action performed. Currently confirm.
string
Payment category. Currently collections.
string
Payment method. One of card-acq or applepay-acq.
object
Payment method data returned for the action. Sensitive card details are never returned.
string
Action status. One of pending, pending_user_action, completed, or failed.
string
Reason for the current status. Present when a payment fails.
string
Entity that owns the intent action.
string
Account credited when the payment completes.
string
Payment Intent linked to this action.
boolean
true when the customer must complete a redirect or challenge.
object
Next step for the customer when requires_action is true.
string
URL the customer is redirected to after authentication.
number
Unix timestamp in milliseconds when the action was created.

Intent action statuses


Retrieve intent_action

To rerieve an intent_action, send a GET request to this endpoint /payment-intents/:id

Card data encryption

For card-acq, send encrypted card details in intent_action.payment_type_data.data. Encrypt this JSON object with RSA-OAEP SHA-256 using the encryption_public_key returned when you create or rotate an API key:
string
required
Card PAN. 13–19 digits. Spaces are ignored after decryption.
string
required
Expiry month, 112 or zero-padded 0112.
string
required
Four-digit expiry year. The expiry date must not be in the past.
string
required
Card verification value. 3 or 4 digits.
string
Optional name printed on the card.
Never send raw card details in an API request. Only send the encrypted Base64 value in payment_type_data.data.

Create a payment intent

POST /payment-intents Creates a payment intent for a card payment.

Request parameters

string
required
ISO 4217 currency code. e.g. USD.
number
required
Amount in the smallest currency unit. 5000 = $50.00 USD.
string
required
Account to credit when the payment completes.
string
required
Unique order or transaction reference. 1–100 characters. The same reference cannot be reused for the same account.
string
A human-readable payment description. Maximum 250 characters.
object
Optional confirmation action. Include this to create and confirm the Payment Intent in one request.

Request

Response

Returns a Payment Intent with status: "requires_action".

Create and confirm in one request

Include intent_action when your server already has the encrypted card payload and wants to submit the payment immediately.

Confirm a payment intent

POST /intent-actions Confirms a payment intent with card or Apple Pay payment data.

Request parameters

string
required
Payment Intent to confirm. The intent must have status: "requires_action".
object
required
Confirmation action details.
string
required
Always confirm.
string
required
Always collections.
string
required
Payment method. One of card-acq or applepay-acq.
object
required
Payment method data.
string
Encrypted Base64 card data. Required for card-acq; omit for applepay-acq.
object
required
Billing address. For applepay-acq, only country is required.
string
Card authentication model. Defaults to 3ds_required.
object
Browser data for 3DS authentication.
object
required
Customer details for the payment.
string
URL to redirect the customer to after authentication. Required unless auth_model is 3ds_disabled.

Card request

Apple Pay request

Response

Returns an Intent Action. If requires_action is true, redirect the customer to next_action.url.

Payment intent webhooks

Payment Intent webhooks notify your server when a payment reaches a final state.
Return a 2xx response to acknowledge receipt. See Webhooks for delivery and retry details.

Retrieve a payment intent

GET /payment-intents/{id} Returns a single Payment Intent.
string
required
Payment Intent ID.

List payment intents

GET /payment-intents Returns a paginated list of Payment Intents.
string
Filter by status.
string
Filter by client reference.
string
Filter by currency.
string
Filter by account.
string
Filter by creation date start.
string
Filter by creation date end.
number
Maximum number of records to return.
string
Cursor for the next page.
string
Cursor for the previous page.

Cancel a payment intent

PATCH /payment-intents/{id} Cancels a Payment Intent that has not been confirmed. Only intents with status: "requires_action" can be cancelled.
string
required
Payment Intent ID.
string
required
Must be cancel.
string
Cancellation reason. 1–100 characters.

Retrieve an intent action

GET /intent-actions/{id} Returns a single Intent Action.
string
required
Intent Action ID.

List intent actions

GET /intent-actions Returns a paginated list of Intent Actions.
string
Filter by currency.
string
Filter by client reference.
string
Filter by payment type. e.g. card-acq.
string
Filter by status.
string
Filter by Payment Intent ID.
string
Filter by account.
string
Filter by creation date start.
string
Filter by creation date end.
number
Maximum number of records to return.
string
Cursor for the next page.
string
Cursor for the previous page.

Verify an intent action

POST /intent-verifications/{id} Rechecks an Intent Action that has not reached a final status. If the action is already completed or failed, the current action is returned.
string
required
Intent Action ID.