# 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
}