Збережені картки
Збережені картки дозволяють платникам здійснювати швидкі оплати без повторного введення карткових даних.
Способи збереження картки
Section titled “Способи збереження картки”- На чекауті — користувач відмічає опцію “зберегти карту”
- Через віджет — отримання токена та збереження в гаманець
Дані зберігаються по параметру customer.external_id — унікальному ідентифікатору користувача.
Додавання картки в гаманець
Section titled “Додавання картки в гаманець”curl -X POST https://api.rozetkapay.com/api/customers/v1/wallet/add \ -u "login:password" \ -H "Content-Type: application/json" \ -d '{ "customer_id": "user_123", "callback_url": "https://your-site.com/callback", "result_url": "https://your-site.com/result", "payment_method": { "wallet": { "token": "tok_card_token", "use_3ds_flow": true } } }'Отримання карток з гаманця
Section titled “Отримання карток з гаманця”curl -X GET "https://api.rozetkapay.com/api/customers/v1/user_123/wallet" \ -u "login:password" \ -H "Content-Type: application/json"Відповідь
Section titled “Відповідь”{ "customer_id": "user_123", "wallet": [ { "option_id": "opt_abc123", "type": "card", "name": "Моя картка", "is_default": true, "card": { "mask": "424242******4242", "payment_system": "VISA", "bank_short_name": "ПриватБанк", "expires_at": "2025-12-01T00:00:00Z" } }, { "option_id": "opt_def456", "type": "card", "name": "Робоча картка", "is_default": false, "card": { "mask": "545454******5454", "payment_system": "MASTERCARD", "bank_short_name": "Monobank", "expires_at": "2026-06-01T00:00:00Z" } } ]}Оплата збереженою карткою
Section titled “Оплата збереженою карткою”Через токен (cc_token)
Section titled “Через токен (cc_token)”curl -X POST https://api.rozetkapay.com/api/payments/v1/new \ -u "login:password" \ -H "Content-Type: application/json" \ -d '{ "external_id": "order_12345", "mode": "direct", "amount": 100, "currency": "UAH", "callback_url": "https://your-site.com/callback", "customer": { "external_id": "user_123", "payment_method": { "type": "cc_token", "cc_token": { "token": "tok_2df5e29f-7ace-4e1a-9153-7a95e5d6a503", "use_3ds_flow": true, "save_to_wallet": true } } } }'Через гаманець (wallet)
Section titled “Через гаманець (wallet)”curl -X POST https://api.rozetkapay.com/api/payments/v1/new \ -u "login:password" \ -H "Content-Type: application/json" \ -d '{ "external_id": "order_12345", "mode": "direct", "amount": 100, "currency": "UAH", "callback_url": "https://your-site.com/callback", "customer": { "external_id": "user_123", "payment_method": { "type": "wallet", "wallet": { "option_id": "opt_abc123", "use_3ds_flow": true } } } }'Параметри платіжних методів
Section titled “Параметри платіжних методів”cc_token
Section titled “cc_token”| Параметр | Обов’язковий | Опис |
|---|---|---|
token | Так | Токен картки |
use_3ds_flow | Так | Використовувати 3DS (за замовч. true) |
save_to_wallet | Ні | Зберегти в гаманець після оплати |
wallet
Section titled “wallet”| Параметр | Обов’язковий | Опис |
|---|---|---|
option_id | Так | ID платіжного інструмента в гаманці |
use_3ds_flow | Так | Використовувати 3DS |
browser_fingerprint | Ні | Дані браузера користувача |
Browser Fingerprint
Section titled “Browser Fingerprint”Для деяких операцій може знадобитися передача даних браузера:
{ "browser_fingerprint": { "browser_accept_header": "text/html,application/xhtml+xml", "browser_color_depth": "24", "browser_ip_address": "192.168.1.100", "browser_java_enabled": "false", "browser_language": "uk", "browser_screen_height": "1080", "browser_screen_width": "1920", "browser_time_zone": "Europe/Kyiv", "browser_time_zone_offset": "+0200", "browser_user_agent": "Mozilla/5.0..." }}Видалення картки з гаманця
Section titled “Видалення картки з гаманця”curl -X DELETE "https://api.rozetkapay.com/api/customers/v1/user_123/wallet/opt_abc123" \ -u "login:password" \ -H "Content-Type: application/json"Токенізація через віджет
Section titled “Токенізація через віджет”Для отримання токена картки використовуйте віджет:
let widget = RPayCardWidget.init({ key: 'your_widget_key', mode: 'inline', selector: 'widget-checkout', onToken: function(tokenData) { // tokenData.token — токен для збереження або оплати // tokenData.card_mask — маска картки // tokenData.expires_at — строк дії токена
saveCardToWallet(tokenData.token); }});
widget.open();Діаграма процесу
Section titled “Діаграма процесу”┌─────────────────┐│ Користувач │└────────┬────────┘ │ ├─────────────────────────────────────────┐ │ │ ▼ ▼┌─────────────────┐ ┌─────────────────┐│ Віджет │ │ Чекаут ││ (токенізація) │ │ (save card) │└────────┬────────┘ └────────┬────────┘ │ │ ▼ ▼┌─────────────────┐ ┌─────────────────┐│ Add to Wallet │ │ Автоматичне ││ API │ │ збереження │└────────┬────────┘ └────────┬────────┘ │ │ └─────────────────┬───────────────────────┘ │ ▼ ┌─────────────────┐ │ Гаманець │ │ користувача │ └────────┬────────┘ │ ▼ ┌─────────────────┐ │ Швидка оплата │ │ (wallet/ │ │ cc_token) │ └─────────────────┘Оплата без 3DS
Section titled “Оплата без 3DS”{ "payment_method": { "type": "cc_token", "cc_token": { "token": "tok_...", "use_3ds_flow": false } }}