Skip to main content

Contains detailed information about the payment.

id
string

Unique identifier for the payment.

Example:

"pay_rOaZNqKZMFxsRb2NBL1cj"

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"

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

An optional merchant-provided identifier for external tracking or referencing. This identifier could also be propogated to Payments by upstream APIs such a Payment Session API.

Example:

"dfffc3e8-2ad9-4f09-8e8b-b3b85bbd39ae"

last_payment_error
Last Payment Error · object

Details of 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. You can use test credit cards and accounts to ensure your integration works as expected before going live.
  • live: Used in production to process real payments. Real credit cards and accounts are used, and actual transactions occur. This mode is for accepting real money from customers.
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>

The timestamp indicating when the payment was created, in ISO 8601 format.

Example:

"2026-02-12T09:00:44.224Z"

updated_at
string<date-time>

The timestamp indicating when the payment details were last updated, in ISO 8601 format.

Example:

"2026-02-12T09:02:23.153Z"