Visa Checkout
Visa Checkout is a digital wallet that empowers users to securely store card details and other essential information such as shipping addresses. It can be accessed via the PayU payment page or activated as a convenient lightbox directly on your store's webpage.
Visa Checkout is seamlessly accessible through the PayU payment page, requiring no modifications in the PayU integration. It serves as an additional payment method for the payer.
Another option, to use this solution is to directly activate Visa Checkout's lightbox on your own website (online store). The following description concerns this specific service, offering you the flexibility to incorporate Visa Checkout directly into your online store's interface.
To successfully integrate Visa Checkout, you should:
- Apply for and obtain approval for a Visa Checkout Merchant Services account.
- Perform integration with PayU using the REST API protocol.
How it Works?
Visa Checkout operates through the following steps:
- The payer opts for the Visa Checkout payment method and proceeds to log into their Visa Checkout account through a lightbox embedded on your store's website.
- (Optional) The payer can review and confirm their data directly on your store's website.
- Subsequently, the customer finalizes the payment process and submits the order after completing the required steps.
For more information about Visa Checkout, please refer to Visa Checkout Developer Center website.
Configuring Lightbox
Comprehensive instructions for invoking the lightbox over your store's page can be accessed on the Visa Developer website.
callId
The callId
parameter, which is returned by the lightbox, is the key element for further integration with PayU. It should be sent to your payment service provider (i.e. PayU) so that the encrypted card data can be securely retrieved from the Visa Checkout and used for the payment.
Creating a Visa Checkout Order
To charge the card stored in Visa Checkout, you only need to provide an extended payMethods
object and the extOrderId
parameter in the standard order request.
The payMethod
section must include the authorizationCode
field, which contains the callId
value.
Optionally, you may also provide the specificData
array, depending on agreement between you, PayU and Visa Checkout.
- Example of the payMethods Object
- Example of the Extended payMethods Object
{
"payMethods": {
"payMethod": {
"type": "PBL",
"value": "vc",
//value of the authorizationCode is the retrieved callId
"authorizationCode": "7111023008968028002"
}
}
}
{
"payMethods": {
"payMethod": {
"type": "PBL",
"value": "vc",
//value of the authorizationCode is the retrieved callId
"authorizationCode": "7111023008968028002",
//optional data
"specificData": [
{
"name": "subtotal",
"value": "1000.00"
},
{
"name": "shippingHandling",
"value": "100.00"
},
{
"name": "discount",
"value": "200.00"
},
{
"name": "promoCode",
"value": "promo code"
},
{
"name": "reason",
"value": "reason text"
},
{
"name": "tax",
"value": "2.00"
},
{
"name": "giftWrap",
"value": "2.00"
},
{
"name": "misc",
"value": "1.00"
}
]
}
}
}
Further processing of the order follows the standard process described in the Tokenization section. Keep in mind that there might be a redirection to the 3D Secure authentication page.
As these orders are settled just like standard card payments, it's recommended to think about integrating the transaction data retrieve endpoint. This will help you to distinguish between cards entered via the PayU hosted form and those retrieved via Visa Checkout.
Retrieving Payment Data
When making GET requests, please remember not to include any data in the request body, as specified in the RFC 9110 standard. Requests that do not adhere to this requirement will be rejected by PayU with an HTTP 403 status.
Once you receive the callId
from the Visa Checkout lightbox, you have the choice to optionally proceed with retrieving the "Payment Data" from PayU.
The returned data is presented in a "summary" format, which implies that it is unencrypted and DOES NOT encompass the complete card number. Instead, it only includes the last six digits of the card number. This information can be utilized for informative purposes and to acquire details like the shipping address or other relevant purchase-related information.
To get the data, simply make a HTTP GET call to the /api/visa-checkout/proxy/payment/data/{callId}
endpoint.
PayU functions as an intermediary between you and Visa Checkout, and the payment data is returned in its original state. To gain a deeper understanding of the available data, refer to the Get Payment Data API documentation.
Testing
To test Visa Checkout, follow the instructions detailed in the official Visa Checkout documentation. During this stage, Visa will assign an implementation supervisor to assist you.
Upon creating a Visa Checkout Project Sandbox account, remember to establish a link (referred to as "relationships") with your PayU account. This link enables PayU to authorize transactions on your behalf.
As Visa Checkout is not a default payment method, please contact our team after registering in the sandbox environment but prior to initiating integration using the Visa Checkout payment method.