Перейти к содержанию

P2P API

Info

Чтобы использовать данное API и обрабатывать нешифрованные данные карты, требуется наличие PCI DSS сертификата.

Проверка возможности P2P перевода

Запросы, описанные ниже, используются:

  • для проверки возможности P2P перевода между картой-источником и картой-приёмником;
  • для получения информации о комиссии и дополнительно запрашиваемых данных о карте-источнике или карте-приёмнике.

Используйте один из HTTP POST запросов в зависимости от способа вашей интеграции.

Запрос с авторизацией по секретному ключу

Отправьте POST запрос с авторизацией типа Basic с ID и Secret key магазина как имя пользователя и пароль соответственно на https://gateway.unonapay.com/p2p-restrictions. Укажите параметры, описанные здесь.

Запрос с авторизацией по публичному ключу в синхронном режиме

При работе в синхронном режиме, вы получите ответ на ваш запрос со всеми параметрами после того, как система обработает запрос.

Отправьте POST запрос с Bearer авторизацией по публичному ключу и обязательной передачей заголовка X-Api-Version в значении 2 на https://checkout.unonapay.com/ctp/api/verify-p2p. Укажите параметры, описанные здесь.

Запрос с авторизацией по публичному ключу в асинхронном режиме

При работе в асинхронном режиме на ваш запрос вы получите в ответе статус задачи new и job_id, который система назначила вашему запросу. Далее вам необходимо узнать статус обработки запроса.

Отправьте HTTP POST запрос с Bearer авторизацией по публичному ключу и обязательной передачей заголовка X-Api-Version в значении 2 на https://checkout.unonapay.com/ctp/api/async/verify-p2p. Укажите параметры, описанные здесь.

Пример ответа со статусом задачи new и job_id
{
  "status": "new",
  "job_id": "62c5b51a1d69bde6e5afaa70"
}

Для получения статуса задачи по обработке запроса отправьте GET запрос с полученным значением job_id на https://checkout.unonapay.com/ctp/api/async/jobs/{job_id}.

Пример ответа для задачи со статусом new
{
  "status": "new",
  "job_id": "62c5b51a1d69bde6e5afaa70"
}
Пример ответа для задачи со статусом failed
{
    "job_id": "62c5b51a1d69bde6e5afaa70",
    "status": "failed",
    "response": {
        "status": "error",
        "errors": [
            "error"
        ],
        "message": "Request processing error. Please try again later",
        "finished": false
    }
}
Пример ответа для задачи со статусом done
{
  "status": "done",
  "job_id": "62c5b51a1d69bde6e5afaa70",
  "response": {
    //Параметры стандартного ответа
  }
}

Параметры запроса

Параметр Тип Описание
request object
amount * обязательный
integer Сумма перевода, которая должна быть зачислена на карту-приёмник, в минимальных денежных единицах. Например, сумма 32.45 USD должна быть отправлена как 3245.
currency * обязательный
string Валюта перевода в ISO-4217 формате, например USD.
credit_card object Секция параметров карты-источника. Используйте шифрование на стороне клиента, если требуется.
number * обязательный
string Номер карты-источника.
exp_month * условно обязательный
string (2) Месяц окончания срока действия карты-источника, представленный одной или двумя цифрами (например, 01).
exp_year * условно обязательный
string (4) Год окончания срока действия карты-источника, представленный четырьмя цифрами (например, 2026).
holder * условно обязательный
string (35) Имя владельца карты-источника. Максимальная длина: 35 символов. Параметр опционален в системе UnonaPay, но может требоваться банком-эквайером.
token * условно обязательный
string Токен карты-источника или зашифрованный токен в требуемом формате Yandex Pay.
Токен может использоваться вместо number, exp_month и exp_year карты-источника.
recipient_card object Можно использовать шифрование на стороне клиента
number * обязательный
string Номер карты-приёмника или DPAN/ PAN -номер расшифрованного токена Yandex Pay.
exp_month * условно обязательный
string (2) Месяц окончания срока действия карты-приёмника, представленный одной или двумя цифрами (например, 01).
exp_year * условно обязательный
string (4) Год окончания срока действия карты-приёмника, представленный четырьмя цифрами (например, 2026).
holder * условно обязательный
string (35) Имя владельца карты-приёмника. Максимальная длина: 35 символов. Параметр опционален в системе UnonaPay, но может требоваться банком-эквайером.
token * условно обязательный
string Токен карты-приёмника. Обязателен, если передается вместо номера карты-приёмника.
test boolean true - выполнить проверку возможности P2P перевода между тестовыми картами
additional_data object Секция, содержащая дополнительную информацию.
p2p object Секция, содержащая дополнительную информацию о переводе.
type * условно обязательный
string(3) Код типа операции перевода в буквенно-цифровом формате, выданный процессинговым центром.
Уточните у Службы технической поддержки, необходимо ли передавать этот параметр.
Пример запроса
{
  "request": {
    "amount": 100,
    "currency": "USD",
    "credit_card": {
      "number": "4012001037141112"
    },
    "recipient_card": {
      "number": "4200000000000000"
    },
    "test": true
  }
}

