Skip to main content

PayIn | Card (cross-border)

Transfer to a card of a Georgian bank with the amount in GEL: 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": 200,
"currency": "GEL",
"method": "CROSS_BORDER_CARD",
"country": "GE",
"notify_url": "https://merchant.example/webhook"
}'

POST /v1/payments — headers and signature: Authorization.

Parameters​

FieldTypeRequiredDescription
ext_idstringyesYour order ID, unique
amountnumberyesAmount in GEL
currencystringyesGEL. The terminal must work in GEL
methodstringyesCROSS_BORDER_CARD
countrystringnoRequisite country (ISO-2), e.g. GE. Without it — any available country
client_idstringnoPayer ID on your side
notify_urlstringnoURL for webhooks
notification_tokenstringnoReturned in the X-Notification-Token webhook header

The response contains the requisites:

{
"id": "550e8400-e29b-41d4-a716-446655440000",
"ext_id": "order_12345",
"amount": 200,
"currency": "GEL",
"status": "PENDING",
"method": "CROSS_BORDER_CARD",
"requisites": {
"type": "card",
"value": "4405123412345678",
"bank": "tbc_bank",
"bank_name": "TBC Bank",
"country": "GE",
"currency": "GEL",
"amount_local": 200.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​

FieldDescription
idPayment ID
requisites.valueWhere to pay: card number
requisites.bankBank
requisites.amount_localAmount to pay in requisites.currency
payment_urlPayment page
valid_untilPayment 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}.