Download OpenAPI specification:
Платёжный API для бизнеса: пополняйте баланс бизнес-кошелька в рублях и проводите оплату по платёжным QR-кодам через единый REST-интерфейс.
GET /v1/deposit-address.deposit.credited.POST /v1/payments — вернётся сумма, получатель и комиссия.POST /v1/payments/{id}/confirm.payment.completed / payment.failed
или опросом GET /v1/payments/{id}.Все запросы к /v1/* требуют API-ключа в заголовке:
Authorization: Bearer sk_live_xxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxx
Ключи sk_live_… работают с реальными средствами, sk_test_… — для интеграционного
тестирования. Секрет ключа показывается один раз при выпуске.
POST-запросы (/v1/payments, /v1/payments/{id}/confirm) принимают заголовок
Idempotency-Key. Повторный запрос с тем же ключом и телом вернёт сохранённый ответ
и не выполнит операцию повторно. Повтор отмечается заголовком Idempotency-Replayed: true.
Все суммы передаются в минорных единицах (копейках) как целые числа.
Например, 125000 — это 1250.00 ₽.
Ошибки возвращаются с соответствующим HTTP-статусом и телом:
{ "error": { "code": "insufficient_funds", "message": "Недостаточно средств" } }
{- "keys": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "hint": "sk_live_a1b2…f9c0",
- "mode": "live",
- "label": "string",
- "lastUsedAt": "2019-08-24T14:15:22Z",
- "revokedAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}Секрет возвращается только один раз — сохраните его сразу.
| mode | string Default: "live" Enum: "live" "test" |
| label | string <= 64 characters |
{- "mode": "live",
- "label": "Production server"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "secret": "string",
- "hint": "string",
- "mode": "live",
- "label": "string",
- "createdAt": "2019-08-24T14:15:22Z"
}| limit | integer [ 1 .. 100 ] Default: 20 |
| before | string <date-time> Курсор: операции старше указанного времени |
{- "operations": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "topup",
- "direction": "credit",
- "status": "pending",
- "amountMinor": 0,
- "feeMinor": 0,
- "currency": "RUB",
- "merchantName": "string",
- "merchantBank": "string",
- "sourceAsset": "USDT",
- "sourceAmountBase": "string",
- "rate": "string",
- "reference": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z"
}
]
}| limit | integer [ 1 .. 100 ] Default: 20 |
{- "deposits": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "topup",
- "direction": "credit",
- "status": "pending",
- "amountMinor": 0,
- "feeMinor": 0,
- "currency": "RUB",
- "merchantName": "string",
- "merchantBank": "string",
- "sourceAsset": "USDT",
- "sourceAmountBase": "string",
- "rate": "string",
- "reference": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z"
}
]
}Сканирует QR, рассчитывает сумму и комиссию. Средства не списываются до confirm.
| Idempotency-Key | string <= 255 characters Ключ идемпотентности для безопасного повтора запроса. |
| qr required | string <= 2048 characters Содержимое платёжного QR-кода |
| reference | string <= 128 characters Ваш внешний идентификатор платежа |
{- "reference": "order-4821"
}{- "id": "9c2e…",
- "status": "resolved",
- "merchantName": "ООО Ромашка",
- "merchantBank": "Сбербанк",
- "feeMinor": 0,
- "totalMinor": 125000,
- "currency": "RUB",
- "reference": "order-4821",
- "expiresAt": "2026-06-19T12:10:00.000Z",
- "operationId": null,
- "failureReason": null
}Списывает сумму с баланса и отправляет платёж. Статус переходит в confirming → completed/failed.
| id required | string <uuid> |
| Idempotency-Key | string <= 255 characters Ключ идемпотентности для безопасного повтора запроса. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "resolved",
- "merchantName": "string",
- "merchantBank": "string",
- "feeMinor": 0,
- "totalMinor": 0,
- "currency": "RUB",
- "reference": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "operationId": "3051932a-fdd2-48fa-b330-7e7d41535969",
- "failureReason": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "status": "resolved",
- "merchantName": "string",
- "merchantBank": "string",
- "feeMinor": 0,
- "totalMinor": 0,
- "currency": "RUB",
- "reference": "string",
- "expiresAt": "2019-08-24T14:15:22Z",
- "operationId": "3051932a-fdd2-48fa-b330-7e7d41535969",
- "failureReason": "string"
}Устанавливает URL доставки событий. При первой установке возвращает секрет подписи.
required | string or null |
| enabled | boolean |
| rotateSecret | boolean |
{
}{- "merchant": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "status": "active",
- "webhookUrl": "string",
- "webhookEnabled": true,
- "createdAt": "2019-08-24T14:15:22Z"
}, - "secret": "string"
}| limit | integer [ 1 .. 100 ] Default: 20 |
{- "deliveries": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c",
- "eventType": "string",
- "url": "string",
- "status": "pending",
- "attempts": 0,
- "responseStatus": 0,
- "lastError": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "deliveredAt": "2019-08-24T14:15:22Z"
}
]
}Событие deposit.pending. Подписано заголовком X-Ardor-Signature: t=<unix>,v1=<hmac_sha256(t + "." + body)>.
| id required | string <uuid> Идентификатор события (для дедупликации) |
| type required | string Enum: "deposit.pending" "deposit.credited" "payment.processing" "payment.completed" "payment.failed" |
| createdAt required | string <date-time> |
required | object |
{- "id": "evt_…",
- "type": "deposit.pending",
- "createdAt": "2026-06-19T12:00:00.000Z",
- "data": {
- "operationId": "…",
- "amountMinor": 124800,
- "feeMinor": 1900,
- "currency": "RUB",
- "sourceAmount": "20.0",
- "rate": "78.5"
}
}Событие deposit.credited. Подписано заголовком X-Ardor-Signature: t=<unix>,v1=<hmac_sha256(t + "." + body)>.
| id required | string <uuid> Идентификатор события (для дедупликации) |
| type required | string Enum: "deposit.pending" "deposit.credited" "payment.processing" "payment.completed" "payment.failed" |
| createdAt required | string <date-time> |
required | object |
{- "id": "evt_…",
- "type": "deposit.credited",
- "createdAt": "2026-06-19T12:00:00.000Z",
- "data": {
- "operationId": "…",
- "amountMinor": 124800,
- "currency": "RUB",
- "balanceCreditedMinor": 124800
}
}Событие payment.processing. Подписано заголовком X-Ardor-Signature: t=<unix>,v1=<hmac_sha256(t + "." + body)>.
| id required | string <uuid> Идентификатор события (для дедупликации) |
| type required | string Enum: "deposit.pending" "deposit.credited" "payment.processing" "payment.completed" "payment.failed" |
| createdAt required | string <date-time> |
required | object |
{- "id": "evt_…",
- "type": "payment.processing",
- "createdAt": "2026-06-19T12:00:00.000Z",
- "data": {
- "sessionId": "…",
- "operationId": "…",
- "totalMinor": 125000,
- "currency": "RUB",
- "reference": "order-4821"
}
}Событие payment.completed. Подписано заголовком X-Ardor-Signature: t=<unix>,v1=<hmac_sha256(t + "." + body)>.
| id required | string <uuid> Идентификатор события (для дедупликации) |
| type required | string Enum: "deposit.pending" "deposit.credited" "payment.processing" "payment.completed" "payment.failed" |
| createdAt required | string <date-time> |
required | object |
{- "id": "evt_…",
- "type": "payment.completed",
- "createdAt": "2026-06-19T12:00:00.000Z",
- "data": {
- "sessionId": "…",
- "operationId": "…",
- "totalMinor": 125000,
- "currency": "RUB",
- "reference": "order-4821"
}
}Событие payment.failed. Подписано заголовком X-Ardor-Signature: t=<unix>,v1=<hmac_sha256(t + "." + body)>.
| id required | string <uuid> Идентификатор события (для дедупликации) |
| type required | string Enum: "deposit.pending" "deposit.credited" "payment.processing" "payment.completed" "payment.failed" |
| createdAt required | string <date-time> |
required | object |
{- "id": "evt_…",
- "type": "payment.failed",
- "createdAt": "2026-06-19T12:00:00.000Z",
- "data": {
- "sessionId": "…",
- "operationId": "…",
- "totalMinor": 125000,
- "currency": "RUB",
- "reference": "order-4821",
- "failureReason": "rejected"
}
}