Параметры ответа

Если перевод возможен, ответ будет содержать следующие параметры:

Параметр Тип Описание
status string successful
message string Сообщение от системы банка.
commission object
minimum float Минимальная сумма комиссии, которая будет снята с карты-источника.
percent float Процент комиссии, которая будет снята с карты-источника.
bank_fee float Абсолютная величина комиссии, рассчитанная процессингом банка.
currency string Валюта комиссии в ISO-4217 формате, например USD
test boolean true - выполнить проверку возможности P2P перевода между тестовыми картами
Пример ответа
{
  "status": "successful",
  "message": "p2p is allowed",
  "commission": {
    "minimum": 0.7,
    "percent": 1.5,
    "bank_fee": 7.35,
    "currency": "USD"
  }
}

Если перевод невозможен, ответ будет содержать следующие параметры:

Параметр Тип Описание
status string failed
message string Сообщение от системы банка.
required_fields object Секция комиссии за перевод. Если секция была получена в ответе, то комиссия за перевод не расчитывается.
credit_card array Массив параметров, которые должны быть запрошены о карте-источнике. Возможные элементы массива: holder, verification_value, exp_month, exp_year.
recipient_card array Массив параметров, которые должны быть запрошены дополнительно о карте-приёмнике. Возможные элементы массива: holder, exp_month, exp_year.
Пример ответа
{
  "status": "failed",
  "message": "Missed credit card fields: holder.Missed recipient card fields: holder.",
  "required_fields": {
    "credit_card": [
      "holder"
    ],
    "recipient_card": [
      "holder"
    ]
  }
}

В случае ошибки ответ будет содержать следующие параметры:

Параметр Тип Описание
error_code string Код ошибки.
message string Текстовое описание ошибки.
errors object Объекты параметров, в которых возникли ошибки.
Пример ответа
{
  "error_code": "invalid_params",
  "message": "Unprocessable entity",
  "errors": {
    "amount": [
      "must be an integer"
    ],
    "currency": [
      "is unknown ISO 4217 Alpha-3 code"
    ],
    "credit_card": {
      "number": [
        "is not a card number"
      ]
    },
    "recipient_card": {
      "number": [
        "is not a card number"
      ]
    }
  }
}

Осуществление P2P перевода

Для осуществления P2P перевода посредством UnonaPay API необходимо отправить один из HTTP POST запросов в зависимости от вашего способа интеграции.

Запрос с авторизацией по секретному ключу

Отправьте HTTP POST запрос с авторизацией типа Basic с ID и Secret key магазина как имя пользователя и пароль соответственно на https://gateway.unonapay.com/transactions/p2ps. Укажите параметры, описанные здесь.

Запрос с авторизацией по публичному ключу в синхронном режиме

При работе в синхронном режиме, вы получите ответ на ваш запрос со всеми параметрами после того, как система обработает запрос.

Отправьте HTTP POST запрос с Bearer авторизацией по публичному ключу и обязательной передачей заголовка X-Api-Version в значении 2 на https://checkout.unonapay.com/ctp/api/p2p. Укажите параметры, описанные здесь.

Запрос с авторизацией по публичному ключу в асинхронном режиме

При работе в асинхронном режиме на ваш запрос вы получите в ответе статус задачи new и job_id, который система назначила вашему запросу. Далее вам необходимо узнать статус обработки запроса.

Отправьте HTTP POST запрос с Bearer авторизацией по публичному ключу и обязательной передачей заголовка X-Api-Version в значении 2 на https://checkout.unonapay.com/ctp/api/async/p2p. Укажите параметры, описанные здесь.

