VISA Checkout
REST API
Please note that you can use the REST API documentation also for Wirecard Payment Page v1 integration.
VISA Checkout is a type of Wallet.
Countries and Currencies
Countries |
International |
---|---|
Currencies |
All currencies are supported. |
Communication Formats
This table illustrates how VISA Checkout notifications are encoded and which formats and methods can be used for requests and responses.
Requests/Responses |
Format |
XML |
---|---|---|
Methods |
POST, GET |
|
IPN Encodement |
Base64 |
Transaction Types
Every successful VCO payment request results in two distinct transactions in the database:
-
one for VCO wallet,
-
one for Credit Card.
For transaction type details which are not given here, look at Transaction Types.
VISA Checkout | Credit Card | |
---|---|---|
debit |
AND |
purchase |
authorization |
AND |
authorization |
authorization-only |
AND |
authorization-only |
If the merchant does not receive a notification during the timeout period, they can Retrieve Transaction by Transaction ID or Retrieve Transaction by Request ID.
Test Credentials
Test Merchant Account
There is no public merchant-account available. VCO can be enabled to a specific merchant, provided that they have
registered with VCO and agreed on VCO’s Merchant Services Agreement.
This will generate a VCO external client ID which has to be provided to
Wirecard Payment Gateway. For merchants integrating directly to VCO to
extract wallet data then to Wirecard Payment Gateway for payments, the
API Key has to be additionally provided.
|
URLs (Endpoints) |
HPP |
https://api-test.wirecard.com/engine/hpp/ |
---|---|---|
REST API |
https://api-test.wirecard.com/engine/rest/paymentmethods/ |
|
Merchant Account ID (MAID) |
The MAID can be generated once the VCO external client ID is provided (see info box above). |
|
Username |
Please contact Merchant Support for complete test credentials. |
|
Password |
Please contact Merchant Support for complete test credentials. |
|
Secret Key |
Please contact Merchant Support for complete test credentials. |
Workflow
Payment Page
The Payment Page workflow follows the usual Payment Page integration and flow.
-
Consumer adds items to shopping basket.
-
Merchant redirects consumer to Wirecard Payment Gateway for payment.
-
Consumer selects Payment Method VCO.
-
Wirecard Payment Gateway redirects consumer to VCO.
-
Consumer enters his VCO credentials and selects preferred card.
-
Wirecard Payment Gateway receives the card information.
-
Wirecard Payment Gateway processes the transaction with the merchant’s acquirer.
-
Wirecard Payment Gateway receives transaction status.
-
Wirecard Payment Gateway sends transaction status to merchant and redirects the consumer to the merchant.
-
Merchant receives the transaction’s status and displays the completion of the payment process to the consumer.
REST API Integration with Call ID
-
Consumer adds items to shopping basket.
-
Consumer selects Payment Method VCO.
-
Merchant initiates the VCO lightbox.
-
Consumer enters his VCO credentials and selects preferred card.
-
Visa Checkout redirects the consumer to the merchant with the payload.
-
Merchant initiate payment request with call ID information.
-
Wirecard Payment Gateway retrieves the card information from VCO.
-
Wirecard Payment Gateway processes the transaction with the merchant’s acquirer.
-
Wirecard Payment Gateway receives transaction status.
-
Wirecard Payment Gateway sends transaction status to merchant.
-
Merchant receives the transaction’s status and displays the completion of the payment process to the consumer.
REST API Integration without Call ID
The workflow for REST API Integration without Call ID is similar to the workflow for PP with the exception that the merchant displays the payment options to the consumer and redirects the consumer to Wirecard Payment Gateway which displays the lightbox.
-
Consumer adds items to shopping basket.
-
Consumer selects Payment Method Visa Checkout.
-
Merchant redirects consumer to Wirecard Payment Gateway.
-
Wirecard Payment Gateway redirects consumer to Visa Checkout.
-
Consumer enters his Visa Checkout credentials and selects preferred card.
-
Wirecard Payment Gateway receives the card information.
-
Wirecard Payment Gateway processes the transaction with the merchant’s acquirer.
-
Wirecard Payment Gateway receives transaction status.
-
Wirecard Payment Gateway sends transaction status to merchant and redirects the consumer to the merchant.
-
Merchant receives the transaction’s status and displays the completion of the payment process to the consumer.
Fields
REST Fields
The following elements are elements with differing cardinality from the REST API Fields.
The following elements are either mandatory (M), optional (O) or conditional © in a transaction process.
Field | Request | Response | Notification | Data Type | Size | Description |
---|---|---|---|---|---|---|
success-redirect-url |
M |
M |
M |
String |
2000 |
The URL to which the customer will be re-directed after a successful process handling. |
fail-redirect-url |
M |
M |
M |
String |
2000 |
The URL to which the customer will be re-directed after an unsuccessful process handling. |
wallet/request-token |
C |
M |
M |
String |
VISA Checkout’s call Id field data. Mandatory for REST implementation with call Id. |
Samples
REST API without Call ID
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
<merchant-account-id>ff12048a-b6c2-11e6-8461-000c2904f494</merchant-account-id>
<request-id>952c5ba8-c0f1-9c1e-af83-4441faab3361</request-id>
<transaction-type>debit</transaction-type>
<requested-amount currency="SGD">4.00</requested-amount>
<payment-methods>
<payment-method name="visacheckout"/>
</payment-methods>
<three-d>
<attempt-three-d>true</attempt-three-d>
</three-d>
<fail-redirect-url>http://localhost/shop/complete.jsp?state=failed&</fail-redirect-url>
<success-redirect-url>http://localhost/shop/complete.jsp?state=success&</success-redirect-url>
</payment>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
<merchant-account-id>ff12048a-b6c2-11e6-8461-000c2904f494</merchant-account-id>
<transaction-id>79b05b49-48f2-49f7-b5e2-48a0de0c72bf</transaction-id>
<request-id>952c5ba8-c0f1-9c1e-af83-4441faab3361</request-id>
<transaction-type>debit</transaction-type>
<transaction-state>success</transaction-state>
<completion-time-stamp>2017-01-11T23:44:48.000Z</completion-time-stamp>
<statuses>
<status code="201.0000" description="The resource was successfully created." severity="information"/>
</statuses>
<requested-amount currency="SGD">4.00</requested-amount>
<payment-methods>
<payment-method url="https://dev.thesolution.com/engine/notification/visacheckout/lightBoxPaymentPage? apikey=070G3SR9DI0W7KASXHHO13CEEdFaJv8H8_ivRa-bnH9lvdsvo&callback=https%3A%2F%2Fdev.thesolution.com%2Fe ngine%2Fnotification%2Fvisacheckout%3Fparams%3DcGF5bWVudC50cmFuc2FjdGlvbi1pZD03OWIwNWI0OS00OGYyLTQ5Zjc tYjVlMi00OGEwZGUwYzcyYmYmcGF5bWVudC50cmFuc2FjdGlvbi10eXBlPWRlYml0JnBheW1lbnQuZ3JvdXAtdHJhbnNhY3Rpb24taWQ9Nz liMDViNDktNDhmMi00OWY3LWI1ZTItNDhhMGRlMGM3MmJmJnBheW1lbnQudGhyZWVkLWF0dGVtcHQtdGhyZWUtZD10cnVl&currency code=SGD&total=4.00&contextPath=https%3A%2F%2Fdev.thesolution.com%2Fengine&lightboxurl=htt ps%3A%2F%2Fsandbox-assets.secure.checkout.visa.com%2Fcheckout-widget%2Fresources%2Fjs%2Fintegration%2Fv1%2F sdk.js&buttonsource=https%3A%2F%2Fsandbox.secure.checkout.visa.com%2Fwallet-services-web%2Fxo%2Fbutton. png&externalclientid=0610d773-8015-49dc-a3cc-33e64252f28f&locale=en&countrycode=US&external ProfileId=0610d773801549dca3cc33e64252f28f" name="visacheckout"/>
</payment-methods>
<three-d>
<attempt-three-d>true</attempt-three-d>
</three-d>
<fail-redirect-url>http://localhost/shop/complete.jsp?state=failed&</fail-redirect-url>
<success-redirect-url>http://localhost/shop/complete.jsp?state=success&</success-redirect-url>
</payment>
<?xml version="1.0" encoding="UTF-8"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment" xmlns:ns2="http://www.elastic-payments.com/schema/epa/transaction">
<merchant-account-id>ff12048a-b6c2-11e6-8461-000c2904f494</merchant-account-id>
<transaction-id>b6ad8c0b-c40f-4e19-af25-dc0c780ab726</transaction-id>
<request-id>952c5ba8-c0f1-9c1e-af83-4441faab3361</request-id>
<transaction-type>debit</transaction-type>
<transaction-state>success</transaction-state>
<completion-time-stamp>2017-01-11T23:45:28.000Z</completion-time-stamp>
<statuses>
<status code="201.0000" description="visacheckout:The resource was successfully created." severity="information"/>
</statuses>
<requested-amount currency="SGD">4</requested-amount>
<parent-transaction-id>79b05b49-48f2-49f7-b5e2-48a0de0c72bf</parent-transaction-id>
<order-items/>
<payment-methods>
<payment-method name="visacheckout"/>
</payment-methods>
<api-id>---</api-id>
<processing-redirect-url/>
<provider-transaction-reference-id>7509689972496433202</provider-transaction-reference-id>
</payment>
Samples for REST API with Call ID
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
<merchant-account-id>ff12048a-b6c2-11e6-8461-000c2904f494</merchant-account-id>
<request-id>779032be-642f-3b87-ade4-d1e5195dcb25</request-id>
<transaction-type>debit</transaction-type>
<requested-amount currency="SGD">4.00</requested-amount>
<account-holder>
<last-name>Test</last-name>
</account-holder>
<payment-methods>
<payment-method name="visacheckout"/>
</payment-methods>
<three-d>
<attempt-three-d>false</attempt-three-d>
</three-d>
<fail-redirect-url>http://localhost/shop/complete.jsp?state=failed&</fail-redirect-url>
<success-redirect-url>http://localhost/shop/complete.jsp?state=success&</success-redirect-url>
<wallet>
<request-token>1946726864049552602</request-token>
</wallet>
</payment>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
<merchant-account-id>ff12048a-b6c2-11e6-8461-000c2904f494</merchant-account-id>
<transaction-id>f1e71763-db84-4d27-9da8-4e44c6fb3ed1</transaction-id>
<request-id>779032be-642f-3b87-ade4-d1e5195dcb25</request-id>
<transaction-type>debit</transaction-type>
<transaction-state>success</transaction-state>
<completion-time-stamp>2017-01-05T04:47:49.000Z</completion-time-stamp>
<requested-amount currency="SGD">4.00</requested-amount>
<account-holder>
<last-name>Test</last-name>
</account-holder>
<payment-methods>
<payment-method name="visacheckout"/>
</payment-methods>
<authorization-code>715406</authorization-code>
<three-d>
<attempt-three-d>false</attempt-three-d>
</three-d>
<fail-redirect-url>http://localhost/shop/complete.jsp?state=failed&</fail-redirect-url>
<success-redirect-url>http://localhost/shop/complete.jsp?state=success&</success-redirect-url>
<wallet>
<request-token>1946726864049552602</request-token>
</wallet>
<provider-transaction-reference-id>1946726864049552602</provider-transaction-reference-id>
</payment>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payment xmlns="http://www.elastic-payments.com/schema/payment">
<merchant-account-id>ff12048a-b6c2-11e6-8461-000c2904f494</merchant-account-id>
<transaction-id>946e8e43-12ca-49f4-9c5a-ba6c1f3abde7</transaction-id>
<request-id>779032be-642f-3b87-ade4-d1e5195dcb25</request-id>
<transaction-type>debit</transaction-type>
<transaction-state>success</transaction-state>
<completion-time-stamp>2017-01-05T04:47:48.000Z</completion-time-stamp>
<statuses>
<status code="201.0000" description="visacheckout:The resource was successfully created." severity="information"/>
</statuses>
<requested-amount currency="SGD">4.000000</requested-amount>
<account-holder>
<last-name>Test</last-name>
<address>
<country>SG</country>
</address>
</account-holder>
<card-token>
<token-id>5814368643124003</token-id>
<masked-account-number>540804******4003</masked-account-number>
</card-token>
<notifications>
<notification url="https://hookb.in/Z6momN91"/>
</notifications>
<payment-methods>
<payment-method name="visacheckout"/>
</payment-methods>
<authorization-code>715406</authorization-code>
<api-id>---</api-id>
<fail-redirect-url>http://localhost/shop/complete.jsp?state=failed&</fail-redirect-url>
<success-redirect-url>http://localhost/shop/complete.jsp?state=success&</success-redirect-url>
<provider-transaction-reference-id>1946726864049552602</provider-transaction-reference-id>
</payment>