Платежи по сохранённым данным карты
Платежи по сохранённым картам позволяют торговцу выполнять списания без повторного ввода данных карты покупателем, используя токен карты, полученный в рамках инициализирующей транзакции.
Как это работает
Привязка карт подразумевает следующие этапы:
- инициализирующая транзакция, во время которой покупатель указывает данные своей карты и даёт согласие на их сохранение для последующих списаний. Во время этой транзакции может быть выполнена проверка 3-D Secure;
- получение токена карты в ответе на транзакцию или в автоматическом уведомлении, а также сохранение полученного токена в системе торговца;
- последующие транзакции по токену карты без необходимости участия покупателя.
Описанная схема подходит для следующих сценариев:
- для нерегулярных списаний по запросу;
- для регулярных платежей.
Последующие списания могут быть инициированы как торговцем, так и покупателем.
Info
Если ваш сценарий оплаты подразумевает регулярные платежи на фиксированную сумму, вы можете также воспользоваться сервисом подписок и создать подписки с помощью API подписок или в личном кабинете.
1) Инициализирующая транзакция
Отправьте один из поддерживаемых запросов в зависимости от типа интеграции, указав recurring и card_on_file в качестве значения additional_data.contract.
Если эквайер поддерживает транзакции с нулевой суммой, рекомендуется использовать тип транзакции authorization с нулевой суммой ("amount": 0).
Если транзакции с нулевой суммой не поддерживаются эквайером, рекомендуется использовать транзакцию авторизации с последующей отменой авторизации (предпочтительный вариант) или транзакцию оплаты с последующим возвратом.
Также можно использовать первую транзакцию оплаты или авторизации в качестве инициализирующей. Уточните у вашего менеджера или у службы технической поддержки, какую сумму транзакции следует использовать.
Интеграция через виджет
- Настройте интеграцию с виджетом;
- отправьте запрос на создание токена платежа;
- в качестве
transaction_typeукажитеpayment,authorizationилиtokenization; - если вы используете
tokenizationв качествеtransaction_type, вы можете указать любую сумму в параметреamount; - для типов транзакции
paymentиauthorizationукажитеrecurringиcard_on_fileв качестве значенияcheckout.order.additional_data.contract;
- в качестве
- используйте полученный токен платежа для интеграции виджета.
Интеграция через платежную страницу
- Отправьте запрос на создание токена платежа.
- в качестве
transaction_typeукажитеpayment,authorizationилиtokenization; - если вы используете
tokenizationв качествеtransaction_type, вы можете указать любую сумму в параметреamount; - для типов транзакции
paymentиauthorizationукажитеrecurringиcard_on_fileв качестве значенияcheckout.order.additional_data.contract;
- в качестве
- перенаправьте покупателя на
redirect_urlиз ответа для завершения оплаты.
Warning
Обратите внимание, что при использовании транзакции токенизации в качестве инициализирующей, последующую транзакцию необходимо совершить в течение часа. В противном случае потребуется повторная проверка 3-D Secure с участием покупателя.
Warning
В исключительных сценариях оплаты в качестве инициализирующей транзакции используется запрос на взимание платы. Служба технической поддержки уведомит вас при необходимости использования данного запроса.
Пример инициализирующей транзакции: создание токена платежа
{
"checkout": {
"test": true,
"transaction_type": "payment",
"attempts": 3,
"settings": {
"return_url": "https://example.com/return",
"notification_url": "https://example.com/notification",
"language": "en"
},
"payment_method": {
"types": [
"credit_card"
]
},
"order": {
"currency": "USD",
"amount": 100,
"description": "Test transaction",
"tracking_id": "abc-12345",
"additional_data": {
"contract": [
"recurring",
"card_on_file"
]
}
},
"customer": {
"address": "Baker street 221b",
"country": "GB",
"city": "London",
"email": "jake@example.com"
}
}
}
Пример инициализирующей транзакции при использовании API для платежей картами: оплата/авторизация
{
"request": {
"amount": 100,
"currency": "USD",
"description": "Test transaction",
"tracking_id": "tracking_id_1",
"language": "en",
"credit_card": {
"number": "4200000000000000",
"verification_value": "123",
"holder": "John Doe",
"exp_month": "05",
"exp_year": "2030"
},
"additional_data": {
"contract": [
"recurring",
"card_on_file"
]
}
}
}
2) Сохранение токена карты
После успешной инициализирующей транзакции токен карты будет отправлен:
- в параметре
credit_card.tokenв автоматическом уведомлении после успешной оплаты/авторизации/токенизации; - в параметре
credit_card.tokenв синхронном ответе на запросы авторизации, оплаты или токенизации.
Сохраните токен в своей системе. При получении токена в синхронном ответе, убедитесь, что транзакция финализирована со статусом successful, прежде чем сохранять полученный токен.
В синхронном ответе и автоматическом уведомлении в параметре credit_card.last_4 также будут отправлены 4 последние цифры номера карты покупателя. Это значение можно использовать, чтобы отображать в личном кабинете пользователя сохранённую карту в формате ХХХХ 1234.
Пример автоматического уведомления с токеном карты в параметре credit_card.token
{
"transaction": {
"uid": "4a3365f7-b4ef-4fa7-9b21-bd552e8c8d6e",
"status": "successful",
"amount": 100,
"currency": "USD",
"description": "Test transaction",
"type": "payment",
"payment_method_type": "credit_card",
"tracking_id": "abc-12345",
"message": "Transaction is successful.",
"test": true,
"created_at": "2025-07-15T10:56:27.137Z",
"updated_at": "2025-07-15T10:56:32.458Z",
"paid_at": "2025-07-15T10:56:32.385Z",
"expired_at": null,
"recurring_type": "initial",
"closed_at": null,
"settled_at": null,
"manually_corrected_at": null,
"language": "en",
"credit_card": {
"holder": "Jake Doe",
"stamp": "b3839d334ba40e89168d60cd9f9d1390aee3fe67dd4d5c41adbf3998043eaef8",
"brand": "visa",
"last_4": "0000",
"first_1": "4",
"bin": "420000",
"bin_8": "42000000",
"issuer_country": "US",
"issuer_name": "VISA Demo Bank",
"product": "F",
"exp_month": 9,
"exp_year": 2027,
"token_provider": null,
"token": "2a4ef31c-bdc9-450b-a979-d533a19341ac"
},
"receipt_url": "https://demo-backoffice.begateway.com/customer/transactions/4a3365f7-b4ef-4fa7-9b21-bd552e8c8d6e/ca89173f01a8d828b90520ac06dd404031a820e1c4d3dbc1ecdb3aab7ccdf363?language=en",
"status_code": null,
"gateway": {
"iframe": true
},
"mute_notifications": true,
"version": 4,
"psp_settled_at": null,
"registry_id": null,
"id": "4a3365f7-b4ef-4fa7-9b21-bd552e8c8d6e",
"additional_data": {
"contract": [
"recurring",
"card_on_file"
],
"request_id": "50935403-5a18-4ecc-8f72-ece5a9eadf43",
"vendor": {
"name": "CTP",
"token": "a0de2237fc2ba265b948073fdee6ebb8a8223cf1af951efdc09e8e369fd8efd5"
}
},
"redirect_url": "https://demo-gateway.begateway.com/process/4a3365f7-b4ef-4fa7-9b21-bd552e8c8d6e",
"code": "S.0000",
"friendly_message": "The transaction is successfully processed.",
"smart_routing_verification": {
"status": "successful"
},
"payment": {
"auth_code": "654321",
"bank_code": "05",
"rrn": "999",
"ref_id": "777888",
"message": "Payment was approved",
"amount": 100,
"currency": "USD",
"billing_descriptor": "test descriptor",
"gateway_id": 63498,
"status": "successful"
},
"avs_cvc_verification": {
"avs_verification": {
"result_code": "A"
},
"cvc_verification": {
"result_code": "1"
}
},
"customer": {
"ip": "37.214.28.71",
"email": "jake@example.com",
"device_id": "5766e9d0d09e0d0c00017b1ae78982a4",
"birth_date": null,
"external_id": null
},
"billing_address": {
"first_name": "Jake",
"last_name": "Doe",
"address": "Baker street 221b",
"country": "GB",
"city": "London",
"zip": null,
"state": null,
"phone": null
}
}
}
3) Последующие транзакции с применением токена карты
Для последующих списаний используйте сохранённый токен вместо данных карты в параметре request.credit_card.token. Для запроса на создание токена платежа, токен карты отправляется в параметре checkout.payment_method.credit_card.token.
Пример транзакции оплаты с использованием токена карты
{
"request": {
"amount": 100,
"currency": "USD",
"description": "Test transaction",
"notification_url": "https://example.com/notification",
"tracking_id": "3567k7",
"language": "en",
"test": true,
"credit_card": {
"token": "2a4ef31c-bdc9-450b-a979-d533a19341ac"
}
}
}
