Создание инвойса и проведения платежа [new] - оплата криптовалютой

Оплата криптовалютой

1. Общая информация

API позволяет создать инвойс и затем получить реквизиты для оплаты по созданному инвойсу.

Базовый URL: https://external.api.nbcgate.tech

Авторизация: для всех запросов передавайте интеграционный ключ в заголовке:

  • X-API-Key: <ваш_ключ>

Заголовки запроса:

  • Content-Type: application/json

  • Accept: application/json (рекомендуется)

Префикс маршрутов: методы доступны по путям с префиксом /api/... (не /invoice/... с корня домена).


2. Этапы работы

Шаг 1. Создание инвойса

Создаётся новый инвойс с указанием суммы, монеты, pay link и продукта.

Метод и URL: POST /api/invoice/create

Пример запроса (cURL):

curl -X POST 'https://external.api.nbcgate.tech/api/invoice/create' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: <ваш_ключ>' \
  -d '{
    "amount": 100,
    "coin_id": 1,
    "id": 12345,
    "product_id": 67890
  }'

Тело запроса:

Поле
Тип
Обязательное
Описание

amount

number

да

Сумма инвойса

coin_id

number

да

Идентификатор монеты/валюты в вашей модели

id

number

да

Идентификатор pay link

product_id

number

да

Идентификатор продукта

Успешный ответ (200): возвращается идентификатор созданного инвойса в поле idInvoice (не обёртка success / invoice_id).

Пример:

Поле
Тип
Описание

idInvoice

number

Идентификатор инвойса для следующего шага (/api/invoice/pay)


Шаг 2. Проведение платежа по инвойсу

По идентификатору инвойса возвращаются данные для перевода (адрес, сумма в криптовалюте, сеть, код актива и т.д.).

Метод и URL: POST /api/invoice/pay

Пример запроса (cURL):

Тело запроса:

Поле
Тип
Обязательное
Описание

idInvoice

number

да

Идентификатор инвойса из ответа шага 1 (idInvoice)

Пример успешного ответа (200):

Описание полей ответа:

Поле
Тип
Описание

address

string

Адрес для перевода

amount

string

Сумма к переводу в криптовалюте (строка)

rate

number

Курс

name

string

Название сети

code

string

Код криптовалюты

transferCommissionWeis

number

Комиссия перевода (в единицах, зависящих от бэкенда)

pay_link_amount

number

Сумма по pay link

paid_amount

number

Уже оплаченная сумма

commission_amount

number

Комиссия

merchant_commission_amount

number

Комиссия мерчанта

client_commission_amount

number

Комиссия клиента

Часть числовых полей может быть 0, если для данного сценария они не заполняются.

Как использовать ответ: отправьте на address сумму amount в сети/активе, соответствующих name и code.


3. Полный сценарий (два запроса подряд)

  1. Создать инвойс — POST /api/invoice/create → в ответе idInvoice.

  2. Получить реквизиты оплаты — POST /api/invoice/pay с телом { "idInvoice": <тот же id> } → объект с address, amount, code и остальными полями.

В отличие от старой документации, нет полей вида success, message или отдельного invoice_id в JSON — идентификатор инвойса при создании — это idInvoice, а ответ на оплату — не «успех операции», а данные платежа.


4. Ошибки

Формат ошибок в этом сервисе: statusCode, message, при необходимости массив errors с полем code.

Типичные случаи:

HTTP
Когда

400

Некорректное тело JSON, невалидные поля

401

Нет или неверный X-API-Key

500

Внутренняя ошибка при обращении к внутреннему сервису или разборе ответа

Конкретные коды бизнес-ошибок (например, «инвойс не найден») зависят от нижележащего CryptoPay API; при ошибке обычно приходит 500 с текстом ошибки в errors / field в ответе сервиса.


Last updated