Skip to main content
POST
Create a payment

Headers

Authorization
string
default:NONE
required

Bearer JWT for user-facing flows (Bearer eyJraWQ...), or the literal string NONE when authenticating via API key.

Example:

"Bearer eyJraWQ..."

X-Api-Key
string
default:NONE
required

API key for server-to-server flows, or the literal string NONE when authenticating via JWT.

Example:

"pcx_abc123_xxxx"

Body

application/json
amount
number<float>
required
currency
enum<string>
required
Available options:
USD,
NGN,
GBP,
EUR,
KES,
GHS,
ZAR,
RWF
Example:

"NGN"

beneficiary_id
string
required
payment_method
enum<string>
required
Available options:
bank_transfer,
card,
mobile_money,
crypto,
wallet
direction
enum<string>
required
Available options:
inbound,
outbound,
external
org_id
string | null
target_amount
number<float> | null
target_currency
string | null

Destination currency for cross-currency payments. When currency and target_currency differ, a valid org_rate_id is required.

metadata
object
instructions
string | null

Response

Payment created

payment_id
string
amount
number<float>
currency
string
user_id
string
status
enum<string>
Available options:
initiated,
reviewed,
confirmed,
processing,
pending,
completed,
failed,
refunded,
rejected,
canceled
direction
enum<string>
Available options:
inbound,
outbound,
external
payment_method
enum<string>
Available options:
bank_transfer,
card,
mobile_money,
crypto,
wallet
org_id
string | null
beneficiary_id
string
transaction_id
string | null
target_amount
number<float> | null
target_currency
string | null
metadata
object
instructions
string | null
comments
string | null
created_at
string<date-time>
updated_at
string<date-time>