Skip to main content
POST
Send a payment request

Authorizations

Authorization
string
header
required

Your API key, e.g. sk_live_... or sk_test_....

Headers

Idempotency-Key
string

Optional. Makes this write safe to retry: the same key replays the first response instead of acting twice.

Maximum string length: 255

Body

application/json
to
string
required
Example:

"+919812345670"

body
string
required
Maximum string length: 1024
items
object[]
required
Required array length: 1 - 999 elements
payment
object
required
phone_number_id
string
reference_id
string
Maximum string length: 35
Pattern: ^[A-Za-z0-9_.\-]+$
Maximum string length: 60
header_image_url
string<uri>
goods_type
enum<string>
Available options:
digital-goods,
physical-goods
catalog_id
string
expires_in_minutes
integer
Required range: 5 <= x <= 43200
expiry_description
string
Maximum string length: 120
importer
object

Required by WhatsApp for physical goods that are not from a catalog.

beneficiary
object
tax
object
shipping
object
discount
object
template
object

Send as a template, to reach contacts outside the 24-hour window.

metadata
object

Response

The payment.

id
string<uuid>
reference_id
string
to
string
status
enum<string>
Available options:
pending,
processing,
partially_shipped,
shipped,
completed,
canceled
status_label
string
payment_status
enum<string>
Available options:
pending,
captured,
failed,
partially_refunded,
refunded
payment_status_label
string
payment_method
enum<string>
Available options:
payment_gateway,
upi_intent_link,
payment_link
gateway
string | null
payment_configuration
string | null
currency
string
Example:

"INR"

total_amount
integer

Paise.

amount_paid
integer

Paise.

amount_refunded
integer

Paise.

paid_with
string | null

How the contact paid, e.g. upi.

goods_type
string
order
object

The items and totals as sent to WhatsApp.

transactions
object[]
refunds
object[]
last_error
string | null
message_id
string<uuid> | null
phone_number_id
string | null
metadata
object | null
expires_at
string<date-time> | null
paid_at
string<date-time> | null
created_at
string<date-time>
updated_at
string<date-time>