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": 2026,
"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.