API Reference2026-02-19.previewPayments

Create a new payment

POST
/v1/payments

Authorization

headerApi-Key<token>

Header Parameters

Api-Key*string
Merchant-Id*string
WCP-Version?string|null
Sdk-Name?string|null
Sdk-Version?string|null
Sdk-Platform?string|null
Idempotency-Key?string|null

Request Body

application/json
  1. body
amount*

Amount to be paid

checkout?null|
expiresAt?|

Optional custom expiration timestamp (Unix seconds since epoch). Must be in the future if provided. If not provided, defaults to 5 minutes from now.

Formatint64
referenceId*string

Merchant/PSP order ID

Response Body

Payment created successfully

application/json
  1. response
expiresAt*integer

Payment expiration timestamp, in seconds since epoch

Formatint64
Range0 <= value
gatewayUrl*string

Gateway URL to redirect the user to for payment

isFinal*boolean

True if the payment is in a final state and no longer requires polling

paymentId*PaymentId

Payment ID

pollInMs?|

Time to poll for payment status, in milliseconds. Not present if the payment is in a final state.

Formatint64
Range0 <= value
status*PaymentStatus

Payment status

Value in"requires_action""processing""succeeded""failed""expired""cancelled"
curl -X POST 'https://api.pay.walletconnect.com/v1/payments' \  -H 'Api-Key: string' \  -H 'Merchant-Id: string' \  -H 'Content-Type: application/json' \  -d '{  "amount": {    "unit": "string",    "value": "string"  },  "referenceId": "string"}'
{  "expiresAt": 0,  "gatewayUrl": "string",  "isFinal": true,  "paymentId": "pay_7fa2ecc101ARZ3NDEKTSV4RRFFQ69G5FAV",  "pollInMs": 0,  "status": "requires_action"}