VISA Checkout

REST API

Please note that you can use the REST API documentation also for Wirecard Payment Page v1 LEGACY 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:

  1. one for VCO wallet,

  2. 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
Visa Checkout workflow for Payment Page

The Payment Page workflow follows the usual Payment Page integration and flow.

  1. Consumer adds items to shopping basket.

  2. Merchant redirects consumer to Wirecard Payment Gateway for payment.

  3. Consumer selects Payment Method VCO.

  4. Wirecard Payment Gateway redirects consumer to VCO.

  5. Consumer enters his VCO credentials and selects preferred card.

  6. Wirecard Payment Gateway receives the card information.

  7. Wirecard Payment Gateway processes the transaction with the merchant’s acquirer.

  8. Wirecard Payment Gateway receives transaction status.

  9. Wirecard Payment Gateway sends transaction status to merchant and redirects the consumer to the merchant.

  10. Merchant receives the transaction’s status and displays the completion of the payment process to the consumer.

REST API Integration with Call ID
Visa Checkout workflow for REST API with call ID
  1. Consumer adds items to shopping basket.

  2. Consumer selects Payment Method VCO.

  3. Merchant initiates the VCO lightbox.

  4. Consumer enters his VCO credentials and selects preferred card.

  5. Visa Checkout redirects the consumer to the merchant with the payload.

  6. Merchant initiate payment request with call ID information.

  7. Wirecard Payment Gateway retrieves the card information from VCO.

  8. Wirecard Payment Gateway processes the transaction with the merchant’s acquirer.

  9. Wirecard Payment Gateway receives transaction status.

  10. Wirecard Payment Gateway sends transaction status to merchant.

  11. Merchant receives the transaction’s status and displays the completion of the payment process to the consumer.

REST API Integration without Call ID
Visa Checkout workflow for REST API 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.

  1. Consumer adds items to shopping basket.

  2. Consumer selects Payment Method Visa Checkout.

  3. Merchant redirects consumer to Wirecard Payment Gateway.

  4. Wirecard Payment Gateway redirects consumer to Visa Checkout.

  5. Consumer enters his Visa Checkout credentials and selects preferred card.

  6. Wirecard Payment Gateway receives the card information.

  7. Wirecard Payment Gateway processes the transaction with the merchant’s acquirer.

  8. Wirecard Payment Gateway receives transaction status.

  9. Wirecard Payment Gateway sends transaction status to merchant and redirects the consumer to the merchant.

  10. 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
debit Request
<?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&amp;</fail-redirect-url>
    <success-redirect-url>http://localhost/shop/complete.jsp?state=success&amp;</success-redirect-url>
</payment>
debit Response
<?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&amp;callback=https%3A%2F%2Fdev.thesolution.com%2Fe ngine%2Fnotification%2Fvisacheckout%3Fparams%3DcGF5bWVudC50cmFuc2FjdGlvbi1pZD03OWIwNWI0OS00OGYyLTQ5Zjc tYjVlMi00OGEwZGUwYzcyYmYmcGF5bWVudC50cmFuc2FjdGlvbi10eXBlPWRlYml0JnBheW1lbnQuZ3JvdXAtdHJhbnNhY3Rpb24taWQ9Nz liMDViNDktNDhmMi00OWY3LWI1ZTItNDhhMGRlMGM3MmJmJnBheW1lbnQudGhyZWVkLWF0dGVtcHQtdGhyZWUtZD10cnVl&amp;currency code=SGD&amp;total=4.00&amp;contextPath=https%3A%2F%2Fdev.thesolution.com%2Fengine&amp;lightboxurl=htt ps%3A%2F%2Fsandbox-assets.secure.checkout.visa.com%2Fcheckout-widget%2Fresources%2Fjs%2Fintegration%2Fv1%2F sdk.js&amp;buttonsource=https%3A%2F%2Fsandbox.secure.checkout.visa.com%2Fwallet-services-web%2Fxo%2Fbutton. png&amp;externalclientid=0610d773-8015-49dc-a3cc-33e64252f28f&amp;locale=en&amp;countrycode=US&amp;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&amp;</fail-redirect-url>
    <success-redirect-url>http://localhost/shop/complete.jsp?state=success&amp;</success-redirect-url>
</payment>
debit Notification
<?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
debit Request
<?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&amp;</fail-redirect-url>
    <success-redirect-url>http://localhost/shop/complete.jsp?state=success&amp;</success-redirect-url>
    <wallet>
        <request-token>1946726864049552602</request-token>
    </wallet>
</payment>
debit Response
<?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&amp;</fail-redirect-url>
    <success-redirect-url>http://localhost/shop/complete.jsp?state=success&amp;</success-redirect-url>
    <wallet>
        <request-token>1946726864049552602</request-token>
    </wallet>
    <provider-transaction-reference-id>1946726864049552602</provider-transaction-reference-id>
</payment>
debit Notification
<?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&amp;</fail-redirect-url>
    <success-redirect-url>http://localhost/shop/complete.jsp?state=success&amp;</success-redirect-url>
    <provider-transaction-reference-id>1946726864049552602</provider-transaction-reference-id>
</payment>