Пример ответа со статусом задачи new и job_id
{
  "status": "new",
  "job_id": "62c5b51a1d69bde6e5afaa70"
}

Для получения статуса задачи по обработке запроса отправьте GET запрос с полученным значением job_id на https://checkout.unonapay.com/ctp/api/async/jobs/{job_id}.

Ответы для статусов задач new, failed, done такие же, как описаны для запроса проверки возможности P2P перевода.

Параметры запроса

Параметр Тип Описание
request object
amount * обязательный
integer Сумма перевода, которая должна быть зачислена на карту-приёмник, в минимальных денежных единицах. Например, сумма 32.45 USD должна быть отправлена как 3245.
currency * обязательный
string Валюта перевода в ISO-4217 формате, например USD.
description * обязательный
string Описание перевода.
expired_at string Время в формате ISO 8601 YYYY-MM-DDThh:mm:ssTZD, до которого должен быть подтвержден перевод.
tracking_id string ID перевода в вашей системе. Используйте уникальное значение для того, чтобы при запросе статуса транзакции получить актуальную информацию. В противном случае вы получите первую найденную по tracking_id транзакцию.
duplicate_check boolean true или false. Параметр управляет процессом проверки входящего запроса на уникальность. Если в течение 30 секунд придет запрос на оплату с одинаковыми amount и number или token, то запрос будет отклонен. По умолчанию, этот параметр имеет значение true.
language string Язык вашей страницы оформления заказа. Если параметр установлен и email уведомление о транзакции включено, то UnonaPay отправит email, язык текста которого будет language. По умолчанию - en. Доступные значения параметра language.
notification_url string URL, на который будут приходить уведомления. Формат запроса уведомления аналогичен формату ответа транзакции.
return_url string URL, на который UnonaPay будет перенаправлять отправителя перевода после возврата с 3-D Secure проверки для завершения P2P перевода.
test boolean true - выполнить проверку возможности P2P перевода между тестовыми картами.
credit_card object Секция параметров карты-источника. Используйте шифрование на стороне клиента, если требуется.
number * обязательный
string Номер карты-источника.
verification_value * обязательный
string 3-х или 4-х цифровой код безопасности (CVC2, CVV2 или CID, в зависимости от бренда карты).
Может быть отправлен вместе с параметром token и UnonaPay доставит банку-эквайеру данные карты с CVC2/CVV2/CID.
exp_month * условно обязательный
string (2) Месяц окончания срока действия карты-источника, представленный одной или двумя цифрами (например, 01).
exp_year * условно обязательный
string (4) Год окончания срока действия карты-источника, представленный четырьмя цифрами (например, 2026).
holder * условно обязательный
string (35) Имя владельца карты-источника. Максимальная длина: 35 символов. Параметр опционален в системе UnonaPay, но может требоваться банком-эквайером.
token * условно обязательный
string Токен карты-источника, который вы получили в ответе первого перевода, или зашифрованный токен в требуемом формате Yandex Pay.
Токен может использоваться вместо number, exp_month и exp_year карты-источника.
recipient_card object Секция параметров карты-приемника. Используйте шифрование на стороне клиента, если требуется.
number * обязательный
string Номер карты-приёмника или DPAN/ PAN -номер расшифрованного токена Yandex Pay.
exp_month * условно обязательный
string (2) Месяц окончания срока действия карты-приёмника, представленный одной или двумя цифрами (например, 01).
exp_year * условно обязательный
string (4) Год окончания срока действия карты-приёмника, представленный четырьмя цифрами (например, 2026).
holder * условно обязательный
string (35) Имя владельца карты-приёмника. Максимальная длина: 35 символов. Параметр опционален в системе UnonaPay, но может требоваться банком-эквайером.
token * условно обязательный
string Токен карты-приёмника, который вы получили в ответе первого перевода. Он может быть передан вместо выше указанных параметров number, holder, exp_month и exp_year.
additional_data object Секция, содержащая дополнительную информацию.
receipt_text array Текст, который будет добавлен в письмо клиенту. Должен быть представлен как массив строк, например ["Первая строка", "Вторая строка"].
contract array Элементами массива могут быть параметры:

