PayIn | Card (cross-border)
Transfer to a card of an Uzbek bank with the amount in UZS: requisites.amount_local equals amount.
To get requisites for the Card (cross-border) method, send a request (curl example):
curl -X POST https://api.bopay.io/v1/payments \
-H "Content-Type: application/json" \
-H "X-Identity: <API-key>" \
-H "X-Signature: <Signature>" \
-d '{
"ext_id": "order_12345",
"amount": 500000,
"currency": "UZS",
"method": "CROSS_BORDER_CARD",
"country": "UZ",
"notify_url": "https://merchant.example/webhook"
}'
POST /v1/payments — headers and signature: Authorization.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
ext_id | string | yes | Your order ID, unique |
amount | number | yes | Amount in UZS |
currency | string | yes | UZS. The terminal must work in UZS |
method | string | yes | CROSS_BORDER_CARD |
country | string | no | Requisite country (ISO-2), e.g. UZ. Without it — any available country |
client_id | string | no | Payer ID on your side |
notify_url | string | no | URL for webhooks |
notification_token | string | no | Returned in the X-Notification-Token webhook header |
The response contains the requisites:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"ext_id": "order_12345",
"amount": 500000,
"currency": "UZS",
"status": "PENDING",
"method": "CROSS_BORDER_CARD",
"requisites": {
"type": "card",
"value": "8600123412345678",
"bank": "hamkor_bank",
"bank_name": "Hamkorbank",
"country": "UZ",
"currency": "UZS",
"amount_local": 500000.0
},
"payment_url": "https://pay.bopay.io/invoice?id=550e8400-e29b-41d4-a716-446655440000",
"valid_until": "2026-01-30T12:30:00Z",
"created_at": "2026-01-30T12:15:00Z"
}
Response fields
| Field | Description |
|---|---|
id | Payment ID |
requisites.value | Where to pay: card number |
requisites.bank | Bank |
requisites.amount_local | Amount to pay in requisites.currency |
payment_url | Payment page |
valid_until | Payment deadline |
Show requisites to the payer or redirect them to payment_url. The payer transfers requisites.amount_local in requisites.currency.
Other fields and errors — see Create Payment. Status — webhook or GET /v1/payments/{id}.