Integration
Visa Alias P2P transaction flow
- A customer indicates a recipient's phone number.
- A merchant submits the number to the Demo PSP system to get card details.
- The system sends the request to Visa Alias Service, gets card details and a card token linked to the phone number, and sends the token to the merchant.
- The merchant initiates a request to get the commission for transferring funds from the source card to the recipient card.
- The system notifies the merchant of a commission to be taken, if the P2P transaction is possible.
- The merchant informs the customer of the commission.
- The customer confirms the P2P transaction. The merchant initiate a P2P transaction request.
- The system processes the transaction and notifies the merchant of its status.
Requirements to requests
Each request to Demo PSP API must meet the following requirements:
- use HTTP Basic authentication with Shop ID and Secret Key;
- have the
Content-Type: application/json,Accept: application/json,X-Api-Version: 3; - use the SSL connection with 128-bit (or stronger) encryption to meet PCI DSS requirements;
- be UTF-8 encoded.
Get the recipient card details by a phone number
Request
Send a POST request to https://demo-gateway.begateway.com/services/visa-alias/verify-phone with the following parameters:
| Parameter | Type | Description |
|---|---|---|
| recipient_info | object | |
| phone_number * required |
string | A recipient's phone number. |
Request example
{
"recipient_info": {
"phone_number": "375291234567"
}
}
Response
If a phone number is used as an alias for the recipient card number, you get a response with the 200 status code.
| Parameter | Type | Description |
|---|---|---|
| holder | string | The recipient cardholder 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 country of the recipient card. |
| issuer_name | string | The issuing bank's name of the recipient card. |
| product * required |
string | The recipient card product type. |
| exp_month | integer | The recipient card expiration month represented with 2 digits, for example 01. |
| exp_year | integer | The recipient card expiration year represented with 4 digits, for example 2021. |
| token | string | The recipient card token. |
| service_info | object | A section of the recipient's details. |
| recipientName | string | The recipient's name. |
| issuerName | string | The issuing bank of the recipient card. |
| cardType | string | The recipient card product type. |
| address1 | string | The recipient's address. |
| address2 | string | The recipient's additional address. |
| city | string | The recipient's city. |
| country | string | The recipient's country. |
| postalCode | string | The recipient's zip code. |
Response example, if the phone number is used as an alias of the recipient card number
{
"holder": "Percy A G",
"stamp": "3212dc99441c4997b2388abe5892f04c850df1dc67a17575203fff86ec1a7833",
"brand": "visa",
"last_4": "4895",
"first_1": "4",
"token": "a38bc9c6-b575-4a49-bc75-635c385398a9",
"product": null,
"bin": "470127",
"issuer_country": null,
"issuer_name": "Test Bank 1",
"exp_month": 12,
"exp_year": 2027,
"service_info": {
"recipientName": "Percy A G",
"issuerName": "Test Bank 1",
"cardType": "Visa Classic",
"address1": "Street 1",
"address2": "Region 1",
"city": "Berlin",
"country": "Germany",
"postalCode": "00111"
}
}
In case of a wrong phone number, you get a response with the 400 status code and an error description.
Response example in case of a wrong phone number
{
"error_code": "request_validation_error",
"message": {
"recipient_info": {
"phone_number": [
"is in invalid format"
]
}
},
"status": "error",
"code": "E.1025",
"friendly_message": "Invalid request params"
}
If a phone number is not used as an alias of a card number in Visa Alias Service, you get a response with the 404 status code and an error description.
Response example if the phone number is not used as an alias of a card number
{
"status": "error",
"code": "E.1037",
"message": "Card Not Found",
"friendly_message": "Card Not Found"
}
Get a commission for the P2P transaction
To get the commission for the P2P transaction, send a request to check the capability of the transaction. Set the recipient_card.token parameter to the received token value.
Execute a P2P transaction
If the P2P transaction is possible, send a P2P transfer request. Set the recipient_card.token parameter to the received token value.
If necessary, you can check a status of the P2P transaction. Send a status query request with the UID or tracking_id assigned to the transaction.