Интеграция 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.