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

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

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

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

gatewayId

integer

yes

Идентификатор шлюза

amount

string

yes

Сумма платежа

commissionInclude

boolean

no

Включать комиссию в сумму или добавить поверх суммы платежа

fields

Map<string, string>

yes

Список полей для платежного метода

webhookUrl

string

no

URL для отправки уведомлений по платежу

lifetime

integer

no

Время жизни платежа в секундах

Дополнительные комментарии:

  • gatewayId — Идентификатор шлюза. Чтобы его узнать необзодимо получить список платежных методов

  • amount — Сумма платежа. Обратите внимание, что для некоторых платежных методов (например p2p) сумма платежа может измениться, так как пользователь может отправить сумму меньше или больше указанной, в таком случае сумма в платеже обновиться

  • commissionInclude — По умолчанию комиссия включена в сумму платежа. Когда комиссия включена (значение true) пользователю необходимо будет оплатить сумму указанную в поле amount. При значении false к указанной сумме будет добавлен процент комиссии указанный у платежного метода

  • lifetime — Время жизни платежа в секундах. Обратите внимание, что у некоторых платежных методов нельзя указать время жизни, это поле не будет влять на их время жизни

Некоторые платежные методы (например sbp, p2p) требуют подтверждения оплаты пользователем. Для платежей созданными с помощью таких платежных методов будет доступен метод Подтверждение платежа

Описание ответа

Пример тела ответа

{
    "id": "133",
    "gatewayId": "12",
    "status": "PENDING",
    "extra": {
      "accountNumber": "2222222222222222",
      "accountName": "Иванов Иван Иванович",
      "bankName": "bank"
    },
    "paymentCurrency": "RUB",
    "paymentAmount": "4990",
    "destinationCurrency": "USDT",
    "destinationAmount": "string",
    "createdAt": "2023-09-26T13:29:34.172Z"
}

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

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

id

integer

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

gatewayId

integer

Идентификатор платежного шлюза

status

enum

Статус платежа (список доступных статус ниже)

extra

object

Данные для проведения оплаты

paymentCurrency

string

Ожидаемая валюта к оплате

paymentAmount

string

Сумма к оплате

destinationCurrency

string

Ожидаемая валюта зачисления платежа в личном кабинете

destinationAmount

string

Ожидаемая сумма зачисления

createdAt

string

Дата создания платежа

Обратите внимание что теле есть валюта/суммы для оплаты и валюта/сумма к зачислению. Некоторые шлюзы могут сразу конвертировать полученную сумму в криптовалюту

Возможные статусы:

СтатусОписание

PENDING

Платеж в ожидании оплаты или подтверждения

REJECTED

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

CONFIRMED

Оплата подтверждена пользователем

CANCELED

Платеж отклонен пользователем или мерчантом

PROCESSED

Платеж успешен

ERROR

Ошибка в процессе обработки. Для уточнения деталей необходимо связаться с поддержкой

Описание поля Extra

В поле extra находится информация необходимая для проведения оплаты

Для платежных методов типа p2p, sbp оно будет иметь следующее значение:

{
      "accountNumber": "2222222222222222",
      "accountName": "Иванов Иван Иванович",
      "bankName": "bank"
}

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

aaaaaa

accountNumber

string

Реквизиты для отправки средств

accountName

string

Имя получателя для проверки корректности ввода реквизитов

bankName

string

Наименование банка получателя для корректности отправки

Формирование fields

При получении списка платежных методов у них может быть поле fields. Для создания платежа необходимо будет его заполнить

Пример запролнения полей

Ответ запроса платежных методов:

{
  "success": "true",
  "response": [
    {
      "gatewayId": "12",
      "currency": "RUB",
      "alias": "Перевод по номеру карты RUB",
      "type": "p2p",
      "commission": "7.5",
      "minAmount": "1000",
      "fields": [
        {
          "type": "select",
          "name": "bank",
          "alias": "Выберите банк",
          "values": [
            {
              "value": "1",
              "name": "Банк 1"
            },
            {
              "value": "2",
              "name": "Банк 2"
            },
            {
              "value": "3",
              "name": "Банк 3"
            }
          ],
          "required": true,
          "regexp": "^\d$"
        },
        {
          "type": "input",
          "name": "email",
          "alias": "Email",
          "values": [],
          "required": true,
          "regexp": "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"
        },
        {
          "type": "input",
          "name": "comment",
          "alias": "Comment",
          "values": [],
          "required": false,
          "regexp": ""
        }
      ]
    }
  ]
}

В платежном методе есть 3 поля, 2 из них обязательны к заполнению Далее надо будет составить поле fields с типом Map<string, string> Значение должно довлетворять регулярному выражению если оно указано в поле regexp

В нем обязательно должен быть указан идентификатор банка из приведенного списка доступных значений (поле values). Выбранное значение надо положить в fields по ключу указанному в поле name, для банка это "name": "bank"

Теперь поле fields должно выглядеть следующем образом

{
  "bank": 1
}

Второе поле Email заполняем схожим образом, только это поле имеет тип input, значит тут не надо брать значения из values, его должен заполнить пользовать чтоб оно соответствовало регулярному выражению

Теперь поле fields должно выглядеть следующем образом

{
  "bank": 1,
  "email": "email@example.com"
}

Поле с комментарием имеет флаг "required": false, значит его можно не заполнять. Пропустим его

Итоговое тело запроса на создание будет выглядеть примерно так

{
  "gatewayId": "12",
  "amount": "4990",
  "commissionInclude": true,
  "fields": {
    "bank": 1,
    "email": "email@example.com"
  },
  "webhookUrl": "https://domain.site/webhook",
  "lifetime": 0
}

Webhook

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

{
    "id": "133",
    "gatewayId": "12",
    "status": "PENDING",
    "extra": {
      "accountNumber": "2222222222222222",
      "accountName": "Иванов Иван Иванович",
      "bankName": "bank"
    },
    "paymentCurrency": "RUB",
    "paymentAmount": "4990",
    "destinationCurrency": "USDT",
    "destinationAmount": "string",
    "createdAt": "2023-09-26T13:29:34.172Z"
}

Last updated