Skip to content

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.pay-cross.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://panel.pay-cross.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://panel.pay-cross.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://panel.pay-cross.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

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.
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, 2027).
holder
conditionally required
string (35)
The cardholder name as it appears on the sender's card. The parameter is optional in the PayCross 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 Apple Pay, Google Pay,.
The token can be sent instead of the number, exp_year and exp_month parameters.
object
number
required
string
A recipient card number or a primary account number (PAN or DPAN) of the decrypted token provided by Apple Pay, Google 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, 2027).
holder
conditionally required
string (35)
The cardholder name as it appears on the recipient's card. The parameter is optional in the PayCross 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.
object
A section of additional data.
object
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:

status
string
successful
message
string
A message from the bank system.
object
A section of the commission details.
minimum
float
A minimal commission amount charged from the source card in base currency units.
percent
float
A percentage of the commission charged from the source card.
bank_fee
float
An absolute commission value calculated by the processing center in base currency units.
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:

status
string
failed
message
string
A message from the bank system.
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:

error_code
string
An error code.
message
string
An error text description.
object
A section of the parameters with errors.
{parameter key}:[{error description}]
Error description.
Example of the response: http 422
{
  "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"
      ]
    }
  }
}
Example of the response: http 403
{
  "error_code": "absent_allowed_gateways",
  "message": "No available gateways. Allowed gateways are missing. Contact the payment service provider for details."
}

Make the P2P transfer

To make a P2P transfer via the PayCross 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.pay-cross.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://panel.pay-cross.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://panel.pay-cross.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://panel.pay-cross.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

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 get an array of up to 10 recent transactions with the matching 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, PayCross 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 PayCross will redirect the customer after the 3-D Secure verification.
test
boolean
Set to true for making the P2P transfer between test cards.
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, PayCross 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, 2027).
holder
conditionally required
string (35)
The cardholder name as it appears on the sender's card. The parameter is optional in the PayCross 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 Apple Pay, Google Pay,.
The token can be sent instead of the number, exp_year and exp_month parameters.
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 Apple Pay, Google 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, 2027).
holder
conditionally required
string (35)
The cardholder name as it appears on the recipient's card. The parameter is optional in the PayCross 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.
object
A section of additional data.
referer
string
URL of the resource from which the transaction request is made. Contact the Tech Support Team to check if this parameter is required.
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 - PayCross returns a card token to use it in the oneclick payment scheme. Under this scheme, PayCross 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.
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.
object
A section of the customer information.
ip
string
An IP address of the sender of the transfer.
email
string
An email of the sender of the transfer.
device_id
string
A device ID of the sender of the transfer.
external_id
string (255)
The identifier of the sender of the transfer in the merchant's system.
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.
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.
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": "2027",
      "holder": "John Doe"
    },
    "recipient_card": {
      "number": "4200000000000000",
      "holder": "Mary Doe"
    },
    "customer": {
      "ip": "127.0.0.1",
      "device_id": "12312312321fff67",
      "email": "[email protected]"
    },
    "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&currency=USD"
    }
  }
}

Response parameters

Response parameters replicate request parameters, except for the additional ones:

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.
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.
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.
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 in base currency units.
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.
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 PayCross system.
status
string
The status of the bank transaction.
object
A section of the customer information.
i
string
The IP address of the sender of the transfer.
email
string
The email of the sender of the transfer.
device_id
string
The device ID of the sender of the transfer.
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.
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.
object
The section with additional transfer data.
referer
string
URL of the resource from which the transaction request is made.
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": 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://admin.pay-cross.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": "[email protected]",
      "device_id": "12312312321fff67",
      "birth_date": null
    },
    "additional_data": {
        "referer": "https://example.com/server/cs_post/post.php?order_id=5304380&security=949247&currency=USD"
    }
  }
}
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": 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://admin.pay-cross.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": "[email protected]",
      "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": 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://admin.pay-cross.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": "[email protected]",
      "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.