Developers

Developers

xPay API provides reliable tools to integrate QR payments. The system supports flexible settings and integration with external services.

XPAY API advantages

Payment scenarios that serve both business goals and UX.

Pay with any banking app in Kyrgyzstan

Users choose their preferred app and pay by QR without extra steps.

Payment page with bank buttons

A ready pay page with a QR code and quick bank app buttons.

Dynamic and static QR

Generate a QR per payment or use static QR with a fixed amount.

Flexible payment identifiers

Pass payer, service, and comment IDs for clean reconciliation.

Automatic payment status notifications

Webhooks let your system process incoming payments immediately.

Redirect after payment

Send customers back to the desired screen after payment.

For you

Free API customization for your use case

If you need a non‑standard payment flow, we can implement the logic on our side and align the integration.

Clients connect XPAY API in 3 days

The API is clear and simple — integration into your system takes minimal time.

Below are the 3 core steps to receive QR payments via XPAY.

Authorization

Send your credentials in the request and receive an access token. Use the Bearer token for subsequent requests.

Request body

POST
{
  "client_id": "<YOUR_CLIENT_ID>",
  "client_secret": "<YOUR_CLIENT_SECRET>"
}

For testing we provide credentials upon request. For production, use your user’s unique keys available in the XPAY dashboard Profile section.

QR generation

Send a request to create a QR with required parameters and the authorization token.

Required fields: uuid and amount.

Headers

POST
{
  "Authorization": "Bearer <YOUR_ACCESS_TOKEN>",
  "Accept": "application/json"
}

Request body

POST
{
  "uuid": "985b0981-8e71-41bf-97fd-4e8769e8cd9f",       // merchant id
  "type": "dynamic",                                    // QR type
  "payer_id": "10000000000005",                         // payer id
  "service_id": "1",                                    // service id
  "service_name": "MyService",                          // service name
  "comments": "Payment comment",                         // QR comment
  "callback_url": "http://webhook.url",                 // webhook endpoint
  "return_url": "http://redirect.url",                  // redirect after payment
  "check_url": "http://confirmation.url",               // confirmation endpoint before unlocking QR
  "amount_change": false,                               // allow amount change
  "amount": 1000                                        // amount
}

Response

200 OK
{
  "status": "Success",
  "message": "Generate QR Code",
  "data": {
    "qr_transaction_id": "2843595907tv78Stf2coPEXvu",
    "qr_code": "https://pay.xpay.kg#00020101021132450012ab2b.xpay.kg01011101400407202310247120211332900251745226190sa6vxjr52p62ui25204599953034175909Telemedia63044e70",
    "identificator": "29435071778cycy252qj7u29y",
    "type": "dynamic",
    "payer_id": "10000000000005",
    "service_id": "1",
    "service_name": "MyService",
    "comments": "Payment comment",
    "callback_url": "http://webhook.url",
    "return_url": "http://redirect.url",
    "amount_change": false,
    "request_amount": 1000,
    "amount": 1000,
    "payable": 992
  }
}

QR payment

Every QR is generated as a pay.xpay.kg link. Open it in a browser to jump to a bank app or pay in one click.

For mobile and web services, it’s recommended to provide the pay.xpay.kg link instead of converting it to a QR.

OPEN BANK APPSSAVE QR TO GALLERYMULTI‑LANGUAGEREDIRECT SUPPORT
pay.xpay.kg

QR status

Get the payment status via webhook or by calling the status endpoint with the transaction ID in the path.

Response

GET
{
  "status": "Success",
  "message": "Status QR Code",
  "data": {
    "qr_transaction_id": "1734439544EjZ25uVX16UDKxX",
    "pay_status": "COMPLETED",
    "transaction_uuid": "9dc11610-0651-40ee-8459-cabe889fec3x",
    "trx": "467de507-5a4d-4a26-bb95-9bdf7258f300",
    "request_amount": "240.00000000",
    "amount": "235.00000000",
    "payable": "233.12000000",
    "created_at": "2024-11-05T05:20:51.000000Z",
    "executed_time": "2024-12-18 18:50:44"
  }
}

Payment statuses

ACTIVE
Active
WAITING
Waiting for payment
PROCESSING
Processing
COMPLETED
Completed
ERROR
Error
CANCELED
Canceled

Need full documentation?

Leave a request — we will provide docs and test access for integration.

KG

Request sent

We will contact you soon.