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.
1000 = $10.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 the intent is cancelled with a reason. For a failed payment, check
status_reason on the nested intent_action instead.string
Entity that owns the payment intent.
string
Account credited when the payment completes.
number
Unix timestamp in milliseconds when the intent was created.
object | null
The most recent confirmation attempt for this payment intent. See The Intent Action object.
null until a confirmation is submitted.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. See Payment Refund to issue a refund.
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
Card data encryption
Forcard-acq, send encrypted card details in intent_action.payment_type_data.data. See Encryption for how to get your public key, validate card data before encrypting, and implementation examples in Node.js and Python.
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,
1–12 or zero-padded 01–12.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.
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.
1000 = $10.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.
string
Defaults to the authenticating entity when omitted. Required when acting on a child entity. See Managing child entities for details.
object
Optional confirmation action. Include this to create and confirm the Payment Intent in one request.
Request
Response
Returns a Payment Intent withstatus: "requires_action".
Create and confirm in one request
Includeintent_action when your server already has the encrypted card payload. This still goes through the same authentication rules as a standalone confirmation: if the issuer requires 3DS, the response returns status: "processing", the nested intent_action.status: "pending_user_action", and a next_action.url to redirect the customer to, the same as confirming separately.
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".string
Defaults to the authenticating entity when omitted. Required when acting on a child entity. See Managing child entities for details.
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 used for 3DS authentication. Required when
auth_model is 3ds_required.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. Ifrequires_action is true, redirect the customer to next_action.url.
payment_type_data.card_brand and card_type are not populated while the action is pending_user_action. They appear once the action reaches completed.Payment intent webhooks
Payment Intent webhooks notify your server when a payment reaches a final state. Subscribe topayment_intent.completed, payment_intent.failed, and payment_intent.cancelled to track a payment intent after confirmation. See Event types for the full payload schema, including the nested intent_action.
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, including its most recent intent_action if one exists.
string
required
Payment Intent ID.
string
Defaults to the authenticating entity when omitted. Required when acting on a child entity. See Managing child entities for details.
Response
Returns the Payment Intent object.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
Defaults to the authenticating entity when omitted. Required when acting on a child entity. See Managing child entities for details.
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.
Response
List endpoints for Payment Intents and Intent Actions return the page under
data.items, not data.data. This differs from the standard pagination envelope used elsewhere in the API.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.
string
Defaults to the authenticating entity when omitted. Required when acting on a child entity. See Managing child entities for details.
Response
Retrieve an intent action
GET /intent-actions/{id}
Returns a single Intent Action.
string
required
Intent Action ID.
string
Defaults to the authenticating entity when omitted. Required when acting on a child entity. See Managing child entities for details.
Response
Returns the Intent Action object.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
Defaults to the authenticating entity when omitted. Required when acting on a child entity. See Managing child entities for details.
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.
Response
Like List payment intents, this endpoint returns the page under
data.items, not data.data.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.
string
Defaults to the authenticating entity when omitted. Required when acting on a child entity. See Managing child entities for details.