oneclick - UnonaPay вернет токен карты для осуществления последующих платежей по схеме oneclick, когда на странице перевода будут уже частично заполнены реквизиты карты, а пользователю для завершения оплаты достаточно ввести проверочный код карты CVC/CVV и пройти авторизацию по протоколу 3-D ­Secure.
p2p object Секция, содержащая дополнительную информацию о переводе.
type * условно обязательный
string(3) Код типа операции перевода в буквенно-цифровом формате, выданный процессинговым центром.
Уточните у Службы технической поддержки, необходимо ли передавать этот параметр.
customer object Секция информации о покупателе.
ip string IP-адрес отправителя перевода.
email string Адрес электронной почты отправителя перевода.
device_id string ID устройства отправителя перевода.
sender_billing_address object
first_name string Имя отправителя перевода.
last_name string Фамилия отправителя перевода.
country string Страна отправителя перевода в ISO 3166-1 alpha-2 формате.
city string Город отправителя перевода.
state string Двухбуквенная абревиатура штата отправителя перевода, если страна отправителя перевода US или CA.
zip string Почтовый индекс отправителя перевода. Для country=US, формат zip должен иметь вид NNNNN или NNNNN-NNNN.
address string Адрес отправителя перевода.
phone string Номер телефона отправителя перевода.
recipient_billing_address object
first_name string Имя получателя перевода.
last_name string Фамилия получателя перевода.
country string Страна получателя перевода в ISO 3166-1 alpha-2 формате.
city string Город получателя перевода.
state string Двухбуквенная абревиатура штата получателя перевода, если страна получателя перевода US или CA.
zip string Почтовый индекс получателя перевода. Для country=US, формат zip должен иметь вид NNNNN или NNNNN-NNNN.
address string Адрес получателя перевода.
phone string Номер телефона получателя перевода.
billing_address object Секция billing_adress оставлена для сохранения совместимости с предыдущей версией API. Если разрабатывается новая интеграция - использовать секции sender_billing_adress и recipient_billing_adress.
first_name string Имя отправителя перевода.
last_name string Фамилия отправителя перевода.
country string Страна отправителя перевода в ISO 3166-1 alpha-2 формате.
city string Город отправителя перевода.
state string Двухбуквенная абревиатура штата отправителя перевода, если страна отправителя перевода US или CA.
zip string Почтовый индекс отправителя перевода. Для country=US, формат zip должен иметь вид NNNNN или NNNNN-NNNN.
address string Адрес отправителя перевода.
phone string Номер телефона отправителя перевода.
Пример запроса
{
  "request": {
    "test": false,
    "amount": 100,
    "currency": "EUR",
    "description": "Test transaction ütf",
    "tracking_id": "tracking_id_000",
    "billing_address": {
      "phone": "123"
    },
    "credit_card": {
      "number": "2012001037140165",
      "verification_value": "123",
      "exp_month": "01",
      "exp_year": "2026",
      "holder": "John Doe"
    },
    "recipient_card": {
      "number": "2019001037140165",
      "holder": "Mary Doe"
    },
    "customer": {
      "ip": "127.0.0.1",
      "device_id": "12312312321fff67",
      "email": "jahn_test@mial.com"
    },
    "sender_billing_address": {
      "first_name": "Mary",
      "last_name": "Smith",
      "country": "BY",
      "city": "Minsk",
      "address": "Gilbert 104"
    },
    "recipient_billing_address": {
      "first_name": "Jane",
      "last_name": "Smith",
      "country": "BY",
      "city": "Minsk",
      "address": "Gilbert 104"
    }
  }
}

Параметры ответа

Параметры ответа копируют параметры запроса, но содержат и дополнительные параметры:

Параметр Тип Описание
transaction object
uid string UID обработанной транзакции.
status string Статус перевода.
amount integer Сумма перевода, которая зачислена на карту-приёмник, в минимальных денежных единицах.
currency string Валюта перевода в ISO-4217 формате, например USD.
description string Описание перевода.
type string p2p
payment_method_type string credit_card
tracking_id string Значение параметра tracking_id из запроса.
message string Сообщение с результатом запроса.
test boolean Если true, то это тестовая операция.
created_at string Время создания перевода в ISO 8601 формате (YYYY-MM-DDThh:mm:ssTZD).
updated_at string Время последнего обновления данных перевода в базе данных в ISO 8601 формате (YYYY-MM-DDThh:mm:ssTZD).
paid_at string В случае успешно завершенного перевода - это время завершения перевода в базе данных в ISO 8601 формате (YYYY-MM-DDThh:mm:ssTZD).
redirect_url * обязательный
string URL страницы для завершения транзакции.

