Криптовалюта
Заказы в RUB или USD, которые плательщик оплачивает криптовалютой
Перед тем как начать
Авторизация
Как подписывать запросы API-токеном.
Создание платежа
Базовый запрос на создание заказа, который расширяет эта страница.
Этот способ оплаты доступен не всем мерчантам. Уточните доступность у вашего менеджера.
Обзор
Оплата криптовалютой — это обычный заказ в фиатной валюте: вы создаёте его в RUB или USD, а плательщик переводит эквивалент в криптовалюте. Дополнительные поля не нужны: способ оплаты определяется терминалом, к которому подключён ваш сервис.
| Валюта заказа | Чем платит плательщик | Кто выбирает токен |
|---|---|---|
RUB, USD | Криптовалютой, например USDT (TRC-20) или BTC | Настройки терминала, а не плательщик |
Платёжная система пересчитывает сумму заказа в токен по текущему курсу. Плательщик не выбирает токен: он задан в настройках терминала. Какой токен и какая сеть подключены для вашего аккаунта, уточните у менеджера.
Пример запроса
Отправьте обычный запрос на создание заказа в RUB или USD:
curl -X POST "https://api.1capital.capital/v1/orders" \
-H "Content-Type: application/json" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-d '{
"amount": "5000.00",
"currency": "RUB",
"serviceId": 3,
"externalId": "order_12345",
"purpose": "Оплата заказа #12345",
"successUrl": "https://example.com/success",
"failUrl": "https://example.com/fail",
"callbackUrl": "https://example.com/webhooks/payments"
}'Ответ
В ответе возвращается стандартный объект заказа. Заказ создаётся со статусом CREATED; перенаправьте плательщика на paymentLink, чтобы он завершил оплату.
Поля объекта заказа
Заказы с оплатой криптовалютой приходят с paymentType: "CARD": отдельного типа оплаты для криптовалюты нет. Чтобы отличить такие заказы, используйте terminalId.
Что видит плательщик
Перенаправьте плательщика на paymentLink. В зависимости от терминала он попадает на одну из двух страниц:
- страницу оплаты провайдера, где и завершает оплату;
- нашу платёжную форму с реквизитами перевода:
- адрес кошелька и его QR-код;
- точная сумма в токене;
- тег / memo, если он нужен сети. Перевод без него не зачисляется, поэтому плательщик должен указать его в точности как на форме;
- таймер: сколько ещё действуют реквизиты.
Реквизиты кошелька показываются только на платёжной форме. API их не возвращает: вывести их в своём интерфейсе нельзя.
Итоговая сумма
Сумма заказа с оплатой криптовалютой может отличаться от запрошенной. Если плательщик перевёл меньше нужного, заказ остаётся в PENDING до истечения срока оплаты: в это время плательщик ещё может доплатить. После этого заказ закрывается как COMPLETED на фактически оплаченную сумму в валюте заказа. Поле amount заказа обновляется до этого значения.
Зачисляйте плательщику amount из webhook-уведомления или из запроса статуса, а не сумму из своего запроса. Перевод, поступивший после истечения срока оплаты, заказ не меняет.
Статусы
У заказов с оплатой криптовалютой обычные статусы заказа:
| Статус | Когда |
|---|---|
PENDING | Ждём перевод и его подтверждение в сети или доплату недостающей суммы |
COMPLETED | Перевод подтверждён. amount — фактически оплаченная сумма, см. Итоговая сумма |
EXPIRED | До истечения срока оплаты ничего не оплачено |
FAILED | Ошибка оплаты на стороне провайдера |
Webhook-уведомления отправляются при каждой смене статуса, как и для других способов оплаты, см. Статус заказа и webhook-уведомления.
Тестовый режим
На тестовом терминале перевод не выполняется; статус заказа зависит от суммы, как и для других способов оплаты: 1000 — COMPLETED, 1001 — CANCELED, 1002 — FAILED, 1003 — COMPLETED, затем REFUND, любая другая сумма — EXPIRED через 5 минут.
Рекомендации
- Берите оплаченную сумму из webhook-уведомления, а не из своего запроса: после недоплаты она может быть меньше.
- Дождитесь
COMPLETED, прежде чем выдавать товар: перевод в сети — ещё не подтверждённая оплата.