Skip to main content

Contains detailed information about the payment.

id
string

Unique identifier for a payment

Example:

"p_xyz789abc123def456"

reconciliation_reference
string

Reference ID used for reconciling the payment.

Example:

"67612dd5d8efe547cb887d0d"

status
enum<string>

The current status of the payment:

  • draft: The payment has been created but not yet started.
  • initiating: The payment is being initiated and awaiting further steps.
  • pending_action: The payment requires an action from the customer or external system before it can proceed.
  • processing: The payment is actively being processed.
  • succeeded: The payment was completed successfully.
  • failed: The payment is failed.
  • cancelled: The payment was cancelled before completion.
  • expired: The payment has expired and can no longer be completed.
Available options:
draft,
initiating,
pending_action,
processing,
succeeded,
failed,
cancelled,
expired
Example:

"succeeded"

amount
integer

The amount to be charged in the smallest currency unit. For example, 20.00 ZAR is represented as 2000 cents. Learn more about minor units.

Example:

1000

currency
string

The ISO 4217 currency code for the payment.

Example:

"ZAR"

capture_method
enum<string>
default:automatic

Controls how the payment is captured after authorisation:

  • automatic: The payment is captured immediately upon successful authorisation (default). This is equivalent to a standard sale transaction.
  • manual: The payment is authorised only. Funds are reserved on the customer's payment method, but not yet captured. The merchant must explicitly capture or void the payment using the capture or void endpoints.
Available options:
automatic,
manual
Example:

"manual"

intent
enum<string>

The intent of the payment as determined by the platform at creation time:

  • payment: a monetary payment or authorisation was intended. Funds were reserved or settled.
  • payment_method_verification: the payment method was verified without reserving or moving funds. Set when amount: 0 on a supported session type (one_time with save_payment_method: always, or first_in_series).
Available options:
payment,
payment_method_verification
Example:

"payment"

authorised_amount
integer

The total amount authorised on the customer's payment method, in the smallest currency unit (e.g. cents). Set when an authorisation succeeds for a payment method that supports authorisation. For payments that authorise and settle in one flow, this reflects the amount that was authorised and immediately settled. For manual-capture payments, this remains the original authorised total. Subsequent capture and void operations update paid_amount and voided_amount instead. Present only when the payment method supports authorisation.

Example:

100001

paid_amount
integer

The total amount that has been settled for this payment, in the smallest currency unit (e.g. cents). For payments that settle immediately, this typically matches the full payment amount once the payment succeeds. For manual-capture payments, this reflects the portion captured so far, increases with each capture, and does not decrease when any remaining amount is voided.

Example:

100001

voided_amount
integer

The total amount released from the original authorisation by successful void operations, in the smallest currency unit (e.g. cents). Incremented each time authorised funds are released. For manual-capture payments, this reflects the total amount no longer available to capture because it has been voided. Present only when the payment method supports authorisation.

Example:

50001

country
string

The country where the payment was initiated, represented in ISO 3166-1 alpha-2 format.

Example:

"ZA"

payment_method_details
Card · object

Details of the payment method used for the payment.

external_reference
string

External reference for reconciliation or tracking purposes. Must be unique within your merchant account.

Maximum string length: 255
Pattern: ^[a-zA-Z0-9_-]+$
Example:

"INV-2024-001"

last_payment_error
Last Payment Error · object

Details of the last error that occurred during a payment attempt.

mode
enum<string>

Indicates whether the payment is in live or test mode:

  • test: Used for testing and development. Payments are simulated, and no real transactions are processed.
  • live: Used in production to process real payments. Real credit cards and accounts are used, and actual transactions occur.
Available options:
live,
test
metadata
object

Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. NEW Limitations:

  • Maximum 20 keys
  • Key names must be strings (max 40 characters)
  • Values must be strings (max 500 characters)
Example:
{
"customer_id": "cust_123456",
"order_id": "ord_789012"
}
created_at
string<date-time>

ISO 8601 timestamp when the resource was created

Example:

"2025-06-16T10:30:00Z"

updated_at
string<date-time>

ISO 8601 timestamp when the resource was last updated

Example:

"2025-06-16T10:30:00Z"