Если параметр status имеет значение incomplete, перенаправьте покупателя на этот URL для прохождения проверки 3-D Secure.
language string Значение параметра language из запроса или en, если параметр не был передан.
credit_card object
holder string Имя владельца карты-источника.
stamp string Отпечаток номера карты-источника.
brand string Брэнд карты-источника.
last_4 string Последние четыре цифры карты-источника.
first_1 string Первая цифра карты-источника.
bin string BIN карты-источника.
issuer_country string Страна карты-источника.
issuer_name string Банк-эмитент карты-источника.
product * required
string Тип карточного продукта карты-источника.
exp_month string Месяц окончания срока действия карты-источника, представленный двумя цифрами (например, 01).
exp_year string Год срока окончания действия карты-источника, представленный четырьмя цифрами (например, 2026).
token string Токен карты-источника, который возвращается если передан в запросе параметр contract.
recipient_card object
holder string Имя владельца карты-приёмника.
stamp string Отпечаток номера карты-приёмника.
brand string Брэнд карты-приёмника.
last_4 string Последние четыре цифры карты-приёмника.
first_1 string Первая цифра карты-приёмника.
bin string BIN карты-приёмника.
issuer_country string Страна карты-приёмника.
issuer_name string Банк-эмитент карты-приёмника.
product string Тип карточного продукта карты-приёмника.
exp_month string Месяц окончания срока действия карты-приёмника, представленный двумя цифрами (например, 01).
exp_year string Год срока окончания действия карты-приёмника, представленный четырьмя цифрами (например, 2026).
token string Токен карты-приёмника, который возвращается если передан в запросе параметр contract.
verify_p2p object Результат проверки параметров запроса, которые необходимы для завершения P2P перевода.
status string Статус проверки.
message string Сообщение с результатом запроса.
amount integer Сумма перевода, которая зачислена на карту-приёмник, в минимальных денежных единицах.
currency string Валюта перевода в ISO-4217 формате, например USD.
bank_fee float Сумма комиссии банка за P2P перевод.
required_fields object
credit_card array Массив параметров, которые должны быть запрошены о карте-источнике. Возможные элементы массива: holder, verification_value, exp_month, exp_year.
recipient_card array Массив параметров, которые должны быть запрошены дополнительно о карте-приёмнике. Возможные элементы массива: holder, exp_month, exp_year.
p2p object Данные о P2P переводе, полученные из банка.
receipt_url string Сcылка на квитанцию обработанной транзакции.
ref_id string Номер операции в банке, осуществившем P2P перевод.
bank_code string Код ответа банка.
message string Сообщение с результатом запроса.
amount integer Сумма перевода, которая зачислена на карту-приёмник, в минимальных денежных единицах.
currency string Валюта перевода в ISO-4217 формате, например USD.
billing_descriptor string Текст, который будет отображен на банковской выписке карты-источника.
gateway_id integer Внутренний идентификатор банка в системе UnonaPay.
status string Статус операции в банке.
customer object Секция информации о покупателе.
ip string IP-адрес отправителя перевода.
email string email отправителя перевода.
device_id string ID устройства отправителя перевода.
sender_billing_address object
first_name string Имя отправителя перевода.
last_name string Фамилия отправителя перевода.
country string Страна отправителя перевода в ISO 3166-1 alpha-2 формате.
city string Город отправителя перевода.
state string Двухбуквенная абревиатура штата отправителя перевода, если страна отправителя перевода US или CA.
zip string Почтовый индекс отправителя перевода. Для country=US, формат zip должен иметь вид NNNNN или NNNNN-NNNN.
address string Адрес отправителя перевода.
phone string Номер телефона отправителя перевода.
recipient_billing_address object
first_name string Имя получателя перевода.
last_name string Фамилия получателя перевода.
country string Страна получателя перевода в ISO 3166-1 alpha-2 формате.
city string Город получателя перевода.
state string Двухбуквенная абревиатура штата получателя перевода, если страна получателя перевода US или CA.
zip string Почтовый индекс получателя перевода. Для country=US, формат zip должен иметь вид NNNNN или NNNNN-NNNN.
address string Адрес получателя перевода.
phone string Номер телефона получателя перевода.
additional_data object Секция, содержащая дополнительную информацию о переводе.
receipt_text array Текст, который будет добавлен в письмо клиенту. Должен быть представлен как массив строк, например ["Первая строка", "Вторая строка"].
Пример ответа требующего 3-D Secure проверки P2P перевода
{
  "transaction": {
    "uid": "1-82cc07d15d",
    "status": "incomplete",
    "amount": 100,
    "currency": "EUR",
    "description": "Test transaction ütf",
    "type": "p2p",
    "payment_method_type": "credit_card",
    "tracking_id": "tracking_id_000",
    "message": null,
    "test": false,
    "created_at": "2021-06-08T09:28:18.073Z",
    "updated_at": "2021-06-08T09:28:20.280Z",
    "paid_at": null,
    "language": "en",
    "redirect_url": "http://127.0.0.1:9887/process/1-82cc07d15d",
    "credit_card": {
      "holder": "John Doe",
      "stamp": "9723c73562cf57c89e162d7adaad7cff30d2fa9364b45063cd4ccfe980a38c53",
      "brand": "mir",
      "last_4": "0165",
      "first_1": "2",
      "bin": "220031",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": 1,
      "exp_year": 2026,
      "token_provider": null,
      "token": null
    },
    "recipient_card": {
      "holder": "Mary Doe",
      "stamp": "9723c73562cf57c89e162d7adaad7cff30d2fa9364b45063cd4ccfe980a38c53",
      "brand": "mir",
      "last_4": "0165",
      "first_1": "2",
      "bin": "220031",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": null,
      "exp_year": null,
      "token_provider": null,
      "token": null
    },
    "receipt_url": "https://online.unonapay.com/customer/transactions/1-82cc07d15d/89caa14443680985ce8ac2452fb9f82b4947926ff5bce0f15a7b4c4d0834ea5d",
    "recipient_billing_address": {
      "first_name": "Jane",
      "last_name": "Smith",
      "address": "Gilbert 104",
      "country": "BY",
      "city": "Minsk",
      "zip": null,
      "state": null,
      "phone": null
    },
    "sender_billing_address": {
      "first_name": "Mary",
      "last_name": "Smith",
      "address": "Gilbert 104",
      "country": "BY",
      "city": "Minsk",
      "zip": null,
      "state": null,
      "phone": null
    },
    "status_code": null,
    "id": "1-82cc07d15d",
    "verify_p2p": {
      "status": "successful",
      "message": "3DS",
      "amount": 100,
      "currency": "EUR",
      "bank_fee": null,
      "required_fields": null
    },
    "p2p": {
      "ref_id": null,
      "message": null,
      "amount": 100,
      "currency": "EUR",
      "billing_descriptor": null,
      "gateway_id": 1,
      "status": "incomplete",
      "auth_code": null,
      "rrn": null,
      "bank_code": null
    },
    "customer": {
      "ip": "127.0.0.1",
      "email": "jahn_test@mial.com",
      "device_id": "12312312321fff67",
      "birth_date": null
    }
  }
}
Пример ответа успешно завершенного P2P перевода
{
  "transaction": {
    "uid": "1-4f4db7559d",
    "status": "successful",
    "amount": 100,
    "currency": "EUR",
    "description": "Test transaction ütf",
    "type": "p2p",
    "payment_method_type": "credit_card",
    "tracking_id": "tracking_id_000",
    "message": "Successfully processed",
    "test": false,
    "created_at": "2021-06-08T11:54:11.725Z",
    "updated_at": "2021-06-08T11:54:39.219Z",
    "paid_at": "2021-06-08T11:54:39.203Z",
    "language": "en",
    "redirect_url": "http://127.0.0.1:9887/process/1-4f4db7559d",
    "credit_card": {
      "holder": "John Doe",
      "stamp": "9723c73562cf57c89e162d7adaad7cff30d2fa9364b45063cd4ccfe980a38c53",
      "brand": "mir",
      "last_4": "0165",
      "first_1": "2",
      "bin": "220031",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": 1,
      "exp_year": 2026,
      "token_provider": null,
      "token": null
    },
    "recipient_card": {
      "holder": "Mary Doe",
      "stamp": "9723c73562cf57c89e162d7adaad7cff30d2fa9364b45063cd4ccfe980a38c53",
      "brand": "mir",
      "last_4": "0165",
      "first_1": "2",
      "bin": "220031",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": null,
      "exp_year": null,
      "token_provider": null,
      "token": null
    },
    "receipt_url": "https://online.unonapay.com/customer/transactions/1-4f4db7559d/1b653d8b2c18f48a17b88435ca51e7b22bb69e5080a400faa40e3918ae6552d7",
    "recipient_billing_address": {
      "first_name": "Jane",
      "last_name": "Smith",
      "address": "Gilbert 104",
      "country": "BY",
      "city": "Minsk",
      "zip": null,
      "state": null,
      "phone": null
    },
    "sender_billing_address": {
      "first_name": "Mary",
      "last_name": "Smith",
      "address": "Gilbert 104",
      "country": "BY",
      "city": "Minsk",
      "zip": null,
      "state": null,
      "phone": null
    },
    "status_code": null,
    "id": "1-4f4db7559d",
    "verify_p2p": {
      "status": "successful",
      "message": "3DS",
      "amount": 100,
      "currency": "EUR",
      "bank_fee": null,
      "required_fields": null
    },
    "p2p": {
      "ref_id": "000005800042000145210608125426&000005800042000146210608125433",
      "message": "Approved",
      "amount": 100,
      "currency": "EUR",
      "billing_descriptor": null,
      "gateway_id": 1,
      "status": "successful",
      "auth_code": null,
      "rrn": null,
      "bank_code": null
    },
    "customer": {
      "ip": "127.0.0.1",
      "email": "jahn_test@mial.com",
      "device_id": "12312312321fff67",
      "birth_date": null
    }
  }
}
Пример ответа неуспешно завершенного P2P перевода
{
  "transaction": {
    "uid": "1-d8d4cd2503",
    "status": "failed",
    "amount": 100,
    "currency": "EUR",
    "description": "Test transaction ütf",
    "type": "p2p",
    "payment_method_type": "credit_card",
    "tracking_id": "tracking_id_000",
    "message": "Failed",
    "test": false,
    "created_at": "2021-06-08T11:48:15.002Z",
    "updated_at": "2021-06-08T11:48:15.165Z",
    "paid_at": null,
    "language": "en",
    "redirect_url": "http://127.0.0.1:9887/process/1-d8d4cd2503",
    "credit_card": {
      "holder": "John Doe",
      "stamp": "9723c73562cf57c89e162d7adaad7cff30d2fa9364b45063cd4ccfe980a38c53",
      "brand": "mir",
      "last_4": "0165",
      "first_1": "2",
      "bin": "220031",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": 1,
      "exp_year": 2026,
      "token_provider": null,
      "token": null
    },
    "recipient_card": {
      "holder": "Mary Doe",
      "stamp": "9723c73562cf57c89e162d7adaad7cff30d2fa9364b45063cd4ccfe980a38c53",
      "brand": "mir",
      "last_4": "0165",
      "first_1": "2",
      "bin": "220031",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": null,
      "exp_year": null,
      "token_provider": null,
      "token": null
    },
    "receipt_url": "https://online.unonapay.com/customer/transactions/1-d8d4cd2503/047da8244b961a41b5ad52e138dd8b866e6e6e773c3510ec1eb1476192b62397",
    "recipient_billing_address": {
      "first_name": "Jane",
      "last_name": "Smith",
      "address": "Gilbert 104",
      "country": "BY",
      "city": "Minsk",
      "zip": null,
      "state": null,
      "phone": null
    },
    "sender_billing_address": {
      "first_name": "Mary",
      "last_name": "Smith",
      "address": "Gilbert 104",
      "country": "BY",
      "city": "Minsk",
      "zip": null,
      "state": null,
      "phone": null
    },
    "status_code": null,
    "id": "1-d8d4cd2503",
    "verify_p2p": {
      "status": "failed",
      "message": "3DS",
      "amount": 100,
      "currency": "EUR",
      "bank_fee": null,
      "required_fields": null
    },
    "p2p": {
      "ref_id": null,
      "message": null,
      "amount": 100,
      "currency": "EUR",
      "billing_descriptor": null,
      "gateway_id": 1,
      "status": "incomplete",
      "auth_code": null,
      "rrn": null,
      "bank_code": null
    },
    "customer": {
      "ip": "127.0.0.1",
      "email": "jahn_test@mial.com",
      "device_id": "12312312321fff67",
      "birth_date": null
    }
  }
}

3-D Secure проверка P2P перевода

Процес 3-D Secure проверки карты-источника полностью аналогичен процессу проверки карты в случае операции оплата или авторизация.