# Card2Card (p2p)
В настоящий момент имеется возможность осуществлять переводы с карты на карту (card2card) с использованием привязанной карты плательщика без его непосредственного участия.
Для этих целей необходимо предварительно осуществить токенизацию карточных данных для карты списания
При это в качестве карты получателя может использоваться как токен карты, полученный в результате одного из вариантов токенизации, так и полный номер карты.
В рамках данного API вызова к стандартному вызову добавляется объект source
, где в качестве значения card
передается id
ранее совершенной успешной токенизации полных карточных данных или номера карты и объект destination
, где в качестве значения knownCardNumber
паредается номер карты или в качестве объекта card
передается id
ранее совершенной успешной токенизации полных карточных данных или номера карты, а также значение "interactive": false
, отвечающее за то, чтобы операция проходила без 3d-secure.
ВАЖНО! В случае передачи "interactive": true
запрос будет завершен с ошибкой
Транзакция осуществляется в асинхронном режиме. В результате запроса вам синхронно придет id
выплаты, а затем асинхронно придет callback-уведомление.
Параметр | Обязателен | Параметр | Обязателен | |
---|---|---|---|---|
payment | Да | destination | Да | |
payment.action | Да | destination.card / knownCardNumber | Да | |
payment.orderId | Да | interactive | Да | |
payment.price | Да | |||
source | Да | |||
source.card | Да |
Синхронный ответ и асинхронное callback-уведомление могут содержать более широкий набор параметров по сравнению с примером.
Запрос с destination.card
POST https://secure.mandarinpay.com/api/transactions
{
"payment": {
"action": "card2card",
"orderId": "your_unique_order_id",
"price": "1000.00"
},
"interactive": false,
"source": {
"card": "63eed817-c56e-4aac-ad38-15113ed13744"
},
"destination": {
"card": "89dfbcf9-5228-46e2-816d-c93e65bee1ac"
},
"customerInfo": {
"email": "user@example.com",
"phone": "+79001234567"
},
"urls": {
"callback": "http://...",
"return": "http://..."
}
}
Запрос с destination.knownCardNumber
POST https://secure.mandarinpay.com/api/transactions
{
"payment": {
"action": "card2card",
"orderId": "your_unique_order_id",
"price": "1000.00"
},
"interactive": false,
"source": {
"card": "63eed817-c56e-4aac-ad38-15113ed13744"
},
"destination": {
"knownCardNumber": "2202202244861047"
},
"customerInfo": {
"email": "user@example.com",
"phone": "+79001234567"
},
"urls": {
"callback": "http://...",
"return": "http://..."
}
}
Ответ в случае успешного создания транзакции (200 ОК
)
{
"id": "43913ddc000c4d3990fddbd3980c1725"
}
Ответ в случае, если транзакция не создана (400 Bad request
)
{
"error": "Invalid request"
}
Ответ в случае попытки создания выплаты с уже существующим значением orderId
(400 Bad Request
)
{
"error": "Duplicate order id 5f2fdcf6-0b78-4dd7-be9f-212c7c058001 found for incomplete payout transaction",
"errorCode": -2
}