Интеграция API
Создание платежа
Инициирование новой транзакции
Создание платёжной ссылки
Для создания новой платёжной ссылки (выставления счета покупателю) отправьте HTTP POST-запрос. Поддерживается два эндпоинта в зависимости от используемого метода авторизации:
HTTP Запрос
1. По API-ключу (для взаимодействия сервер-сервер)
POST /merchant/v1/payment-links
2. По JWT-токену (для запросов из дашборда)
POST /api/v1/payment-links
Параметры запроса (JSON body)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
shop_id |
string (UUID) | Да | Идентификатор вашего магазина. Магазин должен быть в статусе approved (пройти модерацию). |
amount |
number | string | Да | Сумма к оплате в рублях. Должна быть строго больше 0 и содержать не более 2 знаков после запятой. Допускается передавать как число, так и строку (например, 1000 или "1000.00"). |
order_id |
string | Нет | Ваш уникальный внешний ID заказа (будет передан обратно в вебхуке payment.succeeded). |
description |
string | Нет | Описание товара или услуги. Покупатель увидит его на платежной странице. |
expires_in_minutes |
integer | Нет | Срок жизни платёжной ссылки в минутах. Минимальное значение — 1. |
Пример запроса (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": "b79ffcef-5f6e-4adf-aa5f-e885b4d282d9",
"amount": 1000,
"order_id": "ORDER-12345",
"description": "Оплата заказа №12345",
"expires_in_minutes": 60
}'
Ответ API (201 Created)
При успешном создании возвращается объект платёжной ссылки с добавленным полем checkout_url для перенаправления покупателя.
Поля ответа (JSON)
| Поле | Тип | Описание |
|---|---|---|
id |
string (UUID) | Уникальный идентификатор созданной платёжной ссылки. |
shop_id |
string (UUID) | Идентификатор магазина. |
merchant_id |
string (UUID) | Идентификатор мерчанта (владельца магазина). |
order_id |
string | null | Внешний ID заказа. |
description |
string | null | Описание платежа. |
currency |
string | Валюта платежа (всегда RUB). |
amount |
string | Исходная сумма платежа, ₽ (всегда строка с 2 знаками после точки, например "1000.00"). |
fee_percent_bp |
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) | Ссылка на страницу оплаты (СБП, крипта) — перенаправьте покупателя на этот URL. |
expires_at |
string | null | Время истечения срока действия ссылки (ISO 8601). |
paid_at |
string | null | Время оплаты ссылки (ISO 8601). |
created_at |
string | Время создания ссылки (ISO 8601). |
updated_at |
string | Время последнего изменения статуса (ISO 8601). |
gateway_provider |
string | null | Имя шлюза, который обрабатывает транзакцию (например, paritypay). Заполняется при выборе метода оплаты на странице. |
gateway_payment_id |
string | null | ID платежа во внешней платежной системе. |
to_currency |
string | null | Целевая валюта оплаты (например, USDT, BTC, RUB). |
network |
string | null | Сеть блокчейна (для крипты) или "СБП" (для фиата). |
deposit_address |
string | null | Адрес депозита крипты или ссылка СБП (НСПК). |
payer_currency |
string | null | Валюта оплаты покупателя. |
payer_crypto_amount |
string | null | Точная сумма к отправке в криптовалюте. |
qr |
string | null | QR-код для оплаты (data URL в формате base64). |
Пример ответа
{
"id": "9c0526fe-0e45-423d-91ca-368e98b8ea96",
"shop_id": "b79ffcef-5f6e-4adf-aa5f-e885b4d282d9",
"merchant_id": "c80ffcef-5f6e-4adf-aa5f-e885b4d282d9",
"order_id": "ORDER-12345",
"description": "Оплата заказа №12345",
"currency": "RUB",
"amount": "1000.00",
"fee_percent_bp": 100,
"fee_payer": "merchant",
"payer_amount": "1000.00",
"merchant_credit": "990.00",
"platform_revenue": "10.00",
"status": "pending",
"gateway_provider": null,
"gateway_payment_id": null,
"to_currency": null,
"network": null,
"deposit_address": null,
"payer_currency": null,
"payer_crypto_amount": null,
"qr": null,
"expires_at": "2026-07-23T18:50:53Z",
"paid_at": null,
"created_at": "2026-07-23T17:50:53Z",
"updated_at": "2026-07-23T17:50:53Z",
"checkout_url": "https://datagio.finance/checkout/9c0526fe-0e45-423d-91ca-368e98b8ea96"
}
Ошибки API
В случае ошибок при создании платёжной ссылки возвращаются следующие коды ответов:
- 400 Bad Request (
validation_error): Неверные параметры запроса (например, не переданshop_id, илиamountменьше или равен нулю, либо содержит больше двух знаков после запятой). - 401 Unauthorized (
unauthorized): Неверный API-ключ или JWT-токен. - 403 Forbidden (
forbidden): У вас нет доступа к указанному магазину (shop_id). - 404 Not Found (
not_found): Указанный магазин не существует. - 422 Unprocessable Entity (
shop_not_approved): Магазин еще не прошел модерацию и имеет статус, отличный отapproved.
Пример тела ошибки
{
"error": "shop_not_approved",
"message": "shop is not approved"
}