Visa Secure Remote Commerce

    Visa SRC (formerly Visa Checkout) simplifies and secures online payments by storing payment information. It removes the need for a customer to re-enter and share card information.

    Visa SRC is a digital wallet. Customers load their digital wallet with their credit, debit and prepaid cards once. They can then retrieve their payment information at any checkout supporting the wallet.

    Visa SRC benefits users by securing their payment information and saving them time checking out. Visa SRC benefits merchants by reducing checkout abandonment.

    Standard integration

    A Visa SRC payment can involve either one or two steps for a merchant.

    It will always begin with a user choosing the 'click to pay' button in the checkout flow. Visa's SDK handles the event and pops a lightbox where the user can authenticate and select a payment card. Visa SRC then calls a callback function on the merchant's webpage.

    The one step process involves simply listening for a callback from Visa's SDK and calling our Payment API to complete the payment.

    The two step process involves listening for a callback from Visa's SDK, calling our API to retrieve addresses, and then calling our Payment API to complete the payment.


    Bambora's Visa SRC integration is not compatible with 3D Secure.


    Visa SRC is not enabled by default on test accounts. Contact us at and we will enable it.

    You can test Visa SRC on

    Visa SRC SDK

    You will need to add Visa SRC to your page and register a listener to handle payments originating from it. You can find out more here.

    Example requests:

    The first sample request is optional. It is only required if you need to retrieve addresses.

    First request

    curl -X POST \
    First response
    HTTP/1.1 200 OK
    Content-Type: text/html
    trnCardOwner=Jane Doe&trnExpMonth=02&trnExpYear=20&ordName=Jane Doe
    &ordAddress1=123 Main St.&ordAddress2=&ordCity=Victoria&ordProvince=BC&
    ordCountry=CA&ordPostalCode=V8D 1A9&ordPhoneNumber=7789671234& Doe&
    shipAddress1=123 Main St.&shipAddress2=&shipCity=Victoria&
    shipProvince=BC&shipCountry=CA&shipPostalCode=V8D 1A9&shipPhoneNumber=7789671234

    Second request

    curl -X POST \
    Second response
    HTTP/1.1 200 OK
    Content-Type: text/html

    Advanced integration

    If you have integrated and certified to Visa’s Visa SRC API and are handling the redirect to the Visa SRC Portal independently of Bambora’s internal integration, you will need to pass the Visa SRC Call ID with your Payment REST API request to Bambora. This ensures that your transaction is picked up by the Card Issuer as being a Visa SRC transaction.

    Note: This option must be enabled by us. Contact support if you want to use this method.

    The Visa SRC Call ID must be sent with the transaction request using the following system variable:

    Attribute Description
    visa_checkout_call_id The payment request ID returned back from Visa SRC.


    curl \
    -H "Authorization: Passcode MzAwMjAwNTc4OjRCYUQ4MkQ5MTk3YjRjYzRiNzBhMjIxOTExZUU5Zjcw" \
    -H "Content-Type: application/json" \
    -d '{
            "name":"John Doe",
            "number": "4030000010001234",
            "expiry_month": "12",
            "expiry_year": "18",
            "visa_checkout_call_id": "8102778486678528301"
        "id": "10000026",
        "approved": "1",
        "message_id": "1",
        "message": "Approved",
        "auth_code": "TEST",
        "created": "2017-02-23T17:26:26",
        "order_number": "MyOrderId000011223344",
        "type": "P",
        "payment_method": "CC",
        "amount": 15.99,
        "custom": {
            "ref1": "",
            "ref2": "",
            "ref3": "",
            "ref4": "",
            "ref5": ""
        "card": {
            "card_type": "VI",
            "last_four": "1234",
            "address_match": 0,
            "postal_result": 0,
            "cvd_result": 1,
            "eci": 7
      "links": [
                "rel": "void",
                "href": "",
                "method": "POST"
                "rel": "return",
                "href": "",
                "method": "POST"