Payments
Платёж — основная операция канала. Он создаётся до оплаты и сразу несёт ссылки на форму оплаты и QR-код, которые нужно показать плательщику.
Создание платежа
Параметры
amount
string
required
Сумма в рублях, строкой с десятичной точкой. Должна быть больше нуля.
order_id
string
required
Ваш идентификатор операции. Уникальный на уровне бизнес-операции.
method
enum
optional
sbp или card. Если не указан — плательщик выбирает способ сам.
description
string
optional
Основание платежа, видно плательщику и попадает в чек. Допустимы буквы, цифры и пробел, до 250 символов; остальные символы будут вырезаны.
success_url
string
optional
Куда вернуть плательщика после успешной оплаты.
metadata
object
optional
Произвольные пары ключ-значение, возвращаются вместе с платежом.
receipt
object
optional
Состав фискального чека. См. Receipts.
| Name | Type | Required | Description |
|---|---|---|---|
amount
|
string
|
required | Сумма в рублях, строкой с десятичной точкой. Должна быть больше нуля. |
order_id
|
string
|
required | Ваш идентификатор операции. Уникальный на уровне бизнес-операции. |
method
|
enum
|
optional | sbp или card. Если не указан — плательщик выбирает способ сам. |
description
|
string
|
optional | Основание платежа, видно плательщику и попадает в чек. Допустимы буквы, цифры и пробел, до 250 символов; остальные символы будут вырезаны. |
success_url
|
string
|
optional | Куда вернуть плательщика после успешной оплаты. |
metadata
|
object
|
optional | Произвольные пары ключ-значение, возвращаются вместе с платежом. |
receipt
|
object
|
optional | Состав фискального чека. См. Receipts. |
Что возвращается
Поля платежа
id
string
optional
Идентификатор платежа в канале.
status
enum
optional
new, paid, processing, completed, cancelled, rejected, error.
amount
string
optional
Сумма платежа.
refund_amount
string
optional
Сколько уже возвращено по этому платежу.
form_urls
object
optional
Ссылки на форму оплаты: desktop, android, ios. Показывайте ту, что соответствует устройству плательщика.
qr_image
string
optional
Изображение QR-кода со ссылкой на оплату.
order_id
string
optional
Ваш идентификатор, переданный при создании.
paid_at
string
optional
Когда получена оплата.
expires_at
string
optional
До какого момента платёж можно оплатить.
receipts
array
optional
Сформированные чеки по платежу.
| Name | Type | Required | Description |
|---|---|---|---|
id
|
string
|
optional | Идентификатор платежа в канале. |
status
|
enum
|
optional | new, paid, processing, completed, cancelled, rejected, error. |
amount
|
string
|
optional | Сумма платежа. |
refund_amount
|
string
|
optional | Сколько уже возвращено по этому платежу. |
form_urls
|
object
|
optional | Ссылки на форму оплаты: desktop, android, ios. Показывайте ту, что соответствует устройству плательщика. |
qr_image
|
string
|
optional | Изображение QR-кода со ссылкой на оплату. |
order_id
|
string
|
optional | Ваш идентификатор, переданный при создании. |
paid_at
|
string
|
optional | Когда получена оплата. |
expires_at
|
string
|
optional | До какого момента платёж можно оплатить. |
receipts
|
array
|
optional | Сформированные чеки по платежу. |
⚠
Отгрузка — по completed
paid означает только, что деньги от плательщика получены. Финальный успех — completed. Между ними платёж ещё может уйти в rejected.
Жизненный цикл
Переходы
new
enum
optional
Платёж создан, форма оплаты доступна, деньги не получены.
paid
enum
optional
Оплата от плательщика получена, цикл продолжается.
processing
enum
optional
Идёт обработка на стороне эквайера.
completed
enum
optional
Успешный финал. Только здесь операция считается завершённой.
cancelled
enum
optional
Неоплаченный платёж отменён или истёк.
rejected
enum
optional
Отклонён эквайером. Финальный статус, повторить нельзя — создайте новый платёж.
error
enum
optional
Ошибка в процессе. В ответе есть код отказа.
| Name | Type | Required | Description |
|---|---|---|---|
new
|
enum
|
optional | Платёж создан, форма оплаты доступна, деньги не получены. |
paid
|
enum
|
optional | Оплата от плательщика получена, цикл продолжается. |
processing
|
enum
|
optional | Идёт обработка на стороне эквайера. |
completed
|
enum
|
optional | Успешный финал. Только здесь операция считается завершённой. |
cancelled
|
enum
|
optional | Неоплаченный платёж отменён или истёк. |
rejected
|
enum
|
optional | Отклонён эквайером. Финальный статус, повторить нельзя — создайте новый платёж. |
error
|
enum
|
optional | Ошибка в процессе. В ответе есть код отказа. |
Чтение платежа
Состояние платежа получают по его идентификатору. Это же — способ разрешить неизвестный исход: если создание платежа завершилось таймаутом, проверьте операцию по своему order_id, прежде чем создавать новую.
⊘
Повторное создание — это второй платёж
Запросы создания не идемпотентны. Повтор после таймаута создаёт вторую операцию, а не возвращает первую.
Об изменениях статуса удобнее узнавать уведомлениями, а не опросом — см. Status Updates.