Skip to main content

A Payment Request represents a request for payment that can be shared via a link or sent to a banking app for authorization and Payment.

id
string

Unique identifier for the Payment Request.

Example:

"pr_6phg74i4jG9wbzZbFDUQB"

type
enum<string>
default:link

Delivery mode of the payment request.

Available options:
link,
push
Example:

"link"

status
enum<string>

Current status of the Payment Request.

  • Link: active, paid, expired
  • Push: active, paid, expired, failed
Available options:
active,
paid,
expired,
failed
Example:

"active"

payment_id
string

Associated payment ID when the request has been paid. Unique identifier for a payment

Example:

"p_xyz789abc123def456"

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"

external_reference
string

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

Maximum length: 255
Example:

"INV-2024-001"

expires_at
string<date-time> | null

ISO 8601 timestamp indicating when the Payment Request expires.

Defaults (if not provided):

  • Link (type=link or omitted): 24 hours from created_at
  • Push (type=push): 2 minutes from created_at

Must be in the future when creating or updating.

Example:

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

description
string

Human-readable description of what the payment is for

Maximum length: 500
Example:

"Product purchase"

Details for link-based payment requests.

push
object

Details for push (bank) payment requests. Uses a provider-specific sub-object. Beta — only Capitec is supported.

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 10 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>

Creation timestamp (UTC).

Example:

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

updated_at
string<date-time>

Last update timestamp (UTC).

Example:

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