Skip to content

Действия оплаты ​

Поле action объекта платежа — провайдер‑нейтральное действие, которое клиент выполняет, чтобы оплатить. Это дискриминированный union: разбирайте по полю type и игнорируйте неизвестные будущие типы.

Возможные значения: null, qr, redirect.

action: null ​

Действие отсутствует. Причины (в рамках контракта): действие ещё не подготовлено, истекло, либо платёж находится в состоянии, где действие не показывается (в т.ч. финальное или outcome_unknown — безопасное скрытие). Не рассчитывайте, что опрос обязательно приведёт к появлению действия.

QR‑действие ​

json
{
  "action": {
    "type": "qr",
    "value": "<непрозрачное значение>",
    "expires_at": "2024-09-05T12:05:00Z"
  }
}
  • value — непрозрачный платёжный материал для клиента. Не разбирайте и не интерпретируйте его.
  • expires_at — срок действия (может быть null).

Безопасность QR

  • Не декодируйте и не пытайтесь понять содержимое value.
  • Не отправляйте value в сторонние онлайн‑сервисы генерации QR.
  • Если отображаете QR — используйте доверенный локальный рендерер на вашей стороне.
  • Не логируйте и не сохраняйте value без необходимости; это материал платёжной сессии.

Redirect‑действие ​

json
{
  "action": {
    "type": "redirect",
    "url": "https://example.com/pay/session",
    "expires_at": "2024-09-05T12:05:00Z"
  }
}
  • url — HTTPS‑адрес назначения для клиента. Используйте как есть.
  • expires_at — срок действия (может быть null).

Не изменяйте и не «дописывайте» параметры к url, если этого явно не требует ваш сценарий оформления. Не делайте предположений о структуре URL провайдера.

Истечение действия ​

После expires_at при GET действие может вернуться как null, тогда как финансовый status платежа остаётся своим. Истечение или скрытие действия не означает автоматически неуспех платежа — сверяйтесь по status (см. Сверка).