Выставить счёт
Счёт на подписку (purpose: subscription и plan_id) или на доп. устройства (purpose: devices и devices). Клиента нет — заводится. Продление — тот же вызов на тот же client_id: срок прибавляется к текущему, ссылка подписки не меняется. Ссылку payment_url отдайте клиенту, результат оплаты — GET /payments/{payment_id}.
Заголовок Idempotency-Key обязателен — обычно номер заказа в вашей системе. 201 — счёт выставлен; 200 — повтор с тем же ключом и теми же полями, в ответе тот же счёт и replayed: true; 409 IDEMPOTENCY_KEY_REUSE — ключ уже занят счётом с другими полями; 409 OPERATION_IN_PROGRESS — счёт по этому ключу ещё выставляется, повторите тем же ключом через пару секунд; 503 PAYMENT_UNAVAILABLE — счёт не выставлен, повторите тем же ключом.
Authorizations
Ключ партнёра vgo_live_…, его выдаёт платформа. Хранится только на сервере партнёра.
Headers
Ключ повтора, обычно номер заказа в вашей системе, до 200 символов. Повтор с тем же ключом и теми же полями не выставит второй счёт. Нет ключа — 400 IDEMPOTENCY_KEY_REQUIRED, длиннее — 400 IDEMPOTENCY_KEY_TOO_LONG
1 - 200Body
Тело POST /payments. Неизвестные поля отклоняются — 422 VALIDATION_ERROR.
Id клиента в вашей системе: 1–128 символов A–Z a–z 0–9 . _ : @ + -, не . и не .., регистр различается. Нового клиента счёт заводит сам
1 - 128^[A-Za-z0-9._:@+-]*[A-Za-z0-9_:@+-][A-Za-z0-9._:@+-]*$"user-42"
subscription — подписка или её продление, devices — доп. устройства
subscription, devices Способ оплаты из GET /payment-methods
1 - 32"sbp"
Id тарифа из GET /plans — только при purpose: subscription
1 <= x <= 21474836473
Сколько устройств добавить, от 1 — только при purpose: devices
x >= 1Куда вернуть клиента после оплаты: только https, до 500 символов. Поддерживается не каждым способом оплаты
500Response
Повтор по тому же Idempotency-Key: счёт первого запроса, replayed: true
Id счёта
pending — ждёт оплаты; succeeded — оплачен, доступ выдан; expired — срок оплаты вышел, но статус не окончательный: поздняя оплата переводит счёт в succeeded; failed — оплата не прошла, бывает и после succeeded, если банк отозвал платёж
pending, succeeded, failed, expired Что оплачивается
subscription, devices Id клиента в вашей системе
"user-42"
Тариф — у purpose: subscription
Сколько устройств — у purpose: devices
Способ оплаты
"sbp"
Сумма к оплате клиентом
"150.00"
Часть платформы
"100.00"
Наценка партнёра: после оплаты ложится на его баланс
"50.00"
Валюта
"RUB"
Страница оплаты для клиента; есть только у pending
Когда счёт выставлен, UTC
Ориентир срока оплаты, UTC: статус меняется с задержкой до часа, поздняя оплата проходит
Когда счёт оплачен, UTC
Клиент со ссылкой подписки; заполнен у succeeded
true — повтор по тому же Idempotency-Key: в ответе счёт, выставленный первым запросом

