Интеграция API
Создание платежа
Инициирование новой транзакции
Создание платёжной ссылки
Для создания платёжной ссылки отправьте HTTP POST. Эндпоинт зависит от авторизации. Магазин должен быть approved. Поле expires_in_minutes опционально.
HTTP Запрос
1. По API-ключу (сервер-сервер)
POST /merchant/v1/payment-links
2. По кассовому ключу
POST /api/v1/merchant/payments — Authorization: Bearer dg_live_..., shop_id не нужен.
3. По сессии (дашборд)
POST /api/v1/payment-links
Параметры запроса (JSON body)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
shop_id |
integer | Да* | ID магазина (approved). Не нужен с кассовым dg_live_.... |
amount |
number | string | Да | Сумма в рублях, строго больше 0, не больше 2 знаков после запятой (1000 или "1000.00"). |
order_id |
string | Нет | Ваш внешний ID заказа (вернётся в вебхуке payment.succeeded). |
description |
string | Нет | Описание на странице оплаты. |
expires_in_minutes |
integer | Нет | Срок жизни ссылки в минутах. |
Комиссия (fee_payer)
Кто платит комиссию — настройка магазина. fee = amount × fee_bps / 10000.
fee_payer |
покупатель платит | мерчанту зачисляется |
|---|---|---|
merchant (default) |
amount |
amount − fee |
client |
amount + fee |
amount |
split |
amount + fee/2 |
amount − fee/2 |
На платеже fee_bps — ставка выбранного метода (крипта или СБП).
Пример запроса (API-ключ)
curl -X POST https://api.datagio.finance/merchant/v1/payment-links \
-H "X-API-Key: pk_live_your_public_key" \
-H "X-API-Secret: sk_live_your_secret_key" \
-H "Content-Type: application/json" \
-d '{
"shop_id": 1,
"amount": 1000,
"order_id": "ORDER-12345",
"description": "Оплата заказа №12345",
"expires_in_minutes": 60
}'
Ответ API (201 Created)
В ответе есть payer_amount, merchant_credit, platform_revenue, fee_payer и checkout_url (алиасы pay_url / paymentUrl).
Поля ответа (JSON)
| Поле | Тип | Описание |
|---|---|---|
id |
string (UUID) | ID платёжной ссылки. |
shop_id |
integer | ID магазина. |
order_id |
string | null | Внешний ID заказа. |
description |
string | null | Описание платежа. |
currency |
string | Всегда RUB. |
amount |
string | Исходная сумма, ₽ ("1000.00"). |
fee_bps |
integer | Ставка выбранного метода в базисных пунктах (100 = 1%). |
fee_payer |
string | merchant, client или split. |
payer_amount |
string | Сколько платит покупатель, ₽. |
merchant_credit |
string | К зачислению мерчанту, ₽. |
platform_revenue |
string | Комиссия платформы, ₽. |
status |
string | pending · paid · expired · canceled · failed. |
checkout_url |
string (URI) | Страница оплаты — перенаправьте покупателя сюда. |
expires_at |
string | null | Истечение срока (RFC3339, +03:00). |
paid_at |
string | null | Время оплаты. |
created_at |
string | Время создания. |
updated_at |
string | Последнее изменение. |
Пример ответа
{
"id": "9c0526fe-0e45-423d-91ca-368e98b8ea96",
"shop_id": 1,
"order_id": "ORDER-12345",
"description": "Оплата заказа №12345",
"currency": "RUB",
"amount": "1000.00",
"fee_bps": 500,
"fee_payer": "merchant",
"payer_amount": "1000.00",
"merchant_credit": "950.00",
"platform_revenue": "50.00",
"status": "pending",
"expires_at": "2026-09-17T18:50:00+03:00",
"paid_at": null,
"created_at": "2026-09-17T17:50:00+03:00",
"updated_at": "2026-09-17T17:50:00+03:00",
"checkout_url": "https://datagio.finance/pay/9c0526fe-0e45-423d-91ca-368e98b8ea96"
}
Ошибки API
{
"error": {
"code": "common.err.validation_failed",
"message": "amount must be > 0 with at most 2 decimal places"
}
}
- 400 (
common.err.validation_failed/common.err.invalid_json): неверные параметры или битый JSON. - 401 (
common.err.unauthorized): неверный ключ или сессия. - 403 (
common.err.forbidden): нет доступа к магазину. - 404 (
common.err.not_found): магазин не найден. - 422: магазин не в статусе
approved.