P2P API
Info
Чтобы использовать данное API и обрабатывать нешифрованные данные карты, требуется наличие PCI DSS сертификата.
Проверка возможности P2P перевода
Запросы, описанные ниже, используются:
- для проверки возможности P2P перевода между картой-источником и картой-приёмником;
- для получения информации о комиссии и дополнительно запрашиваемых данных о карте-источнике или карте-приёмнике.
Используйте один из HTTP POST запросов в зависимости от способа вашей интеграции.
Запрос с авторизацией по секретному ключу
Отправьте POST запрос с авторизацией типа Basic с ID и Secret key магазина как имя пользователя и пароль соответственно на https://gateway.overpay.io/p2p-restrictions. Укажите параметры, описанные здесь.
Запрос с авторизацией по публичному ключу в синхронном режиме
При работе в синхронном режиме, вы получите ответ на ваш запрос со всеми параметрами после того, как система обработает запрос.
Отправьте POST запрос с Bearer авторизацией по публичному ключу и обязательной передачей заголовка X-Api-Version в значении 2 на https://checkout.overpay.io/ctp/api/verify-p2p. Укажите параметры, описанные здесь.
Запрос с авторизацией по публичному ключу в асинхронном режиме
При работе в асинхронном режиме на ваш запрос вы получите в ответе статус задачи new и job_id, который система назначила вашему запросу. Далее вам необходимо узнать статус обработки запроса.
Отправьте HTTP POST запрос с Bearer авторизацией по публичному ключу и обязательной передачей заголовка X-Api-Version в значении 2 на https://checkout.overpay.io/ctp/api/async/verify-p2p. Укажите параметры, описанные здесь.
Пример ответа со статусом задачи new и job_id
{
  "status": "new",
  "job_id": "62c5b51a1d69bde6e5afaa70"
}
Для получения статуса задачи по обработке запроса отправьте GET запрос с полученным значением job_id на https://checkout.overpay.io/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) | Год окончания срока действия карты-источника, представленный четырьмя цифрами (например, 2027). | 
| holder * условно обязательный | string (35) | Имя владельца карты-источника. Максимальная длина: 35 символов. Параметр опционален в системе Overpay, но может требоваться банком-эквайером. | 
| token * условно обязательный | string | Токен карты-источника или зашифрованный токен в требуемом формате. Токен может использоваться вместо number,exp_monthиexp_yearкарты-источника. | 
| recipient_card | object | Можно использовать шифрование на стороне клиента | 
| number * обязательный | string | Номер карты-приёмника или DPAN/ PAN -номер расшифрованного токена. | 
| exp_month * условно обязательный | string (2) | Месяц окончания срока действия карты-приёмника, представленный одной или двумя цифрами (например, 01). | 
| exp_year * условно обязательный | string (4) | Год окончания срока действия карты-приёмника, представленный четырьмя цифрами (например, 2027). | 
| holder * условно обязательный | string (35) | Имя владельца карты-приёмника. Максимальная длина: 35 символов. Параметр опционален в системе Overpay, но может требоваться банком-эквайером. | 
| 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 перевода посредством Overpay API необходимо отправить один из HTTP POST запросов в зависимости от вашего способа интеграции.
Запрос с авторизацией по секретному ключу
Отправьте HTTP POST запрос с авторизацией типа Basic с ID и Secret key магазина как имя пользователя и пароль соответственно на https://gateway.overpay.io/transactions/p2ps. Укажите параметры, описанные здесь.
Запрос с авторизацией по публичному ключу в синхронном режиме
При работе в синхронном режиме, вы получите ответ на ваш запрос со всеми параметрами после того, как система обработает запрос.
Отправьте HTTP POST запрос с Bearer авторизацией по публичному ключу и обязательной передачей заголовка X-Api-Version в значении 2 на https://checkout.overpay.io/ctp/api/p2p. Укажите параметры, описанные здесь.
Запрос с авторизацией по публичному ключу в асинхронном режиме
При работе в асинхронном режиме на ваш запрос вы получите в ответе статус задачи new и job_id, который система назначила вашему запросу. Далее вам необходимо узнать статус обработки запроса.
Отправьте HTTP POST запрос с Bearer авторизацией по публичному ключу и обязательной передачей заголовка X-Api-Version в значении 2 на https://checkout.overpay.io/ctp/api/async/p2p. Укажите параметры, описанные здесь.
Пример ответа со статусом задачи new и job_id
{
  "status": "new",
  "job_id": "62c5b51a1d69bde6e5afaa70"
}
Для получения статуса задачи по обработке запроса отправьте GET запрос с полученным значением job_id на https://checkout.overpay.io/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 перевода в вашей системе. Используйте уникальное значение для того, чтобы при запросе статуса транзакции получить актуальную информацию. В противном случае вы получите массив данных по 10 последним транзакциям, найденным по указанному tracking_id. | 
| duplicate_check | boolean | trueилиfalse. Параметр управляет процессом проверки входящего запроса на уникальность. Если в течение 30 секунд придет запрос на оплату с одинаковымиamountиnumberилиtoken, то запрос будет отклонен. По умолчанию, этот параметр имеет значениеtrue. | 
| language | string | Язык вашей страницы оформления заказа. Если параметр установлен и email уведомление о транзакции включено, то Overpay отправит email, язык текста которого будет language. По умолчанию -en. Доступные значения параметраlanguage. | 
| notification_url | string | URL, на который будут приходить уведомления. Формат запроса уведомления аналогичен формату ответа транзакции. | 
| return_url | string | URL, на который Overpay будет перенаправлять отправителя перевода после возврата с 3-D Secure проверки для завершения P2P перевода. | 
| test | boolean | true- выполнить проверку возможности P2P перевода между тестовыми картами. | 
| credit_card | object | Секция параметров карты-источника. Используйте шифрование на стороне клиента, если требуется. | 
| number * обязательный | string | Номер карты-источника. | 
| verification_value * обязательный | string | 3-х или 4-х цифровой код безопасности (CVC2, CVV2 или CID, в зависимости от бренда карты). Может быть отправлен вместе с параметром tokenи Overpay доставит банку-эквайеру данные карты с CVC2/CVV2/CID. | 
| exp_month * условно обязательный | string (2) | Месяц окончания срока действия карты-источника, представленный одной или двумя цифрами (например, 01). | 
| exp_year * условно обязательный | string (4) | Год окончания срока действия карты-источника, представленный четырьмя цифрами (например, 2027). | 
| holder * условно обязательный | string (35) | Имя владельца карты-источника. Максимальная длина: 35 символов. Параметр опционален в системе Overpay, но может требоваться банком-эквайером. | 
| token * условно обязательный | string | Токен карты-источника, который вы получили в ответе первого перевода, или зашифрованный токен в требуемом формате. Токен может использоваться вместо number,exp_monthиexp_yearкарты-источника. | 
| recipient_card | object | Секция параметров карты-приемника. Используйте шифрование на стороне клиента, если требуется. | 
| number * обязательный | string | Номер карты-приёмника или DPAN/ PAN -номер расшифрованного токена. | 
| exp_month * условно обязательный | string (2) | Месяц окончания срока действия карты-приёмника, представленный одной или двумя цифрами (например, 01). | 
| exp_year * условно обязательный | string (4) | Год окончания срока действия карты-приёмника, представленный четырьмя цифрами (например, 2027). | 
| holder * условно обязательный | string (35) | Имя владельца карты-приёмника. Максимальная длина: 35 символов. Параметр опционален в системе Overpay, но может требоваться банком-эквайером. | 
| token * условно обязательный | string | Токен карты-приёмника, который вы получили в ответе первого перевода. Он может быть передан вместо выше указанных параметров number,holder,exp_monthиexp_year. | 
| additional_data | object | Секция, содержащая дополнительную информацию. | 
| referer | string | URL ресурса, с которого осуществляется запрос на проведение транзакции. Уточните у службы технической поддержки, является ли этот параметр обязательным. | 
| receipt_text | array | Текст, который будет добавлен в письмо клиенту. Должен быть представлен как массив строк, например ["Первая строка", "Вторая строка"]. | 
| contract | array | Элементами массива могут быть параметры: oneclick- Overpay вернет токен карты для осуществления последующих платежей по схеме oneclick, когда на странице перевода будут уже частично заполнены реквизиты карты, а пользователю для завершения оплаты достаточно ввести проверочный код карты CVC/CVV и пройти авторизацию по протоколу 3-D Secure. | 
| p2p | object | Секция, содержащая дополнительную информацию о переводе. | 
| type * условно обязательный | string(3) | Код типа операции перевода в буквенно-цифровом формате, выданный процессинговым центром. Уточните у Службы технической поддержки, необходимо ли передавать этот параметр. | 
| customer | object | Секция информации о покупателе. | 
| ip | string | IP-адрес отправителя перевода. | 
| string | Адрес электронной почты отправителя перевода. | |
| device_id | string | ID устройства отправителя перевода. | 
| external_id | string (255) | Идентификатор отправителя перевода в системе торговца. | 
| 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": "4012001037141112",
      "verification_value": "123",
      "exp_month": "01",
      "exp_year": "2027",
      "holder": "John Doe"
    },
    "recipient_card": {
      "number": "4200000000000000",
      "holder": "Mary Doe"
    },
    "customer": {
      "ip": "127.0.0.1",
      "device_id": "12312312321fff67",
      "email": "jahn_test@mial.com"
    },
    "sender_billing_address": {
      "first_name": "John",
      "last_name": "Doe",
      "country": "PL",
      "city": "Warsaw",
      "address": "Gilbert 104"
    },
    "recipient_billing_address": {
      "first_name": "Mary",
      "last_name": "Doe",
      "country": "PL",
      "city": "Warsaw",
      "address": "Gilbert 104"
    },
    "additional_data": {
      "referer": "https://example.com/server/cs_post/post.php?order_id=5304380&security=949247¤cy=USD"
    }
  }
}
Параметры ответа
Параметры ответа копируют параметры запроса, но содержат и дополнительные параметры:
| Параметр | Тип | Описание | 
|---|---|---|
| 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 | Год срока окончания действия карты-источника, представленный четырьмя цифрами (например, 2027). | 
| 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 | Год срока окончания действия карты-приёмника, представленный четырьмя цифрами (например, 2027). | 
| 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 | Внутренний идентификатор банка в системе Overpay. | 
| status | string | Статус операции в банке. | 
| customer | object | Секция информации о покупателе. | 
| ip | string | IP-адрес отправителя перевода. | 
| 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 | Секция, содержащая дополнительную информацию о переводе. | 
| referer | string | URL ресурса, с которого осуществляется запрос на проведение транзакции. | 
| 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": "visa",
      "last_4": "1112",
      "first_1": "4",
      "bin": "401200",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": 1,
      "exp_year": 2027,
      "token_provider": null,
      "token": null
    },
    "recipient_card": {
      "holder": "Mary Doe",
      "stamp": "9723c73562cf57c89e162d7adaad7cff30d2fa9364b45063cd4ccfe980a38c53",
      "brand": "visa",
      "last_4": "0000",
      "first_1": "4",
      "bin": "420000",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": null,
      "exp_year": null,
      "token_provider": null,
      "token": null
    },
    "receipt_url": "https://backoffice.overpay.io/customer/transactions/1-82cc07d15d/89caa14443680985ce8ac2452fb9f82b4947926ff5bce0f15a7b4c4d0834ea5d",
    "recipient_billing_address": {
      "first_name": "Mary",
      "last_name": "Doe",
      "address": "Gilbert 104",
      "country": "PL",
      "city": "Warsaw",
      "zip": null,
      "state": null,
      "phone": null
    },
    "sender_billing_address": {
      "first_name": "John",
      "last_name": "Doe",
      "address": "Gilbert 104",
      "country": "PL",
      "city": "Warsaw",
      "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
    },
    "additional_data": {
      "referer": "https://example.com/server/cs_post/post.php?order_id=5304380&security=949247¤cy=USD"
    }
  }
}
Пример ответа успешно завершенного 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": "visa",
      "last_4": "1112",
      "first_1": "4",
      "bin": "401200",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": 1,
      "exp_year": 2027,
      "token_provider": null,
      "token": null
    },
    "recipient_card": {
      "holder": "Mary Doe",
      "stamp": "9723c73562cf57c89e162d7adaad7cff30d2fa9364b45063cd4ccfe980a38c53",
      "brand": "visa",
      "last_4": "0000",
      "first_1": "4",
      "bin": "420000",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": null,
      "exp_year": null,
      "token_provider": null,
      "token": null
    },
    "receipt_url": "https://backoffice.overpay.io/customer/transactions/1-4f4db7559d/1b653d8b2c18f48a17b88435ca51e7b22bb69e5080a400faa40e3918ae6552d7",
    "recipient_billing_address": {
      "first_name": "Mary",
      "last_name": "Doe",
      "address": "Gilbert 104",
      "country": "PL",
      "city": "Warsaw",
      "zip": null,
      "state": null,
      "phone": null
    },
    "sender_billing_address": {
      "first_name": "John",
      "last_name": "Doe",
      "address": "Gilbert 104",
      "country": "PL",
      "city": "Warsaw",
      "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": "visa",
      "last_4": "1112",
      "first_1": "4",
      "bin": "401200",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": 1,
      "exp_year": 2027,
      "token_provider": null,
      "token": null
    },
    "recipient_card": {
      "holder": "Mary Doe",
      "stamp": "9723c73562cf57c89e162d7adaad7cff30d2fa9364b45063cd4ccfe980a38c53",
      "brand": "visa",
      "last_4": "0000",
      "first_1": "4",
      "bin": "420000",
      "issuer_country": null,
      "issuer_name": null,
      "product": null,
      "exp_month": null,
      "exp_year": null,
      "token_provider": null,
      "token": null
    },
    "receipt_url": "https://backoffice.overpay.io/customer/transactions/1-d8d4cd2503/047da8244b961a41b5ad52e138dd8b866e6e6e773c3510ec1eb1476192b62397",
    "recipient_billing_address": {
      "first_name": "Mary",
      "last_name": "Doe",
      "address": "Gilbert 104",
      "country": "PL",
      "city": "Warsaw",
      "zip": null,
      "state": null,
      "phone": null
    },
    "sender_billing_address": {
      "first_name": "John",
      "last_name": "Doe",
      "address": "Gilbert 104",
      "country": "PL",
      "city": "Warsaw",
      "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 проверки карты-источника полностью аналогичен процессу проверки карты в случае операции оплата или авторизация.