API
Общая информация
PSP предоставляет мерчантам REST API для проведения финансовых операций.
В запросе ожидаются переданные методом GET или POST (предпочтительно) параметры в формате application/x-www-form-urlencoded (обычная web-форма).
Ответ отправляется в формате application/json.
Структуры запроса/ответа унифицированы с целью упростить сборку/парсинг для мерчанта.
Запросы
Структура запроса
Название параметра | Обязательный | Допустимый контент | Допустимая длина / диапазон значений | Описание |
---|---|---|---|---|
method | да | 0-9a-z_ | длина не более 50 символов |
Платежные методы: |
method_mode | нет | 0-9a-z_ | длина не более 50 символов | Режим выполнения платежного метода. В текущей версии API поддерживается единственное возможное значение – preauth (предавторизация) для платежного метода c2b и финансового инструмента acquiring, что означает необходимость вызова метода capture для отправки операции на клиринг. Во всех остальных кейсах параметр не передается. |
method_order | нет | 0-9a-z_ | длина не более 50 символов | Передается со значением b2c в рамках метода create_order. |
payment_page_method | нет | строка | 1 - 10000 |
Передается в рамках метода create_order. Возможные значения : ["card","sbp","mts_pay","mir_pay","yandex_pay"]. Используется для вывода сразу нескольких платежных методов, при необходимости. Передается в виде массива. Набор и порядок может варьироваться, первый метод из массива будет распахнутым по умолчанию. |
fin_instrument | нет | 0-9a-z_ | длина не более 50 символов | Финансовый инструмент: • acquiring – эквайринг, • transfer – перевод, • sbp – Система Быстрых Платежей (СБП). Финансовый инструмент определяет конкретный способ реализации платежного метода. Метод c2b может быть реализован при помощи всех трех инструментов. b2c – перевод или СБП.', |
id_client | да | 0-9a-z_.:|- | длина не более 64 символов | Уникальный идентификатор мерчанта (выдается при его регистрации в системе PSP). |
id_request | да | 0-9a-zA-Z_.:|- | длина не более 64 символов | Уникальный идентификатор запроса в API. Для каждого запроса в API PSP мерчант должен сгенерировать уникальный идентификатор. В качестве такового рекомендуется использовать timestamp или GUID. В ответ на запросы с неуникальными id_request будет возвращена ошибка. |
id_request_parent | нет | 0-9a-zA-Z_.:|- | длина не более 64 символов | Уникальный идентификатор запроса родительской операции. Родительская операция – это операция, на которую ссылается данная операция. Например, возврат (refund), ссылается на операцию оплата (c2b). Если по одной оплате производится несколько возвратов, то у них у всех будет одинаковый id_request_parent. |
id_order | нет | 0-9 | длина от 6 до 20 символов | Уникальный идентификатор заказа. Для каждого заказа мерчант может сгенерировать уникальный идентификатор, на основании которого будет осуществляться дальнейшая работа с заказом. Использование механики заказов необязательно и осуществляется на усмотрение мерчанта. |
id_order_parent | нет | 0-9a-zA-Z_.:|- | длина не более 64 символов | Уникальный идентификатор заказа родительской операции. Родительская операция – это операция, на которую ссылается данная операция. Например, возврат (refund), ссылается на операцию оплата (c2b). Если по одной оплате производится несколько возвратов, то у них у всех будет одинаковый id_order_parent. |
amount | нет | число с 2-мя знаками после запятой | значение в диапазоне 0.01 – 9999999999.99 | Сумма операции. В случае отправки мерчантом значения, имеющего более 2-х знаков после запятой, будет произведено математическое округление до 2-х знаков. |
currency | нет | целое число | значение в диапазоне 1 – 999 | ISO-код валюты операции. |
desc_public | нет | строка | длина не более 1000 символов | Описание операции, которое отображается на платежной странице, странице 3DS или экране оплаты СБП в мобильном приложении банка плательщика. |
desc_private | нет | строка | длина не более 1000 символов | Описание операции, которое возвращается в реестрах процессора (при наличии у него технической возможности). |
add_info | нет | строка | длина не более 1500 символов | Параметр для передачи дополнительной информации процессору (при наличии у него технической возможности). |
payment_page_session _life_time | нет | целое число | значение в диапазоне от 1 минуты до 365 дней. |
Передача желаемого времени жизни платежной ссылки в минутах |
pan_src | нет | 0-9 | длина от 16 до 19 цифр | PAN карты плательщика. |
exp_month_src | нет | целое число | значение в диапазоне 1 – 12 | месяц истечения срока действия карты плательщика. |
exp_year_src | нет | целое число | значение в диапазоне 2022 – 2050 | год истечения срока действия карты плательщика. |
cvc_src | нет | 0-9 | длина 3 цифры | CVC/CVV карты плательщика. |
card_token_src | нет | строка | длина не более 64 символов | Токен карты плательщика. Может использоваться вместо параметров: pan_src, exp_month_src и exp_year_src, если карта плательщика была токенизирована ранее. |
msisdn_src | нет | 0-9 | длина 11 цифр | Номер мобильного телефона отправителя в международном формате. |
first_name_src | нет | строка | длина не более 50 символов | Имя отправителя. |
middle_name_src | нет | строка | длина не более 50 символов | Отчество отправителя. |
last_name_src | нет | строка | длина не более 50 символов | Фамилия отправителя. |
bank_id_src | нет | 0-9 | 12 цифр | Идентификатор банка отправителя. |
bank_account_id_src | нет | 0-9 | 20 цифр | Номер банковского счета отправителя. |
pan_dst | нет | 0-9 | длина от 16 до 19 цифр | PAN карты получателя. |
card_token_dst | нет | строка | длина не более 64 символов | Токен карты получателя. Может использоваться вместо параметра pan_dst, если карта получателя была токенизирована ранее. |
msisdn_dst | нет | 0-9 | длина 11 цифр | Номер мобильного телефона получателя в международном формате. |
first_name_dst | нет | строка | длина не более 50 символов | Имя получателя. |
middle_name_dst | нет | строка | длина не более 50 символов | Отчество получателя. |
last_name_dst | нет | строка | длина не более 50 символов | Фамилия получателя. |
bank_id_dst | нет | 0-9 | 12 цифр | Идентификатор банка получателя. |
bank_account_id_dst | нет | 0-9 | 20 цифр | Номер банковского счета получателя. |
callback_url | нет | строка (URL) | длина от 11 до 512 символов | URL системы мерчанта, на который система PSP по завершению операции отправит коллбэк, содержащий результат операции. В рамках коллбэка данные передаются методом POST в формате, аналогичном формату онлайн-ответа (application/json). |
return_url | нет | строка (URL) | длина от 11 до 1024 символов | URL, на который система PSP вернет браузер плательщика после прохождения аутентификации 3DS или после завершения процесса оплаты посредством платежной страницы на стороне PSP. |
return_url_success | нет | строка (URL) | длина от 11 до 512 символов | Аналог return_url, используемый только в случае, если операция завершена успешно. |
return_url_fail | нет | строка (URL) | длина от 11 до 512 символов | Аналог return_url, используемый только в случае, если операция завершена неуспешно. |
sbp_qr_timeout | нет | 0-9 | 1 - 129600 | Период в секундах, в течение которого будет возможна оплата по платёжной ссылке (QR-коду). Минимальное значение — одна минута, максимальное значение – 129600 (90 дней в минутах). Если значение не задано, будет использоваться значение по умолчанию - 20 минут. Поддерживается не всеми эквайерами. |
card_tokenization _mode_src | нет | строка | 20 |
Определяет, следует ли производить токенизацию и использовать полученный токен для создания рекуррентов. Если задано значение "1", система будет выполнять токенизацию входных данных и создавать рекурренты на основе полученного токена. |
card_tokenization_dst | нет | строка | 20 |
Определяет, следует ли производить токенизацию и использовать полученный токен для создания рекуррентных платежей на карту получателя. Если задано значение "1", система будет выполнять токенизацию входных данных карты получателя и создавать рекуррентные платежи на основе полученного токена. |
tds_mode | нет | строка | 0 - 5 | Определяет, следует ли использовать 3DS для транзакции. Если задано значение "force", то 3DS будет активирован, в противном случае - нет. |
receipt | нет | строка | 1 - 10000 | Передача фискальных данных, строка в формате json |
sign | да | 0-9a-z | длина не более 128 символов | Подпись запроса в API. Каждый запрос в API PSP мерчант должен подписывать по алгоритму, описанному ниже в данном разделе. В ответ на запросы с некорректной подписью будет возвращена ошибка. |
sub_merchant_id | нет | 0-9 | 15 цифр | Идентификатор ТСП, зарегистрированный в НСПК. |
sub_merchant _terminal_id | нет | строка | 8 символов | Идентификатор ТСП, зарегистрированный в НСПК. |
facilitator_merchant _name | нет | строка | латинские буквы + цифры + звездочка + разделители, длина от 3 до 22 символов | Название ТСП, зарегистрированное в НСПК. |
merchant_inn | нет | 0-9 | длина от 10 до 12 цифр | ИНН ТСП |
bank_bic_dst | нет | строка | 9 символов | БИК банка получателя. |
Ответы
Структура ответа
Название параметра | Обязательный | Тип данных | Описание |
---|---|---|---|
id_request | да | строка | Уникальный идентификатор запроса. |
id_request_parent | нет | строка | Уникальный идентификатор запроса родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. Например, при выполнении возврата (refund). |
id_order | нет | строка | Уникальный идентификатор заказа. |
id_order_parent | нет | строка | Уникальный идентификатор заказа родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. Например, при выполнении возврата (refund). |
state_fin_operation | нет | строка | Статус операции (справочник статусов приведен ниже). Является однозначным критерием определения успешности/неуспешности операции (см. справочник статусов). |
state_fin_operation_parent | нет | строка | Статус родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. Например, при выполнении возврата (refund). Позволяет определить, в каком статусе находится родительская операция после выполнения текущей операции. |
amount | нет | число с 2-мя знаками после запятой | Сумма операции. |
amount_authorized | нет | число с 2-мя знаками после запятой | Сумма, заблокированная на счете плательщика в рамках операции, и не отправленная на клиринг. |
amount_captured | нет | число с 2-мя знаками после запятой | Сумма, которая в рамках операции отправлена на клиринг. |
amount_cancelled | нет | число с 2-мя знаками после запятой | Сумма, которая была разблокирована на счете плательщика в рамках операции. |
amount_refunded | нет | число с 2-мя знаками после запятой | Сумма, которая была возвращена на счет плательщика в рамках операции. |
processor_transaction_id | Нет | строка | Идентификатор операции, присвоенный процессором. |
rrn | нет | строка | RRN операции. |
auth_code | нет | строка | Код авторизации операции. |
sbp_qr_id | нет | строка | Идентификатор QR-кода СБП. |
sbp_transaction_id | нет | строка | Идентификатор операции СБП. |
card_token_src | нет | строка | Токен карты плательщика. Возвращается в том случае, если имела место токенизация карты плательщика. |
card_token_last_4_src | нет | строка | Последние 4 цифры номера карты плательщика. Возвращается в том случае, если имела место токенизация карты плательщика. |
card_token_dst | нет | строка | Токен карты получателя. Возвращается в том случае, если имела место токенизация карты получателя. |
card_token_last_4_dst | нет | строка | Последние 4 цифры номера карты получателя. Возвращается в том случае, если имела место токенизация карты получателя. |
amount_parent | нет | число с 2-мя знаками после запятой | Сумма родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
amount_authorized_parent | нет | число с 2-мя знаками после запятой | Сумма, заблокированная на счете плательщика в рамках родительской операции, и не отправленная на клиринг. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
amount_captured_parent | нет | число с 2-мя знаками после запятой | Сумма, которая в рамках родительской операции отправлена на клиринг. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
amount_cancelled_parent | нет | число с 2-мя знаками после запятой | Сумма, которая была разблокирована на счете плательщика в рамках родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
amount_refunded_parent | нет | число с 2-мя знаками после запятой | Сумма, которая была возвращена на счет плательщика в рамках родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
processor_transaction_id_parent | нет | строка | Идентификатор родительской операции, присвоенный процессором. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
rrn_parent | нет | строка | RRN родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
auth_code_parent | нет | строка | Код авторизации родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
sbp_qr_id_parent | нет | строка | Идентификатор QR-кода СБП для родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
sbp_transaction_id_parent | нет | строка | Идентификатор операции СБП для родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
card_token_src_parent | нет | строка | Токен карты плательщика для родительской операции. Возвращается в том случае, если имела место токенизация карты плательщика. |
card_token_last_4_src_parent | нет | строка | Последние 4 цифры номера карты плательщика для родительской операции. Возвращается в том случае, если имела место токенизация карты плательщика. |
card_token_dst_parent | нет | строка | Токен карты получателя для родительской операции. Возвращается в том случае, если имела место токенизация карты получателя. |
card_token_last_4_dst_parent | нет | строка | Последние 4 цифры номера карты получателя для родительской операции. Возвращается в том случае, если имела место токенизация карты получателя. |
response_code | да | целое число | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | строка | Текстовое пояснение к response_code. |
processor_name | нет | строка | Наименование фактического процессора операции. |
processor_code | нет | массив целых чисел | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | массив строк | Текстов(ое, ые) пояснени(е, я) к processor_code. |
processor_code_parent | нет | массив целых чисел | processor_code для родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
processor_desc_parent | нет | массив строк | processor_desc для родительской операции. Возвращается в том случае, если в контексте запроса/ответа имеет место родительская операция. |
auth_ext_url | нет | строка | URL, на который необходимо отправить браузер плательщика для старта процедуры аутентификации 3DS. |
sbp_link | нет | строка | Ссылка (deep link/universal link), позволяющая инициировать оплату через СБП на мобильном устройстве посредством выбранного плательщиком приложения банка. |
sbp_qr_media_type | нет | строка | Формат изображения, содержащегося в параметре sbp_qr. |
sbp_qr | нет | строка | Закодированное в формате base64 изображение QR-кода СБП. |
card_pan_masked_src | нет | строка | Маскированный номер платежной карты источника. |
card_payment_system_src | нет | строка | Платежная система карты источника. |
card_issuer_country_src | нет | строка | Страна, в которой выпущена платежная карта источника. |
card_issuer_name_src | нет | строка | Название банка-эмитента платежной карты источника. |
sign | да | строка | Подпись ответа API. Ответ API PSP может быть подписан по алгоритму, описанному ниже. Проверка подписи онлайн-ответа не является обязательной и реализуется на усмотрение мерчанта. Ответы, доставленные мерчанту посредством коллбэков, подписываются PSP в обязательном порядке. Мерчант обязан проверять подпись при парсинге данных коллбэка. |
Справочник статусов финансовой операции
Статус операции позволяет однозначно определить:
- ее успешность/неуспешность (параметр ответа state_fin_operation),
- состояние, в которое перешла родительская операция после применения к ней текущей операции (параметр ответа state_fin_operation_parent).
Статус | Описание |
---|---|
initiated | Инициирована. Запрос на выполнение операции прошел первичные проверки (корректность входных параметров и подпись) и начал обрабатываться API PSP. |
input_data_waiting | Ожидание входных данных. Например, ожидание ввода данных карты на платежной форме. |
pending | В обработке на стороне процессора. Конечный результат операции на момент данного статуса неизвестен. |
auth_ext_ready | Готова к внешней аутентификации. Мерчанту отправлены данные, необходимые для инициации процедуры аутентификации плательщика (3DS). |
auth_ext_started | Внешняя аутентификация началась. Плательщик стартовал процедуру аутентификации (3DS). |
auth_ext_finished | Внешняя аутентификация завершилась. Плательщик завершил процедуру аутентификации (3DS). Ее результат на момент данного статуса неизвестен. |
authorized | Авторизована, ожидает подтверждения. Денежные средства в размере суммы операции заморожены на счете плательщика. Для отправки операции на клиринг необходимо дополнительное подтверждение. Данный статус является однозначным признаком успешности операции. |
captured | Подтверждена, готова к возмещению. Операция будет отправлена процессором на клиринг при ближайшей возможности (определяется процессором). Данный статус является однозначным признаком успешности операции. |
cancelled_partially | Отменена частично. Клиринг по операции будет произведен на сумму, меньшую оригинальной суммы операции. |
cancelled | Отменена. Клиринг по операции произведен не будет. |
refunded_partially | Возвращена частично. Плательщику будет возвращена часть оригинальной суммы операции. |
refunded | Возвращена. Плательщику будет возвращена вся сумма операции. |
declined | Отклонена процессором. Причина отклонения может быть определена на основании значений параметров processor_code и processor_desc. |
failed | Отклонена PSP. Причина отклонения может быть определена на основании значений параметров response_code и response_desc. |
unknown | Нет информации о статусе. Данный статус имеет место при возникновении нештатных ситуаций в процессе коммуникации PSP и процессора. Например, если PSP не получил ответ от процессора (таймаут). В таких ситуациях рекомендуется использовать метод status API PSP для определения фактического статуса операции. |
expired | Просрочена. Операция достигла истечения срока действия без завершения или подтверждения. |
Общий алгоритм определения результата операции
Ниже приведен алгоритм, который необходимо реализовать на стороне системы мерчанта для определения результата операции.
- Анализ response_code. Равенство 0 (нулю) означает, что обмен данными между системами PSP и процессора произошел корректно. Неравенство 0 (нулю) означает либо ошибку в процессе подготовки данных для отправки процессору (операция не выполнена), либо получение от процессора некорректного ответа / не получения ответа вовсе (фактический статус операции, при необходимости, может быть запрошен при помощи метода status API PSP).
- Анализ state_fin_operation и/или state_fin_operation_parent согласно справочнику (см. предыдущий раздел настоящего документа) для определения статусов текущей и/или родительской операций.
Финансовый результат операции определяется только значением параметра state_fin_operation. Значения authorized и captured являются однозначными признаками успешности операции, declined и failed – неуспешности. Подробная информация о трактовке статусов финансовых операций приведена в предыдущем разделе настоящего документа.
Если response_code не равен 0 (нулю) и state_fin_operation в ответе отсутствует, это означает, что финансовая операция даже не была инициирована (неуспешна).
Если response_code не равен 0 (нулю) и state_fin_operation=unknown, фактический статус операции должен быть запрошен при помощи метода status API PSP.
Справочник кодов ошибок процессора (ISO8583)
Если кодировка ошибок на стороне системы процессора соответствует спецификации ISO8583, то для интерпретации причины отказа процессора в проведении операции можно использовать следующую таблицу. Следует иметь ввиду, что некоторые процессоры возвращают более одного кода ответа (соответствующий параметр processor_code в ответе системы PSP имеет тип «массив»). В таком случае, основной код, определяющий результат операции, возвращается первым элементом массива.
Код | Сообщение | Перевод ошибки |
---|---|---|
00 | Successfully completed | Успешно завершено |
01 | Refer to card issuer | Отказ банка-эмитента. |
02 | Refer to card issuer's special condition | Отказ банка-эмитента. |
03 | Invalid merchant / source | Мерчант настроен некорректно / Недействительный идентификатор продавца |
04 | PICK UP | Карта утеряна/Отказ банка-эмитента |
05 | Do not Honour | Транзакция была отклонена эмитентом без объяснения причин |
06 | Error | Ошибка |
07 | Pick-up card, special condition | Карта утеряна/Отказ банка-эмитента |
08 | Honour with identification | Не пройдена идентификация, проблема с идентификацией |
09 | Request in progress | Выполняется запрос |
10 | Approved for partial amount | Одобрено для частичной суммы |
11 | Approved (VIP) | Одобрено для VIP, программа VIP |
12 | Invalid transaction | Запрошенная транзакция не поддерживается или недействительна для представленного номера карты |
13 | Invalid amount |
неверная сумма |
14 | No such card | Такая карта не существует |
15 | No such issuer | Указан неверный номер карты |
16 | Approved, update track 3 | Утверждено, обновить |
17 | Customer cancellation | Отмена клиентом |
18 | Customer dispute | Открыт спор с клиентом |
19 | Re-enter transaction | Клиент должен повторно отправить транзакцию |
20 | Invalid response | Неверный ответ |
21 | No action taken | Никаких действий не предпринимается. Эмитент отказался без других объяснений |
22 | Suspected malfunction | Предполагаемая неисправность |
23 | Unacceptable transaction fee | Неприемлемая комиссия за транзакцию |
24 | File update not supported by receiver | Обновление файла не поддерживается |
25 | No such record | Невозможно найти запись |
26 | Duplicate record update, old record replaced | Дублирующая запись |
27 | File update field edit error | Ошибка редактирования обновления файла |
28 | File locked out while update | Файл/обновления файла заблокировано |
29 | File update error, contact acquirer | Ошибка обновления файла |
30 | Format error | Ошибка формата |
32 | Completed partially | Завершено частично |
33 | Pick-up, expired card | Срок действия карты истек |
34 | Suspect Fraud | Эмитент карты подозревает мошенничество |
35 | Pick-up, card acceptor contact acquirer | Карта утеряна/необходимо обратиться к эмитенту |
36 | Pick up, card restricted | Ограничено эмитентом карты/необходимо обратиться к эмитенту |
37 | Pick up, call acquirer security | Карта утеряна/cвязаться со службой безопасности эквайера |
38 | Pick up, Allowable PIN tries exceeded | Количество попыток получения PIN-кода превышает лимиты эмитента |
39 | No credit account | Нет кредитного счета |
40 | Requested function not supported | Запрошенная функция не поддерживается |
41 | Pick up, lost card | Карта была утеряна |
42 | No universal account | Нет универсальной учетной записи |
43 | Pick up, stolen card | Карта была украдена |
44 | No investment account | Нет инвестиционного счета |
51 | Not sufficient funds | Недостаточно средств |
52 | No chequing account | Нет текущего счета |
53 | No savings account | Нет сберегательного счета |
54 | Expired card / target | Срок действия карты истек |
55 | Incorrect PIN | Неправильный PIN-код держателя карты |
56 | No card record | Нет такой карты |
57 | Transaction not permitted to cardholder | Операция не разрешена держателю карты. Карта не разрешена для запрошенного типа транзакции |
58 | Transaction not permitted to terminal | Транзакция не разрешена на терминале. Продавцу запрещен этот тип транзакции (заблокирован терминал; сработало ограничение и т.д. необходимо уточнять подробности у эквайера) |
59 | Suspected fraud | Предполагаемое мошенничество |
60 | Card acceptor contact acquirer | Связаться с службой безопасности |
61 | Exceeds withdrawal amount limit |
1) Для операции Pay - cумма превышает разрешенный суточный лимит (необходимо обратиться к эмитенту); 2) Для операций Payout - недостаточно средств на счете или превышен месячный лимит на терминале (необходимо обратиться к эквайеру). |
62 | Restricted card | Карта заблокирована |
63 | Security violation | Нарушение безопасности. Карта заблокирована |
64 | Wrong original amount | Неверная исходная сумма |
65 | Exceeds withdrawal frequency limit | Превышено допустимое количество ежедневных транзакций |
66 | Call acquirers security department | Связаться со службой безопасности эквайера |
68 | Response received too late | Ответ получен слишком поздно |
70 | Invalid transaction; contact card issuer | Недействительная операция |
71 | Decline PIN not changed | Отказ/пароль не удалось сменить |
75 | Allowable number of PIN tries exceeded | Превышено количество попыток ввода PIN-кода |
76 | Wrong PIN, number of PIN tries exceeded | Неверный PIN-код, количество попыток превышено |
78 | Record Not Found | Запись не найдена |
79 | Already reversed | Операция уже отменена |
80 | Network error | Ошибка сети |
81 | Foreign network error / PIN cryptographic error | Ошибка криптографии |
82 | Time-out at issuer system / Bad CVV (VISA) | Введен неверный CVV код во время проведения платежа |
83 | Transaction failed | Транзакция неуспешна |
85 | No reason to decline | Причина для отказа неуказана |
86 | Unable to validate PIN | Невозможно проверить PIN-код |
88 | Cryptographic failure | Ошибка криптографии |
89 | Authentication failure | Ошибка аутентификации |
90 | Time-out at issuer system / Bad CVV (VISA) | Введен неверный CVV код во время проведения платежа |
91 | Issuer or switch is inoperative/Issuer unavailable | Эмитент недоступен |
93 | Cannot be completed, violation of law | Операция отклонена. Держателю необходимо обратиться в свой банк |
94 | Duplicate Transmission | Дублированная операция |
95 | Reconcile error / Auth Not found | Возникает, когда операция была уже проведена. |
96 | System Malfunction | Системная ошибка \ Возможно ошибки в параметрах запроса к платёжной системе |
-2 | Bad CGI request | Запрос не прошел CGI-проверку |
-3 | No or Invalid response received | Хост эквайрера (NS) не отвечает |
-4 | Server is not responding | Нет соединения с хостом эквайрера |
-5 | Connect failed | Ошибка соединения с хостом эквайрера (NS) во время обработки транзакции |
-6 | Configuration error | Ошибка настройки модуля e-Gateway |
-8 | Error in card number field | Ошибка в поле "Card number" запроса |
-9 | Error in card expiration date field | Ошибка в поле "Card expiration date" запроса |
-10 | Error in amount field | Ошибка в поле "Amount" запроса |
-11 | Error in currency field | Ошибка в поле "Currency" запроса |
-12 | Error in merchant terminal field | Ошибка в поле "Merchant ID" запроса |
-15 | Invalid Retrieval reference number | Неверный номер |
-16 | Terminal is locked, please try again | терминал заблокирован, попробуйте снова |
-17 | Access denied | Отказано в доступе (Возможно ошибка при формировании P_SIGN) |
-18 | Error in CVC2 or CVC2 Description fields | Ошибка в поле CVC2 |
-19 | Authentication failed | Аутентификация прошла неуспешно (3d-secure), возможны другие причины. |
-20 | Expired transaction | Время проведения операции превышает значение параметра TIMESTAMP |
-21 | Duplicate transaction | Отправлен повторный запрос с идентичными параметрами |
-26 | Invalid action BIN | Неверный бин |
-29 | Invalid/duplicate authentication reference | Неверная/повторяющаяся ссылка на аутентификацию |
Справочник кодов ошибок PSP
В случае возникновения ошибки в процессе обработки запроса на стороне системы PSP, в ответе в обязательном порядке присутствуют следующие значения параметров:
- response_code, не равный 0 (нулю), позволяет определить тип ошибки,
- response_desc, не равный “success”, позволяет определить причину ошибки, состоит из трех частей, разделенных символом “|” (вертикальная черта):
- общее сообщение – соответствует коду ошибки и позволяет быстрее определить тип ошибки,
- место возникновения (может отсутствовать в зависимости от настроек на стороне системы PSP) – указывает на модуль и функцию, где произошла ошибка (информация имеет ценность исключительно для службы технической поддержки PSP),
- детализация – содержит детальную информацию об ошибке.
Код | Общее сообщение | Описание |
---|---|---|
Общие уровня системы | ||
100000 | DB CONNECT ERROR | Ошибка подключения к БД PSP |
100001 | DB QUERY ERROR | Ошибка исполнения запроса к БД PSP |
100002 | INPUT DATA ERROR | Ошибка входных данных |
100003 | INTERNAL ERROR | Внутренняя ошибка |
100004 | NOT FOUND | Сущность не найдена |
100005 | CLIENT AUTH ERROR | Ошибка аутентификации клиента |
Ошибки уровня службы | ||
101000 | INTERNAL ERROR | Внутренняя ошибка |
101001 | NOT FOUND | Сущность не найдена |
101002 | SECURITY VIOLATION | Ошибка безопасности |
101003 | INPUT DATA ERROR | Ошибка входных данных |
101005 | DUPLICATE ID | Ошибка дублирования данных |
Ошибки уровня интерфейса | ||
102000 | INTERNAL ERROR | Внутренняя ошибка |
102001 | NOT FOUND | Сущность не найдена |
102002 | REQUEST OUT DATA ERROR | Ошибка в данных исходящего запроса |
102003 | RESPONSE OUT DATA ERROR | Ошибка в данных исходящего ответа |
102004 | REQUEST IN DATA ERROR | Ошибка в данных входящего запроса |
102005 | RESPONSE IN DATA ERROR | Ошибка в данных входящего ответа |
102006 | SECURITY VIOLATION | Ошибка безопасности |
102007 | INPUT DATA ERROR | Ошибка входных данных |
Ошибки уровня сущности | ||
103000 | INTERNAL ERROR | Внутренняя ошибка |
103001 | NOT FOUND | Сущность не найдена |
Ошибки уровня HTTP | ||
104000 | HTTP REQUEST ERROR | Ошибка при выполнении HTTP-запроса. Как правило, возникает при коммуникационных проблемах между системами PSP и процессора. |
Коллбэки
Если в наборе входных параметров операции присутствует параметр callback_url, система PSP отправит коллбэк с результатом операции либо на callback_url, либо на URL, прописанный в настройках мерчанта в системе PSP. Данные в рамках коллбэка передаются методом POST. Структура полностью аналогична описанной выше структуре ответа. Прежде чем интерпретировать результат коллбэка мерчант обязан проверить подпись (см. выше раздел «Подпись запроса/ответа»). В случае несовпадения подписей, вычисленной мерчантом и полученной в коллбэке, мерчант игнорирует данные коллбэка. При наличии у мерчанта технической возможности, рекомендуется принимать коллбэки только с IP-адресов, указанных PSP.
Подпись запроса/ответа
Каждый запрос в API PSP должен быть подписан секретным ключом по алгоритму hmac-sha256. В части ответов API PSP, обязательность подписи распространяется только на коллбэки. Подпись онлайн-ответов может быть включена по желанию мерчанта. Секретный ключ выдается при регистрации мерчанта в системе PSP вместе с id_client. Значение hmac-sha256 вычисляется от строки, сформированной на основании параметров запроса/ответа, следующим образом (в строку входят все фактические параметры запроса/ответа, кроме sign, в котором передается подпись, и параметров, в описании которых явно указано, что они не учитываются при вычислении подписи).
name1=value1,name2=value2,…,nameN=valueN
Пример строки для вычисления подписи запроса:
method=c2b,fin_instrument=acquiring,id_client=test,id_request=e5d50146-04d1-4071,currency=643,amount=970.0,pan_src=5547810000004672,exp_month_src=03,exp_year_src=2023,cvc_src=123,return_url_success=https:/mysite.com/success,return_url_fail=https://mysite.com/fail,callback_url=https://mysite.com/callback
В конце строки запятой нет. Порядок следования пар «имя=значение» соответствует фактическому порядку следования в запросе.
Если в запросе/ответе имеет место параметр типа «массив», например, «”processor_code”:[25,52]», то в строку для вычисления подписи он войдет следующим образом:
…,processor_code=25,processor_code=52,…
Полученное значение hmac-sha256 передается в параметре sign.
Алгоритм взаимодействия плательщика, мерчанта и PSP при выполнении платежа
Любое взаимодействие плательщика, мерчанта и PSP в рамках совершения платежа включает в себя следующие этапы.
- Мерчант инициирует финансовую операцию оплаты (например, method=c2b, fin_instrument=acquiring).
- Плательщик на платежной странице мерчанта или PSP вводит реквизиты платежного инструмента (например, банковской карты).
- PSP получает от процессора информацию о необходимости дополнительной аутентификации плательщика (3DS).
- Если дополнительная аутентификация не требуется, PSP возвращает онлайн-ответ, содержащий результат операции, мерчанту. При необходимости мерчанту отправляется коллбэк, содержащий аналогичную информацию. В случае использования плательщиком платежной страницы PSP, ему отображается страница с результатом операции. На этом взаимодействие завершается.
- Если дополнительная аутентификация требуется, PSP возвращает мерчанту онлайн-ответ, содержащий URL, на который необходимо отправить браузер плательщика для прохождения аутентификации. В случае использования плательщиком платежной страницы PSP, происходит автоматический редирект его браузера на данный URL.
- Плательщик проходит дополнительную аутентификацию (ответственность за данный процесс лежит на эквайере и эмитенте).
- После завершения процесса аутентификации, браузер плательщика отправляется на URL PSP. В случае использования плательщиком платежной страницы PSP, ему отображается страница с результатом операции. В противном случае, PSP осуществляет редирект браузера плательщика на URL, указанный в параметре return_url или настроенный статически на стороне PSP. В случае необходимости, PSP отправляет мерчанту коллбэк, содержащий результат операции. На этом взаимодействие завершается.
Финансовые операции
Определение результата финансовой операции
Результатом финансовой операции является движение денежных средств между ее участниками. Тип финансовой операции определяется совокупностью значений двух параметров запроса: method и fin_instrument. Например, method=c2b и fin_instrument=acquiring определяет тип финансовой операции «эквайринг», а method=c2b и fin_instrument=transfer – «перевод с банковской карты физического лица на счет юридического лица». Ниже приведены все поддерживаемые типы финансовых операций с указанием наборов параметров запросов и ответов.
Эквайринг
Списание денежных средств с банковской карты физического лица в пользу юридического лица (мерчанта).
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение c2b. |
method_mode | нет | Значение preauth (предавторизация) означает необходимость вызова метода capture для отправки операции на клиринг. Во всех остальных кейсах параметр не передается. |
fin_instrument | да | Должен иметь значение acquiring. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_order | да | Уникальный идентификатор заказа. |
amount | да | Сумма операции. |
currency | нет | ISO-код валюты операции. |
desc_public | нет | Описание операции, которое отображается на платежной странице. |
desc_private | нет | Описание операции, которое возвращается в реестрах процессора (при наличии у него технической возможности). |
add_info | нет | Параметр для передачи дополнительной инфомрации (при наличии у него технической возможности). |
pan_src | нет | PAN карты плательщика. Является обязательным при отсутствии в запросе параметра card_token_src и не передается при его наличии. |
exp_month_src | нет | Месяц истечения срока действия карты плательщика. Является обязательным при отсутствии в запросе параметра card_token_src и не передается при его наличии. |
exp_year_src | нет | Год истечения срока действия карты плательщика. Является обязательным при отсутствии в запросе параметра card_token_src и не передается при его наличии. |
cvc_src | нет | CVC/CVV карты плательщика. |
card_token_src | нет | Токен карты плательщика. Заменяет параметры: pan_src, exp_month_src, exp_year_src. |
callback_url | нет | URL системы мерчанта, на который система PSP по завершению операции отправит коллбэк, содержащий результат операции. |
return_url | нет | URL, на который система PSP вернет браузер плательщика после прохождения аутентификации 3DS или после завершения процесса оплаты посредством платежной страницы на стороне PSP. |
return_url_success | нет | Аналог return_url, используемый только в случае, если операция завершена успешно. |
return_url_fail | нет | Аналог return_url, используемый только в случае, если операция завершена неуспешно. |
card_tokenization_mode_src | нет |
Определяет, следует ли производить токенизацию и использовать полученный токен для создания рекуррентов. Когда этот параметр установлен в значение 1, система будет выполнять токенизацию входных данных и создавать рекурренты на основе полученного токена. |
tds_mode | нет | Определяет, следует ли использовать 3DS для транзакции. Если задано значение "force", то 3DS будет активирован, в противном случае - нет. |
sign | да | Подпись запроса в API. |
sub_merchant_id | нет | Идентификатор ТСП, зарегистрированный в НСПК. |
sub_merchant_terminal_id | нет | Идентификатор ТСП, зарегистрированный в НСПК. |
facilitator_merchant_name | нет | Название ТСП, зарегистрированное в НСПК. |
merchant_inn | нет | ИНН ТСП |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_order | нет | Уникальный идентификатор заказа. |
state_fin_operation | нет | Статус операции. |
amount | нет | Сумма операции. |
amount_authorized | нет | Сумма, заблокированная на счете плательщика в рамках операции, и не отправленная на клиринг. |
amount_captured | нет | Сумма, которая в рамках операции отправлена на клиринг. |
amount_cancelled | нет | Сумма, которая была разблокирована на счете плательщика в рамках операции. |
amount_refunded | нет | Сумма, которая была возвращена на счет плательщика в рамках операции. |
processor_transaction_id | нет | Идентификатор операции, присвоенный процессором. |
rrn | нет | RRN операции. |
auth_code | нет | Код авторизации операции. |
card_token_src | нет | Токен карты плательщика. |
card_token_last_4_src | нет | Последние 4 цифры номера карты плательщика. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
processor_code | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | Текстов(ое, ые) пояснени(е, я) к processor_code. |
auth_ext_url | нет | URL, на который необходимо отправить браузер плательщика для старта процедуры аутентификации 3DS. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 256
method=c2b&fin_instrument=acquiring&id_client=test&id_request=202205161942&amount=11.11&desc_public=%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20%D0%BA%D1%83%D1%80%D1%81%D0%B0&pan_src=4146577820125130&exp_month_src=11&exp_year_src=2024&cvc_src=764&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_order":"123456",
"state_fin_operation":"auth_ext_ready",
"amount":11.11,
"amount_authorized":0,
"amount_captured":0,
"amount_cancelled":0,
"amount_refunded":0,
"processor_transaction_id":"5CEA2D50295C1FAE",
"rrn":"",
"auth_code":"",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"auth_ext_url":"https://api.pay2me.com/public/?id=auth_ext&id_auth_ext_session=gutw1scol6t2u9iw",
"sign":"signature"
}
AFT
Перевод денежных средств со счета банковской карты физического лица на счет юридического лица (мерчанта).
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение c2b. |
fin_instrument | да | Должен иметь значение transfer. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_order | да | Уникальный идентификатор заказа. |
amount | да | Сумма операции. |
currency | нет | ISO-код валюты операции. |
desc_public | нет | Описание операции, которое отображается на платежной странице. |
desc_private | нет | Описание операции, которое возвращается в реестрах процессора (при наличии у него технической возможности). |
pan_src | нет | PAN карты плательщика. Является обязательным при отсутствии в запросе параметра card_token_src и не передается при его наличии. |
exp_month_src | нет | Месяц истечения срока действия карты плательщика. Является обязательным при отсутствии в запросе параметра card_token_src и не передается при его наличии. |
exp_year_src | нет | Год истечения срока действия карты плательщика. Является обязательным при отсутствии в запросе параметра card_token_src и не передается при его наличии. |
cvc_src | нет | CVC/CVV карты плательщика. |
card_token_src | нет | Токен карты плательщика. Заменяет параметры: pan_src, exp_month_src, exp_year_src. |
callback_url | нет | URL системы мерчанта, на который система PSP по завершению операции отправит коллбэк, содержащий результат операции. |
return_url | нет | URL, на который система PSP вернет браузер плательщика после прохождения аутентификации 3DS или после завершения процесса оплаты посредством платежной страницы на стороне PSP. |
return_url_success | нет | Аналог return_url, используемый только в случае, если операция завершена успешно. |
return_url_fail | нет | Аналог return_url, используемый только в случае, если операция завершена неуспешно. |
card_tokenization_mode_src | нет |
Определяет, следует ли производить токенизацию и использовать полученный токен для создания рекуррентов. Когда этот параметр установлен в значение 1, система будет выполнять токенизацию входных данных и создавать рекурренты на основе полученного токена. |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_order | нет | Уникальный идентификатор заказа. |
state_fin_operation | нет | Статус операции. |
amount | нет | Сумма операции. |
amount_authorized | нет | Сумма, заблокированная на счете плательщика в рамках операции, и не отправленная на клиринг. |
amount_captured | нет | Сумма, которая в рамках операции отправлена на клиринг. |
amount_cancelled | нет | Сумма, которая была разблокирована на счете плательщика в рамках операции. |
amount_refunded | нет | Сумма, которая была возвращена на счет плательщика в рамках операции. |
processor_transaction_id | нет | Идентификатор операции, присвоенный процессором. |
rrn | нет | RRN операции. |
auth_code | нет | Код авторизации операции. |
card_token_src | нет | Токен карты плательщика. |
card_token_last_4_src | нет | Последние 4 цифры номера карты плательщика. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
processor_code | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | Текстов(ое, ые) пояснени(е, я) к processor_code. |
auth_ext_url | нет | URL, на который необходимо отправить браузер плательщика для старта процедуры аутентификации 3DS. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 255
method=c2b&fin_instrument=transfer&id_client=test&id_request=202205161942&amount=11.11&desc_public=%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20%D0%BA%D1%83%D1%80%D1%81%D0%B0&pan_src=4146577820125130&exp_month_src=11&exp_year_src=2024&cvc_src=764&sign=signature
Пример ответа
{
"id_request": "202205161942",
"id_order": "123456",
"state_fin_operation": "auth_ext_ready",
"amount": 11.11,
"amount_authorized": 0,
"amount_captured": 0,
"amount_cancelled": 0,
"amount_refunded": 0,
"processor_transaction_id": "5CEA2D50295C1FAE",
"rrn": "",
"auth_code": "",
"response_code": 0,
"response_desc": "success",
"processor_name": "ПромСвязьБанк",
"auth_ext_url": "https://api.pay2me.com/public/?id=auth_ext&id_auth_ext_session=gutw1scol6t2u9iw",
"sign": "signature"
}
OCT
Перевод денежных средств со счета юридического лица (мерчанта) на счет банковской карты физического лица.
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение b2c. |
fin_instrument | да | Должен иметь значение transfer. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_order | нет | Уникальный идентификатор заказа. |
amount | да | Сумма операции. |
currency | нет | ISO-код валюты операции. |
desc_public | нет | Описание операции, которое возвращается в реестрах процессора (при наличии у него технической возможности). |
bank_account_id_src | нет | Номер банковского счета отправителя. |
pan_dst | нет | PAN карты получателя. Является обязательным при отсутствии в запросе параметра card_token_dst и не передается при его наличии. |
card_token_dst | нет | Токен карты получателя. Заменяет параметр pan_dst. |
first_name_dst | нет | Имя получателя. |
last_name_dst | нет | Фамилия получателя. |
callback_url | нет | URL системы мерчанта, на который система PSP по завершению операции отправит коллбэк, содержащий результат операции. |
card_tokenization_dst | нет |
Определяет, следует ли производить токенизацию и использовать полученный токен для создания рекуррентных платежей на карту получателя. Когда этот параметр установлен в значение 1, система будет выполнять токенизацию входных данных карты получателя и создавать рекуррентные платежи на основе полученного токена. Токенизация позволяет безопасно хранить данные карты получателя, заменяя их уникальным токеном. Токен может быть использован для последующих платежей без необходимости предоставления полных данных карты. Это обеспечивает удобство и безопасность при повторных транзакциях на карту получателя. |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_order | нет | Уникальный идентификатор заказа. |
state_fin_operation | нет | Статус операции. |
amount | нет | Сумма операции. |
amount_authorized | нет | Сумма, заблокированная на счете плательщика в рамках операции, и не отправленная на клиринг. |
amount_captured | нет | Сумма, которая в рамках операции отправлена на клиринг. |
amount_cancelled | нет | Сумма, которая была разблокирована на счете плательщика в рамках операции. |
amount_refunded | нет | Сумма, которая была возвращена на счет плательщика в рамках операции. |
processor_transaction_id | нет | Идентификатор операции, присвоенный процессором. |
rrn | нет | RRN операции. |
auth_code | нет | Код авторизации операции. |
card_token_dst | нет | Токен карты получателя. |
card_token_last_4_dst | нет | Последние 4 цифры номера карты получателя. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
processor_code | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | Текстов(ое, ые) пояснени(е, я) к processor_code. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 126
method=b2c&fin_instrument=transfer&id_client=test&id_request=202205161942&amount=11.11&pan_dst=4146577820125130&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_order":"123456",
"state_fin_operation":"captured",
"amount":11.11,
"amount_authorized":0,
"amount_captured":11.11,
"amount_cancelled":0,
"amount_refunded":0,
"processor_transaction_id":"5CEA2D50295C1FAE",
"rrn":"123456789012",
"auth_code":"123456",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"processor_code":[
0,
0
],
"processor_desc":[
"Approved"
],
"sign":"signature"
}
Перевод C2C
Перевод денежных средств со счета банковской карты одного физического лица на счет банковской карты другого физического лица.
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение c2c. |
fin_instrument | да | Должен иметь значение transfer. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_order | нет | Уникальный идентификатор заказа. |
amount | да | Сумма операции. |
currency | нет | ISO-код валюты операции. |
desc_public | нет | Описание операции, которое отображается на платежной странице. |
desc_private | нет | Описание операции, которое возвращается в реестрах процессора (при наличии у него технической возможности). |
add_info | нет | Параметр для передачи дополнительной инфомрации (при наличии у него технической возможности). |
pan_src | нет | PAN карты плательщика. Является обязательным при отсутствии в запросе параметра card_token_src и не передается при его наличии. |
exp_month_src | нет | Месяц истечения срока действия карты плательщика. Является обязательным при отсутствии в запросе параметра card_token_src и не передается при его наличии. |
exp_year_src | нет | Год истечения срока действия карты плательщика. Является обязательным при отсутствии в запросе параметра card_token_src и не передается при его наличии. |
cvc_src | нет | CVC/CVV карты плательщика. |
card_token_src | нет | Токен карты плательщика. Заменяет параметры: pan_src, exp_month_src, exp_year_src. |
pan_dst | нет | PAN карты получателя. Является обязательным при отсутствии в запросе параметра card_token_dst и не передается при его наличии. |
card_token_dst | нет | Токен карты получателя. Заменяет параметр pan_dst. |
callback_url | нет | URL системы мерчанта, на который система PSP по завершению операции отправит коллбэк, содержащий результат операции. |
return_url | нет | URL, на который система PSP вернет браузер плательщика после прохождения аутентификации 3DS или после завершения процесса оплаты посредством платежной страницы на стороне PSP. |
return_url_success | нет | Аналог return_url, используемый только в случае, если операция завершена успешно. |
return_url_fail | нет | Аналог return_url, используемый только в случае, если операция завершена неуспешно. |
card_tokenization_mode_src | нет |
Определяет, следует ли производить токенизацию и использовать полученный токен для создания рекуррентов. Когда этот параметр установлен в значение 1, система будет выполнять токенизацию входных данных и создавать рекурренты на основе полученного токена. |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_order | нет | Уникальный идентификатор заказа. |
state_fin_operation | нет | Статус операции. |
amount | нет | Сумма операции. |
amount_authorized | нет | Сумма, заблокированная на счете плательщика в рамках операции, и не отправленная на клиринг. |
amount_captured | нет | Сумма, которая в рамках операции отправлена на клиринг. |
amount_cancelled | нет | Сумма, которая была разблокирована на счете плательщика в рамках операции. |
amount_refunded | нет | Сумма, которая была возвращена на счет плательщика в рамках операции. |
processor_transaction_id | нет | Идентификатор операции, присвоенный процессором. |
rrn | нет | RRN операции. |
auth_code | нет | Код авторизации операции. |
card_token_src | нет | Токен карты плательщика. |
card_token_last_4_src | нет | Последние 4 цифры номера карты плательщика. |
card_token_dst | нет | Токен карты получателя. |
card_token_last_4_dst | нет | Последние 4 цифры номера карты получателя. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
processor_code | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | Текстов(ое, ые) пояснени(е, я) к processor_code. |
auth_ext_url | нет | URL, на который необходимо отправить браузер плательщика для старта процедуры аутентификации 3DS. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 280
method=c2c&fin_instrument=transfer&id_client=test&id_request=202205161942&amount=11.11&desc_public=%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20%D0%BA%D1%83%D1%80%D1%81%D0%B0&pan_src=4146577820125130&exp_month_src=11&exp_year_src=2024&cvc_src=764&pan_dst=4146577834487385&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_order":"123456",
"state_fin_operation":"auth_ext_ready",
"amount":11.11,
"amount_authorized":0,
"amount_captured":0,
"amount_cancelled":0,
"amount_refunded":0,
"processor_transaction_id":"5CEA2D50295C1FAE",
"rrn":"",
"auth_code":"",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"auth_ext_url":"https://api.pay2me.com/public/?id=auth_ext&id_auth_ext_session=gutw1scol6t2u9iw",
"sign":"signature"
}
Оплата C2B через СБП
Перевод денежных средств со счета физического лица на счет юридического лица (мерчанта) посредством Системы Быстрых Платежей.
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение c2b. |
fin_instrument | да | Должен иметь значение sbp. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_order | нет | Уникальный идентификатор заказа. |
amount | да | Сумма операции. |
desc_public | нет | Описание операции, которое отображается на платежной странице и экране подтверждения оплаты в банковском приложении плательщика. |
desc_private | нет | Описание операции, которое возвращается в реестрах процессора (при наличии у него технической возможности). |
callback_url | нет | URL системы мерчанта, на который система PSP по завершению операции отправит коллбэк, содержащий результат операции. |
return_url | нет | URL, на который система PSP вернет браузер плательщика после завершения процесса оплаты посредством платежной страницы на стороне PSP. |
return_url_success | нет | Аналог return_url, используемый только в случае, если операция завершена успешно. |
return_url_fail | нет | Аналог return_url, используемый только в случае, если операция завершена неуспешно. |
card_tokenization_mode_src | нет |
Определяет, следует ли производить токенизацию и использовать полученный токен для создания рекуррентов. Когда этот параметр установлен в значение 1, система будет выполнять токенизацию входных данных и создавать рекурренты на основе полученного токена. |
sbp_qr_timeout | нет | Срок жизни QR-кода в минутах ( не более 20 мин ). |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_order | нет | Уникальный идентификатор заказа. |
state_fin_operation | нет | Статус операции. |
amount | нет | Сумма операции. |
amount_authorized | нет | Сумма, заблокированная на счете плательщика в рамках операции, и не отправленная на клиринг. |
amount_captured | нет | Сумма, которая в рамках операции отправлена на клиринг. |
amount_cancelled | нет | Сумма, которая была разблокирована на счете плательщика в рамках операции. |
amount_refunded | нет | Сумма, которая была возвращена на счет плательщика в рамках операции. |
processor_transaction_id | нет | Идентификатор операции, присвоенный процессором. |
sbp_qr_id | нет | Идентификатор QR-кода СБП. |
sbp_transaction_id | нет | Идентификатор операции СБП. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
processor_code | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | Текстов(ое, ые) пояснени(е, я) к processor_code. |
sbp_link | нет | Ссылка (deep link/universal link), позволяющая инициировать оплату через СБП на мобильном устройстве посредством выбранного плательщиком приложения банка. |
sbp_qr | нет | Закодированное в формате base64 изображение QR-кода СБП. |
sbp_qr_media_type | нет | Формат изображения, содержащегося в параметре sbp_qr. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 178
method=c2b&fin_instrument=sbp&id_client=test&id_request=202205161942&amount=11.11&desc_public=%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20%D0%BA%D1%83%D1%80%D1%81%D0%B0&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_order":"123456",
"state_fin_operation":"pending",
"amount":11.11,
"amount_authorized":0,
"amount_captured":0,
"amount_cancelled":0,
"amount_refunded":0,
"processor_transaction_id":"5CEA2D50295C1FAE",
"sbp_qr_id":"AD100074RGN88G1L9EJATRAIGR2FKO6B",
"sbp_transaction_id":"",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"sbp_link":"https://qr.nspk.ru/AD10002RND70DAGM90B84THR5BTHI72A?type=02&bank=100000000015&sum=1000&cur=RUB&crc=BAEB",
"sbp_qr_media_type":"image/png",
"sbp_qr":"iVBORw0KGgoAAAANSUhEUgAAASwAAA…",
"sign":"signature"
}
Выплата B2C через СБП
Перевод денежных средств со счета юридического лица (мерчанта) на счет физического лица посредством Системы Быстрых Платежей.
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение b2c. |
fin_instrument | да | Должен иметь значение sbp. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_order | да | Уникальный идентификатор заказа. |
amount | да | Сумма операции. |
desc_private | нет | Описание операции, которое возвращается в реестрах процессора (при наличии у него технической возможности). |
add_info | нет | Параметр для передачи дополнительной инфомрации (при наличии у него технической возможности). |
bank_id_dst | да | Идентификатор банка получателя. |
bank_bic_dst | да | БИК банка получателя. |
msisdn_dst | да | Номер мобильного телефона получателя в международном формате. |
callback_url | нет | URL системы мерчанта, на который система PSP по завершению операции отправит коллбэк, содержащий результат операции. |
card_tokenization_dst | нет |
Определяет, следует ли производить токенизацию и использовать полученный токен для создания рекуррентных платежей на карту получателя. Когда этот параметр установлен в значение 1, система будет выполнять токенизацию входных данных карты получателя и создавать рекуррентные платежи на основе полученного токена. Токенизация позволяет безопасно хранить данные карты получателя, заменяя их уникальным токеном. Токен может быть использован для последующих платежей без необходимости предоставления полных данных карты. Это обеспечивает удобство и безопасность при повторных транзакциях на карту получателя. |
sbp_qr_timeout | нет | Срок жизни QR-кода в минутах ( не более 20 мин ). |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_order | нет | Уникальный идентификатор заказа. |
state_fin_operation | нет | Статус операции. |
amount | нет | Сумма операции. |
amount_authorized | нет | Сумма, заблокированная на счете плательщика в рамках операции, и не отправленная на клиринг. |
amount_captured | нет | Сумма, которая в рамках операции отправлена на клиринг. |
amount_cancelled | нет | Сумма, которая была разблокирована на счете плательщика в рамках операции. |
amount_refunded | нет | Сумма, которая была возвращена на счет плательщика в рамках операции. |
processor_transaction_id | нет | Идентификатор операции, присвоенный процессором. |
sbp_transaction_id | нет | Идентификатор операции СБП. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
processor_code | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | Текстов(ое, ые) пояснени(е, я) к processor_code. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 144
method=b2c&fin_instrument=sbp&id_client=test&id_request=202205161942&amount=11.11&bank_id_dst=123456789012&msisdn_dst=79998887766&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_order":"123456",
"state_fin_operation":"captured",
"amount":11.11,
"amount_authorized":0,
"amount_captured":11.11,
"amount_cancelled":0,
"amount_refunded":0,
"processor_transaction_id":"5CEA2D50295C1FAE",
"sbp_transaction_id":"A2153153147429010000056517BE1DD5",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"processor_code":[
0,
0
],
"processor_desc":[
"Approved"
],
"sign":"signature"
}
Отмена
Полная или частичная разблокировка денежных средств на счете плательщика, заблокированных в результате родительской операции. Применима к операциям в статусе authorized. Конкретные нюансы реализации (срок разблокировки средств, возможность частичной разблокировки средств и т.п.) зависят от процессора.
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение cancel. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_request_parent | нет | Уникальный идентификатор запроса родительской операции. В случае отсутствия данного параметра в запросе, обязательным является наличие id_order_parent. |
id_order_parent | нет | Уникальный идентификатор заказа родительской операции. В случае отсутствия данного параметра в запросе, обязательным является наличие id_request_parent. |
amount | нет | Сумма операции. В случае отсутствия данного параметра в запросе, отмена проводится на полную сумму родительской операции. |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_request_parent | нет | Уникальный идентификатор запроса родительской операции. |
id_order | нет | Уникальный идентификатор заказа. |
id_order_parent | нет | Уникальный идентификатор заказа родительской операции. |
state_fin_operation | нет | Статус операции. |
amount | нет | Сумма операции. |
amount_authorized | нет | Сумма, заблокированная на счете плательщика в рамках операции, и не отправленная на клиринг. |
amount_captured | нет | Сумма, которая в рамках операции отправлена на клиринг. |
amount_cancelled | нет | Сумма, которая была разблокирована на счете плательщика в рамках операции. |
amount_refunded | нет | Сумма, которая была возвращена на счет плательщика в рамках операции. |
processor_transaction_id | нет | Идентификатор операции, присвоенный процессором. |
rrn | нет | RRN операции. |
auth_code | нет | Код авторизации операции. |
state_fin_operation_parent | нет | Статус родительской операции. |
amount_parent | нет | Сумма родительской операции. |
amount_authorized_parent | нет | Сумма, заблокированная на счете плательщика в результате выполнения родительской операции, и не отправленная на клиринг. |
amount_captured_parent | нет | Сумма, которая в результате выполнения родительской операции отправлена на клиринг. |
amount_cancelled_parent | нет | Сумма, которая была разблокирована на счете плательщика в рамках родительской операции. |
amount_refunded_parent | нет | Сумма, которая была возвращена на счет плательщика в рамках родительской операции. |
processor_transaction_id_parent | нет | Идентификатор родительской операции, присвоенный процессором. |
rrn_parent | нет | RRN родительской операции. |
auth_code_parent | нет | Код авторизации родительской операции. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
processor_code | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | Текстов(ое, ые) пояснени(е, я) к processor_code. |
processor_code_parent | нет | processor_code для родительской операции. |
processor_desc_parent | нет | processor_desc для родительской операции. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 108
method=cancel&id_client=test&id_request=202205161942&id_request_parent=202205161941&amount=10&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_request_parent":"202205161941",
"id_order ":"123456",
"id_order_parent":"123456",
"state_fin_operation":"captured",
"amount":10,
"amount_authorized":0,
"amount_captured":0,
"amount_cancelled":0,
"amount_refunded":0,
"processor_transaction_id":"5CEA2D50295C1FAE",
"rrn":"123456789012",
"auth_code":"123456",
"state_fin_operation_parent":"cancelled_partially",
"amount_parent":11.11,
"amount_authorized_parent":0,
"amount_captured_parent":1.11,
"amount_cancelled_parent":10,
"amount_refunded_parent":0,
"processor_transaction_id_parent":"5CEA2D50295C1FAE",
"rrn_parent":"123456789012",
"auth_code_parent":"123456",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"processor_code":[
0,
0
],
"processor_desc":[
"Approved"
],
"processor_code_parent":[
0,
0
],
"processor_desc_parent":[
"Approved"
],
"sign":"signature"
}
Возврат
Полный или частичный возврат денежных средств на счет плательщика, списанных в результате родительской операции. Применим к операциям в статусе captured. Конкретные нюансы реализации (срок возврата средств, возможность частичного возврата средств и т.п.) зависят от процессора.
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение refund. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_request_parent | нет | Уникальный идентификатор запроса родительской операции. В случае отсутствия данного параметра в запросе, обязательным является наличие id_order_parent. |
id_order_parent | нет | Уникальный идентификатор заказа родительской операции. В случае отсутствия данного параметра в запросе, обязательным является наличие id_request_parent. |
amount | да | Сумма операции. |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_request_parent | нет | Уникальный идентификатор запроса родительской операции. |
id_order | нет | Уникальный идентификатор заказа. |
id_order_parent | нет | Уникальный идентификатор заказа родительской операции. |
state_fin_operation | нет | Статус операции. |
amount | нет | Сумма операции. |
amount_authorized | нет | Сумма, заблокированная на счете плательщика в рамках операции, и не отправленная на клиринг. |
amount_captured | нет | Сумма, которая в рамках операции отправлена на клиринг. |
amount_cancelled | нет | Сумма, которая была разблокирована на счете плательщика в рамках операции. |
amount_refunded | нет | Сумма, которая была возвращена на счет плательщика в рамках операции. |
processor_transaction_id | нет | Идентификатор операции, присвоенный процессором. |
rrn | нет | RRN операции. |
auth_code | нет | Код авторизации операции. |
sbp_transaction_id | нет | Идентификатор операции СБП. |
state_fin_operation_parent | нет | Статус родительской операции. |
amount_parent | нет | Сумма родительской операции. |
amount_authorized_parent | нет | Сумма, заблокированная на счете плательщика в результате выполнения родительской операции, и не отправленная на клиринг. |
amount_captured_parent | нет | Сумма, которая в результате выполнения родительской операции отправлена на клиринг. |
amount_cancelled_parent | нет | Сумма, которая была разблокирована на счете плательщика в рамках родительской операции. |
amount_refunded_parent | нет | Сумма, которая была возвращена на счет плательщика в рамках родительской операции. |
processor_transaction_id_parent | нет | Идентификатор родительской операции, присвоенный процессором. |
rrn_parent | нет | RRN родительской операции. |
auth_code_parent | нет | Код авторизации родительской операции. |
sbp_qr_id_parent | нет | Идентификатор QR-кода СБП родительской операции. |
sbp_transaction_id_parent | нет | Идентификатор операции СБП родительской операции. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
processor_code | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | Текстов(ое, ые) пояснени(е, я) к processor_code. |
processor_code_parent | нет | processor_code для родительской операции. |
processor_desc_parent | нет | processor_desc для родительской операции. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 108
method=refund&id_client=test&id_request=202205161942&id_request_parent=202205161941&amount=10&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_request_parent":"202205161941",
"id_order ":"123456",
"id_order_parent":"123456",
"state_fin_operation":"captured",
"amount":10,
"amount_authorized":0,
"amount_captured":0,
"amount_cancelled":0,
"amount_refunded":0,
"processor_transaction_id":"5CEA2D50295C1FAE",
"rrn":"123456789012",
"auth_code":"123456",
"state_fin_operation_parent":"refunded_partially",
"amount_parent":11.11,
"amount_authorized_parent":0,
"amount_captured_parent":1.11,
"amount_cancelled_parent":0,
"amount_refunded_parent":10,
"processor_transaction_id_parent":"5CEA2D50295C1FAE",
"rrn_parent":"123456789012",
"auth_code_parent":"123456",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"processor_code":[
0,
0
],
"processor_desc":[
"Approved"
],
"processor_code_parent":[
0,
0
],
"processor_desc_parent":[
"Approved"
],
"sign":"signature"
}
Запрос баланса
Запрос баланса счета мерчанта (при наличии у процессора технической возможности, как правило используется для запроса баланса счета, с которого совершаются выплаты).
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение balance. |
id_request | да | Уникальный идентификатор запроса в API. |
id_client | да | Уникальный идентификатор мерчанта (выдается при его регистрации в системе PSP). |
sign | да | Подпись запроса в API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 121
method=balance&id_request=20230808064556912&id_client=test&sign=signature
Пример ответа
{
"id_request": "2023-08-08T06:45:56.912Z",
"response_code": 0,
"response_desc": "success",
"processor_name": "ПромСвязьБанк",
"balance": "99013921.73",
"sign": "signature"
}
Сервисные операции
Определение сервисной операции
Результатом сервисной операции является получение информации или выполнение какого-либо технического действия в рамках системы PSP. Выполнение сервисной операции не приводит к движению денежных средств. Тип сервисной операции определяется значением параметра запроса method. Ниже приведены все поддерживаемые типы сервисных операций с указанием наборов параметров запросов и ответов.
Запрос статуса
Получение информации о состоянии финансовой операции (родительская операция).
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение status. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_request_parent | нет | Уникальный идентификатор запроса родительской операции. В случае отсутствия данного параметра в запросе, обязательным является наличие id_order_parent. |
id_order_parent | нет | Уникальный идентификатор заказа родительской операции. В случае отсутствия данного параметра в запросе, обязательным является наличие id_request_parent. |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_request_parent | нет | Уникальный идентификатор запроса родительской операции. |
id_order | нет | Уникальный идентификатор заказа. |
id_order_parent | нет | Уникальный идентификатор заказа родительской операции. |
state_fin_operation_parent | нет | Статус родительской операции. |
amount_parent | нет | Сумма родительской операции. |
amount_authorized_parent | нет | Сумма, заблокированная на счете плательщика в результате выполнения родительской операции, и не отправленная на клиринг. |
amount_captured_parent | нет | Сумма, которая в результате выполнения родительской операции отправлена на клиринг. |
amount_cancelled_parent | нет | Сумма, которая была разблокирована на счете плательщика в рамках родительской операции. |
amount_refunded_parent | нет | Сумма, которая была возвращена на счет плательщика в рамках родительской операции. |
processor_transaction_id_parent | нет | Идентификатор родительской операции, присвоенный процессором. |
rrn_parent | нет | RRN родительской операции. |
auth_code_parent | нет | Код авторизации родительской операции. |
sbp_qr_id_parent | нет | Идентификатор QR-кода СБП родительской операции. |
sbp_transaction_id_parent | нет | Идентификатор операции СБП родительской операции. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора родительской операции. |
processor_code_parent | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор родительской операции. |
processor_desc_parent | нет | Текстов(ое, ые) пояснени(е, я) к processor_code_parent. |
auth_ext_url | нет | URL, на который необходимо отправить браузер плательщика для старта процедуры аутентификации 3DS. |
sbp_link | нет | Ссылка (deep link), позволяющая инициировать оплату через СБП на мобильном устройстве посредством выбранного плательщиком приложения банка. |
sbp_qr_media_type | нет | Формат изображения, содержащегося в параметре sbp_qr. |
sbp_qr | нет | Закодированное в формате base64 изображение QR-кода СБП. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 98
method=status&id_client=test&id_request=202205161942&id_request_parent=202205161941&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_request_parent":"202205161941",
"id_order ":"123456",
"id_order_parent":"123456",
"state_fin_operation_parent":"cancelled_partially",
"amount_parent":11.11,
"amount_authorized_parent":0,
"amount_captured_parent":1.11,
"amount_cancelled_parent":10,
"amount_refunded_parent":0,
"processor_transaction_id_parent":"5CEA2D50295C1FAE",
"rrn_parent":"123456789012",
"auth_code_parent":"123456",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"processor_code_parent":[
0,
0
],
"processor_desc_parent":[
"Approved"
],
"sign":"signature"
}
Запрос списка банков-участников СБП
Получение актуального списка банков-участников Системы Быстрых Платежей.
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение bank_list. |
fin_instrument | да | Должен иметь значение sbp. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
bank_list | нет | Список банков. Обратите внимание! Данный параметр не входит в подпись ответа (sign). |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 89
method=bank_list&fin_instrument=sbp&id_client=test&id_request=202205161942&sign=signature
Пример ответа
{
"id_request":"202205161942",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"bank_list":[
"…"
],
"sign":"signature"
}
Создание заказа
Создание в системе PSP заказа, который впоследствии может быть оплачен посредством платежной страницы на стороне PSP.
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение create_order. |
method_mode | нет | Должен иметь значение preauth. |
method_order | нет | Передается в рамках выплаты со значением b2c. |
id_client | да |
Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_order | да | Уникальный идентификатор заказа. |
fin_instrument | да | Финансовый инструмент, определяет конкретный способ реализации платежного метода. |
payment_page_method | нет | Выбор методов оплаты, которые будут отражены на платежной странице. |
amount | да | Сумма заказа. |
currency | нет | ISO-код валюты заказа. |
desc_public | нет | Описание заказа, которое отображается на платежной странице. |
desc_private | нет | Описание заказа, которое возвращается в реестрах процессора (при наличии у него технической возможности). |
add_info | нет | Параметр для передачи дополнительной инфомрации (при наличии у него технической возможности). |
payment_page_session_life_time | нет | передача желаемого времени жизни платежной ссылки в минутах в диапазоне от 1 минуты до 365 дней. |
callback_url | нет | URL системы мерчанта, на который система PSP по завершению оплаты заказа отправит коллбэк, содержащий результат оплаты. |
return_url | нет | URL, на который система PSP вернет браузер плательщика после завершения процесса оплаты посредством платежной страницы на стороне PSP. |
return_url_success | нет | Аналог return_url, используемый только в случае, если заказ оплачен успешно. |
return_url_fail | нет | Аналог return_url, используемый только в случае, если при оплате заказа произошла ошибка. |
tds_mode | нет | Определяет, следует ли использовать 3DS для транзакции. Если задано значение "force", то 3DS будет активирован, в противном случае - нет. |
sign | да | Подпись запроса в API. |
sub_merchant_id | нет | Идентификатор ТСП, зарегистрированный в НСПК. |
sub_merchant_terminal_id | нет | Идентификатор ТСП, зарегистрированный в НСПК. |
facilitator_merchant_name | нет | Название ТСП, зарегистрированное в НСПК. |
merchant_inn | нет | ИНН ТСП |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
request | да | Уникальный идентификатор запроса. |
id_order | нет | Уникальный идентификатор заказа. |
state_fin_operation | нет | Статус заказа. |
amount | нет | Сумма заказа. |
amount_authorized | нет | Сумма, заблокированная на счете плательщика в рамках заказа, и не отправленная на клиринг. |
amount_captured | нет | Сумма, которая в рамках заказа отправлена на клиринг. |
amount_cancelled | нет | Сумма, которая была разблокирована на счете плательщика в рамках заказа. |
amount_refunded | нет | Сумма, которая была возвращена на счет плательщика в рамках заказа. |
processor_transaction_id | нет | Идентификатор заказа, присвоенный процессором. |
rrn | нет | RRN операции оплаты заказа. |
auth_code | нет | Код авторизации операции оплаты заказа. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора операции. |
processor_code | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор операции. |
processor_desc | нет | Текстов(ое, ые) пояснени(е, я) к processor_code. |
payment_page_url | нет | URL, на который необходимо отправить браузер плательщика для оплаты заказа. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 89
method=create_order&id_client=test&id_request=202205161942&id_order=123456&amount=11.11&desc_public=%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20%D0%BA%D1%83%D1%80%D1%81%D0%B0&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_order":"123456",
"state_fin_operation":"initiated",
"amount":11.11,
"amount_authorized":0,
"amount_captured":0,
"amount_cancelled":0,
"amount_refunded":0,
"processor_transaction_id":"",
"rrn":"",
"auth_code":"",
"response_code":0,
"response_desc":"success",
"processor_name":"ПромСвязьБанк",
"payment_page_url":"https://api.pay2me.com/public/?id=payment_page&id_payment_page_session=1ofegrhy9x9z4q5f",
"sign":"signature"
}
Создание ссылки на оплату заказа
Создание ссылки на оплату заказа. Метод используется для создания новой ссылки взамен ссылки с истекшим сроком действия или взамен ссылки, по которой имела место неуспешная попытка оплаты заказа.
Запрос
Название параметра | Обязательный | Описание |
---|---|---|
method | да | Должен иметь значение create_payment_page_url. |
id_client | да | Уникальный идентификатор мерчанта. |
id_request | да | Уникальный идентификатор запроса в API. |
id_request_parent | нет | Уникальный идентификатор запроса родительской операции, для которой создается ссылка на оплату. В случае отсутствия данного параметра в запросе, обязательным является наличие id_order_parent. |
id_order_parent | нет | Уникальный идентификатор заказа родительской операции, для которой создается ссылка на оплату. В случае отсутствия данного параметра в запросе, обязательным является наличие id_request_parent. |
sign | да | Подпись запроса в API. |
Ответ
Название параметра | Обязательный | Описание |
---|---|---|
id_request | да | Уникальный идентификатор запроса. |
id_request_parent | нет | Уникальный идентификатор запроса родительского заказа. |
id_order_parent | нет | Уникальный идентификатор заказа, к которому создается ссылка на оплату (родительский заказ). |
state_fin_operation_parent | нет | Статус родительского заказа. |
amount_parent | нет | Сумма родительского заказа. |
amount_authorized_parent | нет | Сумма, заблокированная на счете плательщика в рамках родительского заказа, и не отправленная на клиринг. |
amount_captured_parent | нет | Сумма, которая в рамках родительского заказа отправлена на клиринг. |
amount_cancelled_parent | нет | Сумма, которая была разблокирована на счете плательщика в рамках родительского заказа. |
amount_refunded_parent | нет | Сумма, которая была возвращена на счет плательщика в рамках родительского заказа. |
processor_transaction_id | нет | Идентификатор заказа, присвоенный процессором. |
rrn_parent | нет | RRN родительского заказа. |
auth_code_parent | нет | Код авторизации родительского заказа. |
response_code | да | Код результата обработки запроса на стороне API PSP. Значение 0 (ноль) означает успех. Любое другое значение – неуспех. |
response_desc | да | Текстовое пояснение к response_code. |
processor_name | нет | Наименование фактического процессора родительского заказа. |
processor_code_parent | нет | Код(ы) ответ(а, ов), которые вернул фактический процессор родительского заказа. |
processor_desc_parent | нет | Текстов(ое, ые) пояснени(е, я) к processor_code_parent. |
payment_page_url | нет | URL, на который необходимо отправить браузер плательщика для оплаты заказа. |
sign | нет | Подпись ответа API. |
Пример запроса
POST /psp HTTP/1.1
Host: api.pay2me.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 89
method=create_payment_page_url&id_client=test&id_request=202205161942&id_order_parent=123456&sign=signature
Пример ответа
{
"id_request":"202205161942",
"id_request_parent":"202205161941",
"id_order_parent":"123456",
"state_fin_operation_parent":"initiated",
"amount_parent":11.11,
"amount_authorized_parent":0,
"amount_captured_parent":0,
"amount_cancelled_parent":0,
"amount_refunded_parent":0,
"processor_transaction_id":"",
"rrn_parent":"",
"auth_code_parent":"",
"response_code":0,
"response_desc":"success",
"payment_page_url":"https://api.pay2me.com/public/?id=payment_page&id_payment_page_session=1ofegrhy9x9z4q5f",
"sign":"signature"
}
Параметр receipt
Передача фискальных данных, строка в формате json со следующей структурой:
{
"params":{
"customer_contact":"Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. ", // E-mail или телефон в формате +7XXXXXXXXXX, на который придет чек
"tax_mode":"TAX_MODE_SIMPLIFIED_INCOME_MINUS_EXPENSE" // Режим налогообложения, может принимать значения, описанные в таблице 2. Не обязательное, по умолчанию берется из кассы либо из настроек шлюза.
"place":"www.site.ru" // Параметр места расчетов, по умолчанию то, которое заданно при регистрации кассы в этом поле можно указать адресс сайта либо физический адрес.
'document_type'=>"DOCUMENT_TYPE_DEBIT" // Тип чека, по умолчанию значение в зависимости от типа операции разрешенной на терминале. допустимые знаяения в таблице 6.
},
"items":[ // позиции чека
{
"price":"9999.99", // Сумма
"description":"Оплата курса 1", // Название товарной позиции
"pay_attribute": "PAY_ATTRIBUTE_FULL_PAYMENT" // Признак способа расчёта, может принимать значения, описанные в таблице 3. По умолчанию PAY_ATTRIBUTE_FULL_PAYMENT
"line_attribute": "LINE_ATTRIBUTE_SERVICE" // Признак предмета расчёта, может принимать значения, описанные в таблице 5. По умолчанию LINE_ATTRIBUTE_SERVICE
"tax_id":"TAX_ID_VAT_20" // Ставка НДС, может принимать значения, описанные в таблице 1. По умолчанию TAX_ID_NO_VAT
},
{
"price":"20010.52", // Сумма
"description":"Оплата курса 2", // Название товарной позиции
"qty":2 // Количество, 1 - если не указывать
"agent_mode":"AGENT_MODE_BANK_AGENT", // Признак агента, может принимать значения, описанные в таблице 4. Поле не обязательно.
"agent_data":{ // Если установлено agent_mode
"phone":"+7XXXXXXXXXX", // Телефон агента в формате +7XXXXXXXXXX
"operation":"Например выдача наличных" // Описание операции
}
"supplier_data":{ // Данные поставщика
"phone":"+7XXXXXXXXXX", // Телефон в формате +7XXXXXXXXXX
"name":"Иванов Иван Иванович" // Название поставщика
"inn":"10-12 chars" // ИНН поставщика
}
}
],
"payments" : { // Не обязательно, сумарные значения.
"cash":9999.99, // Сумма оплаты наличными
"non_cash":20010.52, // Сумма безналичной оплаты
"advance_payment":5000.00, // Предварительная оплата (зачет аванса и (или) предыдущих платежей)
"credit":1000.00, // Постоплата, указывается общая сумма рассрочки, применяется только для первого платежа (если в items есть хотя бы один элемент pay_attribute со значением "PAY_ATTRIBUTE_PARTIAL_PAYMENT")
"consideration":500.00 // Сумма оплаты встречным предоставлением
}
}
Таблицы допустимых констант:
// Таблица 1. Ставка НДС
TAX_ID_VAT_20 - ставка НДС 20%
TAX_ID_VAT_10 - ставка НДС 10%
TAX_ID_BET_20_120 - ставка НДС расч. 20/120
TAX_ID_BET_10_110 - ставка НДС расч. 10/110
TAX_ID_VAT_0 - ставка НДС 0%
TAX_ID_NO_VAT - НДС не облагается
// Таблица 2. Режим налогообложения
TAX_MODE_COMMON - Общая, ОСН
TAX_MODE_SIMPLIFIED_INCOME - Упрощенная доход, УСН доход
TAX_MODE_SIMPLIFIED_INCOME_MINUS_EXPENSE - Упрощенная доход минус расход, УСН доход - расход
TAX_MODE_SINGLE_AGRICULTURAL_TAX - Единый сельскохозяйственный налог, ЕСН
TAX_MODE_PATENT_TAXATION - Патентная система налогообложения, Патент
// Таблица 3. Признак способа расчёта
PAY_ATTRIBUTE_FULL_PREPAYMENT - Предоплата 100%
PAY_ATTRIBUTE_PREPAYMENT - Частичная предоплата
PAY_ATTRIBUTE_ADVANCE - Аванс
PAY_ATTRIBUTE_FULL_PAYMENT - Полный расчет
PAY_ATTRIBUTE_PARTIAL_PAYMENT - Частичный расчет и кредит
PAY_ATTRIBUTE_CREDIT - Передача в кредит
PAY_ATTRIBUTE_CREDIT_PAYMENT - оплата кредита
// Таблица 4. Признак агента
AGENT_MODE_BANK_AGENT - банковский платежный агент
AGENT_MODE_BANK_SUBAGENT - банковский платежный субагент
AGENT_MODE_PAYMENT_AGENT - платежный агент
AGENT_MODE_PAYMENT_SUBAGENT - платежный субагент
AGENT_MODE_ATTORNEY - поверенный
AGENT_MODE_COMMISSION - комиссионер
AGENT_MODE_ANOTHER - иной агент
// Таблица 5. Признак предмета расчёта
LINE_ATTRIBUTE_GOODS - Товар
LINE_ATTRIBUTE_EXCISABLE - Подакцизный товар
LINE_ATTRIBUTE_WORK - Работа
LINE_ATTRIBUTE_SERVICE - Услуга
LINE_ATTRIBUTE_BETTING - Ставка азартной игры
LINE_ATTRIBUTE_BETTING_WIN - Выигрыш азартной игры
LINE_ATTRIBUTE_LOTTERY - Лотерейный билет
LINE_ATTRIBUTE_LOTTERY_WIN - Выигрыш лотереи
LINE_ATTRIBUTE_GRANTING_RIGHTS - Предоставление РИД
LINE_ATTRIBUTE_PREPAID - Платеж
LINE_ATTRIBUTE_REWARD - Агентское вознаграждение
LINE_ATTRIBUTE_ITEMS - Выплата
LINE_ATTRIBUTE_NON_ITEMS - Иной предмет расчета
LINE_ATTRIBUTE_TRANSFER_PROPERTY_RIGHTS - Имущественное право
LINE_ATTRIBUTE_NON_OPERATING_INCOME - Внереализационный доход
LINE_ATTRIBUTE_TAX_REDUCTION - Иные платежи и взносы
LINE_ATTRIBUTE_TRADE_FEE - Торговый сбор
LINE_ATTRIBUTE_RESORT_FEE - Курортный сбор
LINE_ATTRIBUTE_DEPOSIT - Залог
LINE_ATTRIBUTE_EXPENSE - Расход
LINE_ATTRIBUTE_OPS_IP - Взносы на обязательное пенсионное страхование ИП
LINE_ATTRIBUTE_OPS - Взносы на обязательное пенсионное страхование
LINE_ATTRIBUTE_OMS_IP - Взносы на обязательное медицинское страхование ИП
LINE_ATTRIBUTE_OMS - Взносы на обязательное медицинское страхование
LINE_ATTRIBUTE_OSS - Взносы на обязательное социальное страхование
LINE_ATTRIBUTE_CASINO - Платеж казино
LINE_ATTRIBUTE_PAYMENT - Выдача денежных средств
LINE_ATTRIBUTE_ATNM - АТНМ (не имеющем кода маркировки)
LINE_ATTRIBUTE_ATM - АТМ (имеющем код маркировки)
LINE_ATTRIBUTE_TNM - ТНМ
LINE_ATTRIBUTE_TM - ТМ
// Таблица 6. Тип чека
DOCUMENT_TYPE_DEBIT - Приход
DOCUMENT_TYPE_DEBIT_REFUND - Возврат прихода
DOCUMENT_TYPE_CREDIT - Расход