Оплата картой
Оплата картой — это способ приема платежей с вводом данных карты на платежной форме.
- Способ приема платежей по картам подключен по умолчанию.
- Принимать платежи из-за границы можно только в рублях и по картам «Мир» — оплата по картам UnionPay и иностранным картам Visa и MasterCard недоступна. Валюта будет конвертироваться в рубли на момент оплаты по курсу банка, который выпустил карту.
Прием платежей
Принимать платежи по картам можно двумя способами:
- Одностадийный платеж — мерчант списывает деньги за покупку сразу после завершения оплаты.
- Двухстадийный платеж — сначала мерчант блокирует деньги за покупку на карте покупателя и только потом списывает их.
По правилам Национальной системы платежных карт (НСПК), холдировать деньги на карте покупателя можно на срок до 7 дней.
Например, покупатель оплатил товар 1 марта, и его банк заморозил деньги на счете. Подтвердить платеж нужно в течение 7 дней, включая день авторизации — то есть до 7 марта включительно. После этого срока деньги на счете покупателя могут быть расхолдированы и покупатель может их потратить — подтвердить списание не получится.
Одностадийный платеж
- Вызовите метод Инициировать платеж. Обязательно передайте признак инициатора операции в параметре
OperationInitiatorTypeобъектаDATA. - Вызовите метод Проверить версию 3DS. Это нужно для проверки версии протокола 3DS. Она может быть версии 1.0 или 2.0.
- Вызовите метод Пройти этап 3DS Method.
- Вызовите метод Подтвердить платеж.
- Frictionless Flow (без ввода OTP-кода) — при успешном сценарии операция перейдет в статус
CONFIRMED, и покупатель будет перенаправлен на страницуSuccessURL. - Challenge Flow (с вводом OTP-кода) — при успешном сценарии операция перейдет в статус
3DS_CHECKING, и в ответе вернется параметрACSUrl. - При неуспешном — в статус
AUTH_FAIL, и покупатель будет перенаправлен на страницуFailURL. После трех попыток неудачной оплаты операция перейдет в статусREJECTED. Список кодов ошибок.
- Frictionless Flow (без ввода OTP-кода) — при успешном сценарии операция перейдет в статус
- Вызовите метод Отправить запрос в банк-эмитент для прохождения 3DS и перенаправьте покупателя для прохождения 3DS на страницу банка-эмитента из параметра
ACSUrl, полученного в пункте 4. - После получения ответа от ACS с результатами прохождения 3DS вызовите метод Подтвердить прохождение 3DS v. 1.0 или Подтвердить прохождение 3DS v. 2.1 — в зависимости от версии протокола 3DS.
- При успешном сценарии операция перейдет в статус
CONFIRMED, и покупатель будет перенаправлен на страницуSuccessURL. - При неуспешном — в статус
AUTH_FAIL, и покупатель будет перенаправлен на страницуFailURL. После трех попыток неудачной оплаты операция перейдет в статусREJECTED. Список кодов ошибок и возможные Ошибки 3DS.
- При успешном сценарии операция перейдет в статус
Двухстадийный платеж
- Вызовите метод Инициировать платеж. Обязательно передайте признак инициатора операции в параметре
OperationInitiatorTypeобъектаDATA. - Вызовите метод Проверить версию 3DS. Это нужно для проверки версии протокола 3DS. Она может быть версии 1.0 или 2.0.
- Вызовите метод Пройти этап 3DS Method.
- Вызовите метод Подтвердить платеж.
- Frictionless Flow (без ввода OTP-кода) — при успешном сценарии операция перейдет в статус
AUTHORIZED, и покупатель будет перенаправлен на страницуSuccessURL. - Challenge Flow (с вводом OTP-кода) — то при успешном сценарии операция перейдет в статус
3DS_CHECKING, и в ответе вернется параметрACSUrl. - При неуспешном — в статус
AUTH_FAIL, и покупатель будет перенаправлен на страницуFailURL. После трех попыток неудачной оплаты операция перейдет в статусREJECTED. Список кодов ошибок.
- Frictionless Flow (без ввода OTP-кода) — при успешном сценарии операция перейдет в статус
- Вызовите метод Отправить запрос в банк-эмитент для прохождения 3DS и перенаправьте покупателя для прохождения 3DS на страницу банка-эмитента из параметра
ACSUrl, полученного в пункте 4. - После получения ответа от ACS с результатами прохождения 3DS вызовите метод Подтвердить прохождение 3DS v. 1.0 или Подтвердить прохождение 3DS v. 2.1 — в зависимости от версии протокола 3DS.
- При успешном сценарии операция перейдет в статус
AUTHORIZED, и покупатель будет перенаправлен на страницуSuccessURL. - При неуспешном — в статус
AUTH_FAIL, и покупатель будет перенаправлен на страницуFailURL. После трех попыток неудачной оплаты операция перейдет в статусREJECTED. Список кодов ошибок и возможные Ошибки 3DS.
- При успешном сценарии операция перейдет в статус
- Вызовите метод Подтвердить списание для подтверждения платежа c параметром
PaymentId.- При успешном сценарии операция перейдет в статус
CONFIRMED. - При неуспешном — в статус
AUTH_FAIL, и покупатель будет перенаправлен на страницуFailURL. После трех попыток неудачной оплаты операция перейдет в статусREJECTED. Список кодов ошибок и возможные ошибки 3DS.
- При успешном сценарии операция перейдет в статус
Передача признака инициатора операции
Платежным системам нужно знать, кем была инициирована карточная операция. За выполнение требований
регулятора отвечает параметр OperationInitiatorType в методе Инициировать платеж.
Значение этого параметра содержит признаки того, кем была инициирована операция и какой способ
предоставления реквизитов был использован.
Полный список значений можно посмотреть в описании метода Инициировать платеж.
Для обычных платежей используется только одно значение — OperationInitiatorType=0.
Consumer Initiated (CIT), Credential-Not-Captured — оплата инициирована покупателем, реквизиты карты не сохраняются для последующих платежей.
Работа с картами и покупателями
Покупатели
Используйте методы:
- Зарегистрировать клиента — создание покупателя для привязки платежных данных.
- Получить данные клиента — просмотр данных покупателя, которые сохранены в связке с терминалом.
- Удалить данные клиента — отвязка данных покупателя с платежной формы и терминала.
Карты покупателя
При проведении платежей можно сохранять платежные данные покупателя. Это нужно, чтобы при последующих оплатах не приходилось заполнять платежную форму, и покупатель мог сохранять данные своих карт на ней. Для этого покупатель привязывается к терминалу, через который будут проходить платежи.
Есть три способа привязки карты:
- Без платежа — покупатель и его карты будут сохранены до проведения платежа.
- Без проверки 3DS — покупатель и его карты будут сохранены без подтверждения, но оно понадобится при первом платеже по сохраненной карте.
- С проверкой 3DS — покупатель должен будет подтвердить операцию на этапе сохранения карты. Все дальнейшие платежи будут проходить по схеме дочернего COF-платежа, то есть подтверждать каждое списание не нужно.
В дополнение к методам по привязке карт вы можете использовать методы:
- Получить список карт клиента — для просмотра списка всех привязанных карт покупателя, включая удаленные.
- Удалить привязанную карту клиента — для удаления привязанных карт покупателя