POST
/integration/subscriptionsПараметры запроса
| Поле | Тип | Описание |
|---|---|---|
amountобязательное | integer | Базовая сумма каждого списания в копейках. Минимум 100. Рекомендуется передавать сумму, кратную 100: провайдер принимает итоговую сумму только в целых рублях |
external_idобязательное | string | Ваш уникальный ID подписки, до 255 символов. Разрешены латинские буквы, цифры, точка, дефис и подчёркивание |
intervalобязательное | string | daily, weekly, monthly или yearly |
descriptionобязательное | string | Назначение регулярного платежа, до 255 символов |
callback_url | string (https) | URL для вебхуков. Если поле не передано, используется callback URL из настроек мерчанта. URL должен быть публичным и использовать HTTPS |
Пример
curl -X POST https://api.cashera.cash/api/v1/integration/subscriptions \-H "X-Api-Key: $CASHERA_API_KEY" \-H "Content-Type: application/json" \-d '{"amount": 10000,"external_id": "subscription-pro-10428","interval": "monthly","description": "Тариф Pro"}'
Обязательно откройте payment_url
Ответ 201 ещё не означает, что подписка активна. Перенаправьте клиента наpayment_url и дождитесь статуса active через вебхукили запрос состояния.
Идемпотентность
- первый успешный запрос возвращает
201 Created - повтор с тем же
external_idи теми же параметрами возвращает существующую подписку и200 OK - тот же
external_idс другой суммой, интервалом, описанием или callback URL возвращает409 Conflict
Не повторяйте неоднозначную операцию новым external_id
При статусе creation_unknown провайдер мог создать подписку, даже если Cashera не получила окончательный ответ. Не создавайте замену автоматически: повторите запрос с тем же external_idи, если статус не изменился, обратитесь в поддержку.
Ошибки
| Поле | Тип | Описание |
|---|---|---|
401 | Unauthorized | Отсутствует или неверен X-Api-Key |
403 | Forbidden | Мерчант отключён, заморожен или не может создавать подписки |
409 | Conflict | Конфликт параметров для существующего external_id |
422 | Unprocessable Entity | Ошибка полей, небезопасный callback URL, неподдерживаемый интервал, неподходящая итоговая сумма или неверная конфигурация метода |
502 | Bad Gateway | Провайдер не дал корректный однозначный ответ. Проверьте возвращённый объект по тому же external_id |
