Skip to main content
POST
Charge a pending payment order

Authorizations

x-api-key
string
header
required

API key for authentication (required)

x-merchant-id
string
header
required

Merchant ID for identifying the merchant (required)

Path Parameters

id
string<uuid>
required

Payment order ID

Body

application/json

Request body for charging a pending payment order. The persist flag is not supported when charging a pending order.

paymentMethod
object
required
billingAddress
object

Billing address (required when paymentMethod.type is 'card')

deviceInformation
object

Device and browser information for fraud detection

isVirtualTerminal
boolean
default:false

Whether the payment originates from a Virtual Terminal. When true, the 3DS flow is skipped in the Decision Manager.

Response

Payment order charged successfully

id
string<uuid>
required

Payment order unique identifier

Example:

"123e4567-e89b-12d3-a456-426614174000"

amount
number
required

Total amount charged to the customer (subtotalAmount + surchargeAmount).

Example:

257.5

currency
string
required

Currency code

Example:

"MXN"

status
enum<string>
required

Payment order status

Available options:
PENDING,
PROCESSING,
REFERENCE_GENERATED,
AUTHORIZED,
PARTIALLY_AUTHORIZED,
ACTION_REQUIRED,
COMPLETED,
PARTIALLY_PAID,
CANCELLATION_REQUESTED,
CANCELLED,
FAILED,
REFUND_PROCESSING,
PARTIALLY_REFUNDED,
REFUNDED
Example:

"PENDING"

externalMerchantReference
string

External merchant reference ID

Example:

"ORDER-12345"

subtotalAmount
number

Merchandise subtotal — the amount agreed before any surcharge. Immutable after order creation.

Example:

250

surchargeAmount
number | null

Surcharge applied on top of subtotalAmount. Null when no surcharge applies.

Example:

7.5

surchargeRate
number | null

Snapshot of the merchant's surcharge rate (percent) at charge time. Null when no surcharge applies.

Example:

3

orderNumber
string

System-generated order number

Example:

"C25123101"

description
string

Payment order description

Example:

"Payment for order #12345"

metadata
object | null

Arbitrary JSON metadata stored with the payment order

Example:
dueDate
string<date-time> | null

Due date for the payment order

Example:

"2026-04-15T00:00:00.000Z"

createdAt
string<date-time>

Creation timestamp

Example:

"2025-10-20T10:00:00.000Z"

paymentMethod
object
allowPartials
boolean

Echoes the allowPartials flag from creation. When true, the order accepts additional Payments via the addPayment endpoint until it is fully covered.

Example:

true

amountPaid
number

Cumulative sum of captured amounts on this order. On split-tender orders that get partially refunded and re-paid, this can grow beyond amount because it is a historical ledger; use amountPending (or compute amountPaid - amountRefunded) to know the live balance.

Example:

200

amountPending
number

Outstanding amount left to cover, derived as max(0, amount - (amountPaid - amountRefunded)). Reaches 0 when the order is fully paid net of refunds.

Example:

50

amountRefunded
number

Cumulative sum of refunded amounts across the order's Payments. Like amountPaid, this is a historical ledger and is bounded per Payment by module-payment.

Example:

50

payment
object

The Payment that triggered this response (the one just created for the addPayment / charge call, or the original Payment for a regular create).

payments
object[]

All Payments associated with this order, ordered by creation time (oldest first), including the one in the payment field. Useful for split-tender clients that need to enumerate every Payment.

customer
object
payerAuthentication
object

3DS authentication details (when required)