Підписки
Підписки дозволяють автоматично списувати кошти з користувачів за регулярний період.
Авторизація
Section titled “Авторизація”Для роботи з підписками потрібна:
- Авторизація платформи — Basic Auth (для всіх методів)
- Авторизація користувача — заголовок
X-CUSTOMER-AUTHз access-токеном (для методів роботи з підписками користувача)
Плани підписок
Section titled “Плани підписок”Створення плану
Section titled “Створення плану”curl -X POST https://api.rozetkapay.com/api/subscriptions/v1/plans \ -u "login:password" \ -H "Content-Type: application/json" \ -d '{ "name": "Преміум підписка", "description": "Доступ до всіх функцій", "price": 9900, "currency": "UAH", "platforms": ["platform_id"], "frequency_type": "monthly", "frequency": 1, "start_date": "2024-01-01T00:00:00Z" }'Параметри плану
Section titled “Параметри плану”| Параметр | Обов’язковий | Опис |
|---|---|---|
name | Так | Назва плану |
description | Так | Опис плану |
price | Так | Ціна в копійках (9900 = 99 грн) |
currency | Так | Валюта (UAH) |
platforms | Так | Платформи, що використовують план |
frequency_type | Так | Тип періоду: daily, weekly, monthly, yearly |
frequency | Так | Кількість періодів |
start_date | Так | Дата активації плану (RFC3339) |
end_date | Ні | Дата завершення плану |
Приклади frequency
Section titled “Приклади frequency”| frequency_type | frequency | Результат |
|---|---|---|
daily | 2 | Кожні 2 дні |
weekly | 1 | Щотижня |
monthly | 1 | Щомісяця |
monthly | 6 | Кожні 6 місяців |
yearly | 1 | Щороку |
Відповідь
Section titled “Відповідь”{ "plan_id": "0fb23882-2845-49e7-9309-68aeee5d0d8f"}Отримання плану
Section titled “Отримання плану”curl -X GET "https://api.rozetkapay.com/api/subscriptions/v1/plans/{plan_id}" \ -u "login:password"Отримання всіх планів
Section titled “Отримання всіх планів”curl -X GET "https://api.rozetkapay.com/api/subscriptions/v1/plans?platform=platform_id" \ -u "login:password"Оновлення плану
Section titled “Оновлення плану”Можна оновити тільки name та description:
curl -X PATCH "https://api.rozetkapay.com/api/subscriptions/v1/plans/{plan_id}" \ -u "login:password" \ -H "Content-Type: application/json" \ -d '{ "name": "Новий преміум", "description": "Оновлений опис" }'Деактивація плану
Section titled “Деактивація плану”curl -X DELETE "https://api.rozetkapay.com/api/subscriptions/v1/plans/{plan_id}" \ -u "login:password"Підписки користувачів
Section titled “Підписки користувачів”Оформлення підписки
Section titled “Оформлення підписки”curl -X POST https://api.rozetkapay.com/api/subscriptions/v1/subscriptions \ -u "login:password" \ -H "X-CUSTOMER-AUTH: user_access_token" \ -H "Content-Type: application/json" \ -d '{ "plan_id": "0fb23882-2845-49e7-9309-68aeee5d0d8f", "auto_renew": true, "callback_url": "https://your-site.com/subscription-callback", "result_url": "https://your-site.com/subscription-success", "description": "Підписка для user@example.com", "start_date": "2024-01-15T10:00:00Z", "customer": { "email": "user@example.com", "external_id": "user_123", "payment_method": { "type": "cc_token", "cc_token": { "token": "tok_card_token", "use_3ds_flow": true } } } }'Параметри підписки
Section titled “Параметри підписки”| Параметр | Обов’язковий | Опис |
|---|---|---|
plan_id | Так | ID плану |
auto_renew | Ні | Автопродовження (true за замовч.) |
callback_url | Так | URL для callbacks |
result_url | Так | URL після успішної оплати |
description | Так | Опис підписки |
start_date | Так | Дата активації (RFC3339, UTC) |
customer | Так | Дані користувача |
customer.payment_method | Так | Платіжний метод |
price | Ні | Ціна (якщо не вказано — з плану) |
trial_periods | Ні | Кількість тріальних періодів |
Платіжні методи для підписок
Section titled “Платіжні методи для підписок”cc_token— токен карткиwallet— картка з гаманцяgoogle_pay— Google Payapple_pay— Apple Pay
Відповідь
Section titled “Відповідь”{ "payment": { "id": "payment_123", "subscription_id": "sub_abc123", "details": { "amount": 9900, "currency": "UAH", "status": "success", "status_code": "subscription_successful" }, "user_action": { "type": "url", "value": "https://pay.rozetkapay.com/3ds/..." } }, "subscription": { "id": "sub_abc123", "plan_id": "0fb23882-2845-49e7-9309-68aeee5d0d8f", "state": "active", "auto_renew": true, "price": 9900, "currency": "UAH", "start_date": "2024-01-15T10:00:00Z", "next_payment_date": "2024-02-15T10:00:00Z" }}Тріальна підписка
Section titled “Тріальна підписка”Для створення тріальної підписки вкажіть:
curl -X POST https://api.rozetkapay.com/api/subscriptions/v1/subscriptions \ -u "login:password" \ -H "X-CUSTOMER-AUTH: user_access_token" \ -H "Content-Type: application/json" \ -d '{ "plan_id": "0fb23882-2845-49e7-9309-68aeee5d0d8f", "price": 100, "trial_periods": 3, "use_plan_price_on_auto_renew": true, "auto_renew": true, "callback_url": "https://your-site.com/callback", "result_url": "https://your-site.com/result", "start_date": "2024-01-15T10:00:00Z", "customer": { "payment_method": { "type": "cc_token", "cc_token": { "token": "tok_card_token", "use_3ds_flow": true } } } }'| Параметр | Опис |
|---|---|
price | Ціна за тріальний період (напр. 1 грн) |
trial_periods | Кількість тріальних періодів |
use_plan_price_on_auto_renew | Після тріалу використовувати ціну плану |
Управління підписками
Section titled “Управління підписками”Отримання підписки
Section titled “Отримання підписки”curl -X GET "https://api.rozetkapay.com/api/subscriptions/v1/subscriptions/{subscription_id}" \ -u "login:password" \ -H "X-CUSTOMER-AUTH: user_access_token"Отримання всіх підписок користувача
Section titled “Отримання всіх підписок користувача”curl -X GET "https://api.rozetkapay.com/api/subscriptions/v1/subscriptions" \ -u "login:password" \ -H "X-CUSTOMER-AUTH: user_access_token"Оновлення підписки
Section titled “Оновлення підписки”Оновлення auto_renew:
curl -X PATCH "https://api.rozetkapay.com/api/subscriptions/v1/subscriptions/{subscription_id}" \ -u "login:password" \ -H "X-CUSTOMER-AUTH: user_access_token" \ -H "Content-Type: application/json" \ -d '{ "auto_renew": false }'Деактивація підписки
Section titled “Деактивація підписки”Підписка залишається активною до next_payment_date:
curl -X DELETE "https://api.rozetkapay.com/api/subscriptions/v1/subscriptions/{subscription_id}/deactivate" \ -u "login:password" \ -H "X-CUSTOMER-AUTH: user_access_token"Скасування підписки
Section titled “Скасування підписки”Підписка одразу стає неактивною:
curl -X DELETE "https://api.rozetkapay.com/api/subscriptions/v1/subscriptions/{subscription_id}/cancel" \ -u "login:password" \ -H "X-CUSTOMER-AUTH: user_access_token"Отримання платежів по підписці
Section titled “Отримання платежів по підписці”curl -X GET "https://api.rozetkapay.com/api/subscriptions/v1/subscriptions/{subscription_id}/payments" \ -u "login:password" \ -H "X-CUSTOMER-AUTH: user_access_token"Статуси підписок
Section titled “Статуси підписок”| Статус | Опис |
|---|---|
active | Підписка активна |
inactive | Підписка неактивна |
pending | Очікує обробки |
Діаграма життєвого циклу
Section titled “Діаграма життєвого циклу”┌─────────────────┐│ Створення ││ підписки │└────────┬────────┘ │ ▼┌─────────────────┐ ┌─────────────────┐│ Оплата │────▶│ Active ││ (успішна) │ │ │└─────────────────┘ └────────┬────────┘ │ ┌───────────────────────┼───────────────────────┐ │ │ │ │ │ next_payment_date │ │ │ │ │ auto_renew ▼ auto_renew │ │ = true ┌─────────┐ = false │ │ ┌────────│ Оплата │────────┐ │ │ │ └─────────┘ │ │ │ ▼ ▼ │ │ ┌─────────┐ ┌─────────┐ │ │ │ Active │ │Inactive │ │ │ │(renewed)│ │ │ │ │ └─────────┘ └─────────┘ │ │ │ │ Deactivate Cancel │ ▼ ▼ │┌─────────────────┐ ┌─────────────────┐ ││ Деактивація │ │ Скасування │ ││ (до next_date) │ │ (одразу) │ │└────────┬────────┘ └────────┬────────┘ │ │ │ │ ▼ ▼ │┌─────────────────────────────────────────────────────────┘│ Inactive└─────────────────────────────────────────────────────────Callbacks
Section titled “Callbacks”При зміні статусу підписки або платежу надсилається callback:
{ "subscription_id": "sub_abc123", "event": "payment_success", "payment": { "id": "payment_456", "amount": 9900, "currency": "UAH", "status": "success" }, "subscription": { "state": "active", "next_payment_date": "2024-03-15T10:00:00Z" }}