Payment Docs
Основы

Создание платежа

Создайте заказ и перенаправьте плательщика на платёжную страницу

Платёж начинается с заказа. Вы создаёте его одним запросом, получаете paymentLink и перенаправляете на него плательщика. Остальное берёт на себя платёжная страница.

Запросы подписываются заголовком X-Api-Token, см. Авторизация.

Эндпоинт

POST /v1/orders

Параметры запроса

ПолеТипОбязательноеОписание
amountstring (decimal)✅ ДаСумма заказа
currencystringЗависит от терминалаВалюта заказа (ISO 4217). Обязательна для мультивалютных терминалов
serviceIdinteger✅ Да, для новых аккаунтовСервис, через который провести платёж
externalIdstring / null❌ НетID заказа в вашей системе. Возвращается в webhook-уведомлениях; используйте его для сопоставления записей
externalUserIdstring / null❌ Нет (обязательно для некоторых методов)ID пользователя в вашей системе
isFeeOnUserboolean❌ НетПереложить комиссию на плательщика
purposestring / null❌ НетНазначение платежа, которое видит плательщик
successUrlstring / null❌ Нет (если указан в настройках)URL для редиректа после успешной оплаты
failUrlstring / null❌ НетURL для редиректа после неуспешной оплаты
callbackUrlstring / null❌ НетURL для webhook-уведомлений по этому заказу. Если не указан, используется адрес из настроек мерчанта

Объекты для отдельных способов оплаты

Для некоторых стран и способов оплаты требуются дополнительные данные о плательщике или способе оплаты. Они передаются в том же запросе в виде дополнительных полей:

ПолеТипНазначение
customerobjectДанные плательщика: имя, email, телефон, страна, документ. Обязателен для большинства локальных методов
extraParamsstringВыбирает конкретный способ оплаты на терминале, например Apple Pay или Trustly
cardobjectДанные карты для прямых карточных платежей

Точный набор обязательных полей зависит от страны и метода. Найдите свой случай в разделах Платежи по странам или Способы оплаты.

Пример запроса

curl -X POST "https://api.riopay.online/v1/orders" \
  -H "Content-Type: application/json" \
  -H "X-Api-Token: YOUR_API_TOKEN" \
  -d '{
    "amount": "1000.50",
    "serviceId": 3,
    "externalId": "order_1234",
    "externalUserId": "user_987",
    "isFeeOnUser": true,
    "purpose": "Payment for order #1234",
    "successUrl": "https://example.com/success",
    "failUrl": "https://example.com/fail",
    "callbackUrl": "https://example.com/webhooks/payments"
  }'

Ответ

Успешный запрос возвращает объект заказа. Тот же объект возвращается эндпоинтом статуса и отправляется в webhook-уведомлениях.

{
  "id": "a1b2c3d4-e5f6-7g8h-i9j0-k1l2m3n4o5p6",
  "status": "CREATED",
  "statusMessage": "Ok",
  "purpose": "Payment for order #1234",
  "amount": "1000.5",
  "commission": "1.5",
  "received": "999.0",
  "currency": "EUR",
  "paymentType": null,
  "shopId": "a1b2c3d4-e5f6-7g8h-i9j0-k1l2m3n4o5p6",
  "terminalId": "a1b2c3d4-e5f6-7g8h-i9j0-k1l2m3n4o5p6",
  "merchantId": "a1b2c3d4-e5f6-7g8h-i9j0-k1l2m3n4o5p6",
  "externalId": "order_1234",
  "externalUserId": "user_987",
  "paymentLink": "https://example.com/payment?id=a1b2c3d4-e5f6-7g8h-i9j0-k1l2m3n4o5p6",
  "successUrl": "https://example.com/success",
  "failUrl": "https://example.com/fail",
  "callbackUrl": "https://example.com/webhook",
  "metadata": null,
  "fingerprint": null,
  "ipAddress": null,
  "gatewayTransactionId": null,
  "payedAt": null,
  "updatedAt": "2023-03-21T12:34:56Z",
  "createdAt": "2023-03-21T12:34:56Z"
}

Поля объекта заказа

ПолеТипОписание
idstring (UUID)ID заказа в нашей системе. Используйте его для проверки статуса
statusstringТекущий статус заказа, см. Статусы заказа
statusMessagestring / nullТекстовое описание статуса
purposestring / nullНазначение платежа
amountstringСумма заказа
commissionstring / nullКомиссия, удержанная за заказ
receivedstring / nullСумма, зачисленная на ваш баланс
currencystringВалюта заказа (ISO 4217)
paymentTypestring / nullСпособ оплаты, которым воспользовался плательщик
shopIdstring (UUID)ID магазина
terminalIdstring (UUID)Терминал, через который обрабатывается заказ
merchantIdstring (UUID)ID вашего мерчанта
externalIdstring / nullID заказа в вашей системе (переданное вами значение)
externalUserIdstring / nullID пользователя в вашей системе (переданное вами значение)
paymentLinkstringСсылка на платёжную страницу. Перенаправьте на неё плательщика
successUrlstring / nullURL для редиректа после успешной оплаты
failUrlstring / nullURL для редиректа после неуспешной оплаты
callbackUrlstring / nullURL для webhook-уведомлений по этому заказу (null — используются настройки мерчанта)
metadataobject / nullДополнительные данные
fingerprintstring / nullОтпечаток устройства плательщика
ipAddressstring / nullIP-адрес плательщика
gatewayTransactionIdstring / nullID транзакции на стороне провайдера
payedAtstring / nullВремя оплаты (ISO 8601)
createdAtstringВремя создания (ISO 8601)
updatedAtstringВремя последнего обновления (ISO 8601)

Статусы заказа

СтатусФинальныйОписание
CREATEDНетЗаказ создан, платёжная ссылка ещё не открыта
PENDINGНетОжидает оплаты
COMPLETEDДаПлатёж успешно завершён, средства получены
FAILEDУсловноОшибка оплаты
CANCELEDУсловноЗаказ отменён системой
EXPIREDУсловноСрок действия заказа истёк до оплаты
BLOCKEDУсловноТранзакция заблокирована банком
REFUNDДаПлатёж возвращён плательщику. Устанавливается после COMPLETED
CHARGEBACKДаПлатёж оспорен плательщиком и отменён банком. Устанавливается после COMPLETED

FAILED, CANCELED, EXPIRED и BLOCKED не являются строго финальными. Если банк позже подтверждает платёж из-за ошибки на своей стороне, заказ переходит в COMPLETED, и webhook-уведомление об этом отправляется автоматически. Будьте готовы получить COMPLETED по заказу, который вы уже отметили как неуспешный.

Некоторые поля могут быть null в зависимости от стадии обработки. Актуальные схемы запросов и ответов всегда доступны в Swagger-документации (ссылка в верхнем меню).

Перенаправление плательщика

Перенаправьте плательщика на paymentLink из ответа. После оплаты плательщик будет перенаправлен на successUrl или failUrl.

Не считайте редирект на successUrl подтверждением оплаты. Только статус COMPLETED, полученный через webhook-уведомление или эндпоинт статуса, подтверждает, что средства поступили.

Следующие шаги

На этой странице