Төлөм түзүү

Төлөм түзүү

POST /v2/payment · API статусу: stable · Кол коюу: милдеттүү

Сурам телеси

ПараметрТүрүМилдеттүүСүрөттөмө
accountIdStringМилдеттүүТөлөм эсептен алынуучу эсептин ID. userId колдонуучусу бул эсептен акча алууга укуктуу болушу керек.
fieldsObjectМилдеттүүАлуучунун реквизиттери (кызматтын requiredFields караңыз).
service.idStringМилдеттүүFinik домениндеги кызматтын ID.
transactionIdStringМилдеттүүСиздин тараптагы уникалдуу транзакциянын ID. Идемпотенттик ачкыч: ошол эле ID менен кайра жиберилген сурам 409 кайтарат жана төлөмдүн дубликатын түзбөйт.
userIdStringМилдеттүүАтынан сурам жасалып жаткан колдонуучунун ID.

Сурамдын мисалы

POST /v2/payment
POST /v2/payment HTTP/1.1
Host: api.paymentsgateway.averspay.kg
Content-Type: application/json
signature: <signature>
x-api-key: <apiKey>
x-api-timestamp: 1719900000000 // Use Date.now() for the current timestamp.

{
  "accountId": "e2a32f7a-d5c0-11ec-9d64-0242ac120002",
  "fields": {
    "amount": 100,
    "phone": "+996502502502"
  },
  "service": { "id": "averspay" },
  "transactionId": "74e55218-d5b8-11ec-9d64-0242ac120002",
  "userId": "d822f440-d5c0-11ec-9d64-0242ac120002"
}

Жооп (сурам талааларына кошумча)

ПараметрТүрүМилдеттүүСүрөттөмө
idStringМилдеттүүFinik домениндеги транзакциянын уникалдуу ID. GET /v2/payments/{paymentId} ичинде колдонулат.
requestDateNumberМилдеттүүСурам кабыл алынган күн, UNIX timestamp.
statusStringМилдеттүүТөлөмдүн статусу: CANCELED, FAILED, PENDING, PROCESSING, SUCCEEDED.
statusCodeNumberМилдеттүү200 — синхрондук кызмат (натыйжа мурунтан эле финалдык), 201 — асинхрондук (иштетүүгө кабыл алынды, статус кийин келет).
transactionDateNumberМилдеттүү эмесТранзакциянын күнү, UNIX timestamp. Бул талаанын болушу төлөмдүн финалдык абалын билдирет.

Жооптордун мисалдары

200 OK — ийгиликтүү төлөм
{
  "accountId": "e2a32f7a-d5c0-11ec-9d64-0242ac120002",
  "fields": {
    "amount": 100,
    "phone": "+996502502502"
  },
  "requestDate": 1647519215,
  "service": { "id": "averspay" },
  "status": "SUCCEEDED",
  "statusCode": 200,
  "transactionDate": 1652774887442,
  "transactionId": "74e55218-d5b8-11ec-9d64-0242ac120002",
  "userId": "d822f440-d5c0-11ec-9d64-0242ac120002"
}
403 Forbidden — каталуу сурам
{
  "statusCode": 403,
  "errorMessage": "User is not authorized to access this resource with an explicit deny"
}

Статусту текшерүү

GET /v2/payments/{paymentId} · API статусу: stable · Кол коюу: милдеттүү

ПараметрТүрүМилдеттүүСүрөттөмө
paymentIdStringМилдеттүүТөлөмдүн ID (төлөм түзүү жообундагы id).

Качан текшерүү керек: 99% учурда статус кызмат көрсөтүүчүнүн тарабында 30 секунданын ичинде өзгөрөт. Сунушталган стратегия — 30 секунд күтүп, андан кийин статусту текшерүү. Мыкты UX жана өндүрүмдүүлүк үчүн поллингдин ордуна вебхук ишке ашырууну сунуштайбыз.

Сурамдын мисалы

GET /v2/payments/{paymentId}
GET /v2/payments/1354731116_CCB5D786-B5D6-494A-8B6A-26F25BCA1D1B_CREDIT HTTP/1.1
Host: api.paymentsgateway.averspay.kg
signature: <signature>
x-api-key: <apiKey>
x-api-timestamp: 1719900000000 // Use Date.now() for the current timestamp.

Жооптун мисалы (кыскартылган)

200 OK — төлөмдүн статусу
{
  "id": "1354731116_CCB5D786-B5D6-494A-8B6A-26F25BCA1D1B_CREDIT",
  "accountId": "0242ac12-d5c0-11ec-9d64-e2a32f7a0002",
  "amount": 200,
  "fields": {
    "amount": 200,
    "phone": "+996709111213"
  },
  "requestDate": 1672983615075,
  "service": { "id": "averspay" },
  "status": "SUCCEEDED",
  "statusCode": 200,
  "transactionDate": 1672983615133,
  "transactionId": "CCB5D786-B5D6-494A-8B6A-26F25BCA1D1B",
  "transactionType": "CREDIT",
  "userId": "0242ac12-d5c0-11ec-9d64-d822f4400002"
}

Статус SUCCEEDED, FAILED же PROCESSING болушу мүмкүн.

Эсептин балансы

GET /v2/accounts/{accountId} · API статусу: stable · Кол коюу: милдеттүү

ПараметрТүрүМилдеттүүСүрөттөмө
accountIdStringМилдеттүүБалансын билгиңиз келген эсептин ID.

Сурамдын мисалы

GET /v2/accounts/{accountId}
GET /v2/accounts/0242ac12-d5c0-11ec-9d64-e2a32f7a0002 HTTP/1.1
Host: api.paymentsgateway.averspay.kg
signature: <signature>
x-api-key: <apiKey>
x-api-timestamp: 1719900000000 // Use Date.now() for the current timestamp.

Жооптун мисалы

200 OK — баланс
{
  "id": "0242ac12-d5c0-11ec-9d64-e2a32f7a0002",
  "balance": {
    "amount": 200,
    "currency": "KGS"
  },
  "name": "Agent 007"
}