P2P API
Info
PCI DSS certificate is required to use this API and process non-encrypted card data.
Check the capability of the P2P transfer
The requests described below are used:
- to check the capability of the P2P transfer between the source card and the receiver card;
- to get information on the commission of the P2P transfer and additional card data required to make a transfer.
Send one of the POST requests depending on your integration.
Request authorized by the secret key
Send a POST request with Basic authorization by Shop ID and Shop Secret key to https://gateway.unonapay.com/p2p-restrictions
. Use the parameters described here.
Request authorized by the public key in synchronous mode
In synchronous mode, you receive a response to your request with all parameters after the system processes your request.
Send a POST request with the Bearer
authorization by the public key and the X-Api-Version: 2
header to https://checkout.unonapay.com/ctp/api/verify-p2p
. Use the parameters described here.
Request authorized by the public key in asynchronous mode
In asynchronous mode, you send a request with the same parameters as for a synchronous request, but you receive a response with the new
task status and the job_id
that the system assigned to your request. Further on, you should check the relevant task status.
Send an HTTP POST request with the Bearer
authorization by the Public key and the X-Api-Version: 2
header to https://checkout.unonapay.com/ctp/api/async/verify-p2p
. Use the parameters described here.
Response example with the task status new
and job_id
{
"status": "new",
"job_id": "62c5b51a1d69bde6e5afaa70"
}
To get a task status, send a GET request with job_id
to https://checkout.unonapay.com/ctp/api/async/jobs/{job_id}
.
Response example for the task with new
status
{
"status": "new",
"job_id": "62c5b51a1d69bde6e5afaa70"
}
Response example for the task with failed
status
{
"job_id": "62c5b51a1d69bde6e5afaa70",
"status": "failed",
"response": {
"status": "error",
"errors": [
"error"
],
"message": "Request processing error. Please try again later",
"finished": false
}
}
Response example for the task with done
status
{
"status": "done",
"job_id": "62c5b51a1d69bde6e5afaa70",
"response": {
//Standard response parameters
}
}
Request parameters
Parameter | Type | Description |
---|---|---|
request | object | |
amount * required |
integer | A P2P transfer amount to be credited to the receiver card. Submit in the minimal currency units. For example, 32.45 USD should be sent as 3245 . |
currency * required |
string | A P2P transfer currency in ISO-4217 format, for example USD . |
credit_card | object | A section of the source card details. Use client side encryption, if needed. |
number * required |
string | A source card number. |
exp_month * conditionally required |
string (2) | The expiration month of the sender's card. Must be one or two digits (for example, 01). |
exp_year * conditionally required |
string (4) | The expiration year of the sender's card. Must be 4 digits (for example, 2026). |
holder * conditionally required |
string (35) | The cardholder name as it appears on the sender's card. The parameter is optional in the UnonaPay system but can be required by the acquirer. |
token * conditionally required |
string | A source card token or an encrypted payment token in the required format Yandex Pay. The token can be sent instead of the number , exp_year and exp_month parameters. |
recipient_card | object | A section of the recipient card details. Use client side encryption, if needed. |
number * required |
string | A recipient card number or a primary account number (PAN or DPAN) of the decrypted token provided by Yandex Pay. |
exp_month * conditionally required |
string (2) | The expiration month of the recipient's card. Must be one or two digits (for example, 01). |
exp_year * conditionally required |
string (4) | The expiration year of the recipient's card. Must be 4 digits (for example, 2026). |
holder * conditionally required |
string (35) | The cardholder name as it appears on the recipient's card. The parameter is optional in the UnonaPay system but can be required by the acquirer. |
token * conditionally required |
string | A recipient card token instead of the recipient card number. |
test | boolean | Set to true for testing the capability of the P2P transfer between test cards. Otherwise, false . |
additional_data | object | A section of additional data. |
p2p | object | A section of additional transfer data. |
type * conditionally required |
string (3) | A transfer operation type in the alphanumeric format which is issued by the processing center. Contact the Tech Support Team to check if you should submit this parameter. |
Request example
{
"request": {
"amount": 100,
"currency": "USD",
"credit_card": {
"number": "4012001037141112"
},
"recipient_card": {
"number": "4200000000000000"
},
"test": true
}
}
Response parameters
If the transfer is possible, the response contains the following parameters:
Parameter | Type | Description |
---|---|---|
status | string | successful |
message | string | A message from the bank system. |
commission | object | A section of the commission details. |
minimum | float | A minimal commission amount charged from the source card. |
percent | float | A percentage of the commission charged from the source card. |
bank_fee | float | An absolute commission value calculated by the processing center. |
currency | string | A currency of the commission in the ISO-4217 format, for example USD . |
test | boolean | true for testing the capability of the P2P transfer between test cards. Otherwise, false . |
Example of the response
{
"status": "successful",
"message": "p2p is allowed",
"commission": {
"minimum": 0.7,
"percent": 1.5,
"bank_fee": 7.35,
"currency": "USD"
}
}
If the transfer is not possible, the response contains the following parameters:
Parameter | Type | Description |
---|---|---|
status | string | failed |
message | string | A message from the bank system. |
required_fields | object | A section of the parameters required for the transfer. If this section is returned, the commission is not calculated. |
credit_card | array | An array of the parameters that should be requested about the source card. Possible array elements: holder , verification_value , exp_month , exp_year . |
recipient_card | array | An array of the parameters that should be requested about the recipient card. Possible array elements: holder , exp_month , exp_year . |
Example of the response
{
"status": "failed",
"message": "Missed credit card fields: holder.Missed recipient card fields: holder.",
"required_fields": {
"credit_card": [
"holder"
],
"recipient_card": [
"holder"
]
}
}
In case of an error the response contains the following parameters:
Parameter | Type | Description |
---|---|---|
error_code | string | An error code. |
message | string | An error text description. |
errors | object | A section of the parameters with errors. |
Example of the response
{
"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"
]
}
}
}
Make the P2P transfer
To make a P2P transfer via the UnonaPay API, send one of the POST requests described below depending on your integration.
Requests authorized by the secret key
Send a POST request with Basic authorization by Shop ID and Shop Secret key to https://gateway.unonapay.com/transactions/p2ps
. Use the parameters described here.
Requests authorized by the public key in synchronous mode
In synchronous mode, you send a request and receive a response with the parameters only after the system processes the request.
Send a POST request with the Bearer
authorization by the public key and the X-Api-Version: 2
header to https://checkout.unonapay.com/ctp/api/p2p
. Use the parameters described here.
Requests authorized by the public key in asynchronous mode
In asynchronous mode, you send a request with the same parameters as for a synchronous request, but you receive a response with the new
task status and the job_id
that the system assigned to your request. Further on, you should check the relevant task status.
Send a POST request with the Bearer
authorization by the public key and the X-Api-Version: 2
header to https://checkout.unonapay.com/ctp/api/async/p2p
. Use the parameters described here.
Example of the response with task status new
and job_id
{
"status": "new",
"job_id": "62c5b51a1d69bde6e5afaa70"
}
To get the task status, send a GET request specifying the received job_id
to https://checkout.unonapay.com/ctp/api/async/jobs/{job_id}
.
The response schemes for the new
, failed
, done
task statuses are the same as described for requests checking the capability of the P2P transfer.
Request parameters
Parameter | Type | Description |
---|---|---|
request | object | |
amount * required |
integer | A transfer amount credited to the recipient card. Submit it in the minimal currency units. For example, 32.45 USD should be sent as 3245 . |
currency * required |
string | A transfer currency in ISO-4217 format, for example USD . |
description * required |
string | A transfer description. |
expired_at | string | Time in the ISO 8601 format (YYYY-MM-DDThh:mm:ssTZD ) until which the transfer should be confirmed. |
tracking_id | string | A transfer id in your system. Use a unique value to get up-to-date information, when you send a status query request about the transaction status. Otherwise, you will receive the first transaction found by the tracking_id . |
duplicate_check | boolean | The parameter controls the process of checking the incoming request for uniqueness. If during the 30 seconds a payment requests with the same amount and number or token are received, the request will be rejected. Set to true to enable the check (set by default). Otherwise, false . |
language | string | A language of your checkout page. If the option of transaction notification emails to customers are enabled, UnonaPay dispatches those emails in the language locale. English (en ) is set by default. Possible values of language parameter. |
notification_url | string | A URL where transaction notifications will be posted to. The notification request format matches the transaction response format. |
return_url | string | A URL on your side where UnonaPay will redirect the customer after the 3-D Secure verification. |
test | boolean | Set to true for making the P2P transfer between test cards. |
credit_card | object | A section of the source card details. Use client side encryption, if needed. |
number * required |
string | A source card number. |
verification_value * required |
string | 3- or 4-digit security code (called CVC2, CVV2 or CID depending on the credit card brand). It can be sent along with token parameter and in this case, UnonaPay will submit to acquiring bank card details with the given CVC2/CVV2/CID. |
exp_month * conditionally required |
string (2) | The expiration month of the sender's card. Must be one or two digits (for example, 01). |
exp_year * conditionally required |
string (4) | The expiration year of the sender's card. Must be 4 digits (for example, 2026). |
holder * conditionally required |
string (35) | The cardholder name as it appears on the sender's card. The parameter is optional in the UnonaPay system but can be required by the acquirer. |
token * conditionally required |
string | A source card token received in the response to the first transfer, or an encrypted payment token in the required format Yandex Pay. The token can be sent instead of the number , exp_year and exp_month parameters. |
recipient_card | object | A section of the recipient card details. Use client side encryption, if needed. |
number * required |
string | A recipient card number or a primary account number (PAN or DPAN) of the decrypted token provided by Yandex Pay. |
exp_month * conditionally required |
string (2) | The expiration month of the recipient's card. Must be one or two digits (for example, 01). |
exp_year * conditionally required |
string (4) | The expiration year of the recipient's card. Must be 4 digits (for example, 2026). |
holder * conditionally required |
string (35) | The cardholder name as it appears on the recipient's card. The parameter is optional in the UnonaPay system but can be required by the acquirer. |
token * conditionally required |
string | A recipient card token that you got in the response to the first transfer. It can be used instead of the number , holder , exp_month and exp_year specified above. |
additional_data | object | A section of additional data. |
receipt_text | array | Text to be added to the email to the customer. Submit it as an array of strings, for example ["First line", "Second line"] . |
contract | array | An array of elements:oneclick - UnonaPay returns a card token to use it in the oneclick payment scheme. Under this scheme, UnonaPay opens a payment page with the pre-filled card data. The customer should enter the CVC/CVV code only and pass the 3-D Secure verification to complete a payment. |
p2p | object | A section of additional transfer data. |
type * conditionally required |
string(3) | A transfer operation type in the alphanumeric format, issued by the processing center. Contact the Tech Support Team to check if you should submit this parameter. |
customer | object | A section of the customer information. |
ip | string | An IP address of the sender of the transfer. |
string | An email of the sender of the transfer. | |
device_id | string | A device ID of the sender of the transfer. |
sender_billing_address | object | |
first_name | string | The first name of the sender of the transfer. |
last_name | string | The last name of the sender of the transfer. |
country | string | A billing country of the sender of the transfer in the ISO 3166-1 alpha-2 format. |
city | string | A billing city of the sender of the transfer. |
state | string | A two-letter billing state of the sender of the transfer only if the billing address country is US or CA . |
zip | string | A billing zip or a postal code of the sender of the transfer. If country=US , zip format must be NNNNN or NNNNN-NNNN. |
address | string | A billing address of the sender of the transfer. |
phone | string | A phone number of the sender of the transfer. |
recipient_billing_address | object | |
first_name | string | The first name of the recipient of the transfer. |
last_name | string | The last name of the recipient of the transfer. |
country | string | A billing country of the recipient of the transfer in the ISO 3166-1 alpha-2 format. |
city | string | A billing city of the recipient of the transfer. |
state | string | A two-letter billing state of the recipient of the transfer only if the billing address country is US or CA . |
zip | string | A billing zip or a postal code of the recipient of the transfer. If country=US , zip format must be NNNNN or NNNNN-NNNN. |
address | string | A billing address of the recipient of the transfer. |
phone | string | A phone number of the recipient of the transfer. |
billing_address | object | The section billing_address has been left to maintain compatibility with the previous API version. If a new integration is developed, use the sections sender_billing_address and recipient_billing_address . |
first_name | string | The first name of the sender of the transfer. |
last_name | string | The last name of the sender of the transfer. |
country | string | A billing country of the sender of the transfer in the ISO 3166-1 alpha-2 format. |
city | string | A billing city of the sender of the transfer. |
state | string | A two-letter billing state of the sender of the transfer only if the billing address country is US or CA . |
zip | string | A billing zip or a postal code of the sender of the transfer. If country=US , zip format must be NNNNN or NNNNN-NNNN. |
address | string | A billing address of the sender of the transfer. |
phone | string | A phone number of the sender of the transfer. |
Request example
{
"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": "2026",
"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"
}
}
}
Response parameters
Response parameters replicate request parameters, except for the additional ones:
Parameter | Type | Description |
---|---|---|
transaction | object | |
uid | string | A UID of the processed transaction. |
status | string | A status of the processed transfer. |
amount | integer | The transfer amount credited to the receiver card, in the minimal currency units, for example 3245 stands for 32.45 USD. |
currency | string | The transfer currency of the transfer in the ISO-4217 format, for example USD . |
description | string | The transfer description. |
type | string | p2p |
payment_method_type | string | credit_card |
tracking_id | string | The tracking_id parameter value from the request. |
message | string | The request result message. |
test | boolean | true if the transaction is a test operation. Otherwise, false . |
created_at | string | Transfer creation time in the ISO 8601 format (YYYY-MM-DDThh:mm:ssTZD ). |
updated_at | string | Time of the last update of the transfer data in the database in the ISO 8601 format (YYYY-MM-DDThh:mm:ssTZD ). |
paid_at | string | In case of a successfully completed transfer, this is the completion time of the transfer in the database in the ISO 8601 format (YYYY-MM-DDThh:mm:ssTZD ). |
redirect_url | string | A URL of the page to finalize the transaction. If the status parameter is set to incomplete , redirect your customer to this URL. It runs the 3-D Secure verification of the cardholder. |
language | string | The value of the language parameter from the request or en , if the parameter is not transferred in the request. |
credit_card | object | |
holder | string | The source card holder name. |
stamp | string | The source card stamp. |
brand | string | The source card brand. |
last_4 | string | The last 4 digits of the source card. |
first_1 | string | The first digit of the source card. |
bin | string | The source card BIN. |
issuer_country | string | The source card country. |
issuer_name | string | The issuing bank of the source card. |
product | string | The card product type of the source card. |
exp_month | string | The source card expiration month expressed with two digits (for example, 01). |
exp_year | string | The source card expiration year expressed with four digits (for example, 2027). |
token | string | The source card token, which is returned if the contract parameter is transferred in the request. |
recipient_card | object | |
holder | string | The recipient card holder name. |
stamp | string | The recipient card stamp. |
brand | string | The recipient card brand. |
last_4 | string | The last 4 digits of the recipient card. |
first_1 | string | The first digit of the recipient card. |
bin | string | The recipient card BIN. |
issuer_country | string | The recipient card country. |
issuer_name | string | The issuing bank of the recipient card. |
product | string | The card product type of the recipient card. |
exp_month | string | The recipient card expiration month expressed with two digits (for example, 01). |
exp_year | string | The recipient card expiration year expressed with four digits (for example, 2027). |
token | string | The recipient card token, which is returned if the contract parameter is transferred in the request. |
verify_p2p | object | The result of checking of the request parameters, that are required to complete the P2P transfer. |
status | string | The status of the request parameter check. |
message | string | The request result message. |
amount | integer | The amount of the transfer, which is credited to the receiver card, in the minimal currency units. |
currency | string | The currency of the transfer in ISO-4217 format, for example USD . |
bank_fee | float | The bank fee amount for P2P transfer. |
required_fields | object | |
credit_card | array | The parameters array that should be requested about source card. Possible array elements: holder , verification_value , exp_month , exp_year . |
recipient_card | array | The parameters array that should be additionally requested about source card. Possible array elements: holder , exp_month , exp_year . |
p2p | object | P2P transfer data received from the bank. |
receipt_url | string | The link to the receipt of the processed transaction |
ref_id | string | The number of the operation in the bank that made the P2P transfer |
bank_code | string | The bank response code. |
message | string | A message with request result. |
amount | integer | The amount of the transfer, which is credited to the receiver card, in the minimal currency units. |
currency | string | The currency of the transfer in ISO-4217 format, for example USD . |
billing_descriptor | string | The text to be displayed on the bank statement of the source card. |
gateway_id | integer | The internal bank identification number in the UnonaPay system. |
status | string | The status of the bank transaction. |
customer | object | A section of the customer information. |
ip | string | The IP address of the sender of the transfer. |
string | The email of the sender of the transfer. | |
device_id | string | The device ID of the sender of the transfer. |
sender_billing_address | object | |
first_name | string | The first name of the sender of the transfer. |
last_name | string | The last name of the sender of the transfer. |
country | string | The billing country of the sender of the transfer in the ISO 3166-1 alpha-2 format. |
city | string | The billing city of the sender of the transfer. |
state | string | The two-letter billing state of the sender of the transfer only if the billing address country is US or CA . |
zip | string | The billing ZIP or postal code of the sender of the transfer. If country=US , zip format must be NNNNN or NNNNN-NNNN. |
address | string | The billing address of the sender of the transfer. |
phone | string | The phone number of the sender of the transfer. |
recipient_billing_address | object | |
first_name | string | The first name of the recipient of the transfer. |
last_name | string | The last name of the recipient of the transfer. |
country | string | The billing country of the recipient of the transfer in ISO 3166-1 alpha-2 format. |
city | string | The billing city of the recipient of the transfer. |
state | string | Two-letter billing state of the recipient of the transfer only if the billing address country is US or CA . |
zip | string | The billing ZIP or postal code of the recipient of the transfer. If country=US , zip format must be NNNNN or NNNNN-NNNN. |
address | string | The billing address of the recipient of the transfer. |
phone | string | The phone number of the recipient of the transfer. |
additional_data | object | The section with additional transfer data. |
receipt_text | array | The text added to the email sent to the customer, if it was submitted. Represented as an array of strings, for example ["First line", "Second line"] . |
Example of the response in case P2P transfer requires 3-D Secure verification
{
"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": 2026,
"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://online.unonapay.com/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
}
}
}
Example of the response in case P2P transfer is successfully completed
{
"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": 2026,
"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://online.unonapay.com/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
}
}
}
Example of the response in case P2P transfer is not successfully completed
{
"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": 2026,
"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://online.unonapay.com/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 verification
The source card 3-D Secure verification process is identical with the card verification process for the authorization or payment operations.