Menu

Open Banking

Open Banking allows your UK customers to initiate an online payment from their bank account using a direct bank transfer.

Prerequisite: To use this payment method your configuration must include Open Banking. For additional information please contact your Relationship Manager.

Order Flow

  1. You submit an API payment request to initiate the transaction.
  2. Worldpay responds synchronously with a redirect to the shopper's bank.
  3. The shopper interacts with their bank to complete the transaction.
  4. Worldpay sends you an asynchronous notification of the payment outcome.

Note: If there is a problem with your request, Worldpay responds with an appropriate exception message.

Warning: When redirecting the shopper to their issuer for authentication you must use a full page redirect integration type, not an iframe or lightbox.

Integration

To use the Open Banking payment method, submit a payment request using the XML elements shown in the table below.

ElementAttribute/Child ElementM/C/ODescription
OPENBANKING-SSLMParent for the Open Banking XML structure.
shopperCountryCodeMDefines the shopper's country.
shopperBankCodeMDefines the shopper's bank. SeeSupported Banks.
bankAccountDetailsOParent for account details of the shopper's preferred bank account. If included, the shopper may not be required to select their preferred account in their online banking channel.
typeCAllowed value:
  • SortCodeAccountNumber
    bankAccountIdentifierCIdentifier for the shopper's bank account. When type="SortCodeAccountNumber", you must include this value. The maximum length is 14 numeric characters.
    successURLMThe URL to use for a successfully completed transaction.
    cancelURLMThe URL to use for a cancelled transaction.
    pendingURLMThe URL to use for a pending transaction.
    statementNarrativeODefines the narrative shown to the shopper in their online banking environment and also appears on the shopper's bank statement. The maximum length is 13 characters and can include A-Z, 0-9, space, hyphen and full stop.

    Example Request

    Copied!
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
    <paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
        <submit>
            <order orderCode="YOUR_ORDER_CODE">
                <description>openbanking ssl test order</description>
                <amount value="101" currencyCode="GBP" exponent="2"/>
                <orderContent>
                        <![CDATA[]]>
                </orderContent>
                <paymentDetails>
                    <OPENBANKING-SSL shopperCountryCode="GB" shopperBankCode="LLOYDS">
                        <bankAccountDetails type="SortCodeAccountNumber">
                            <bankAccountIdentifier>12345678901234</bankAccountIdentifier>
                        </bankAccountDetails>
                        <successURL>https://worldpay.com/?successURL</successURL>
                        <cancelURL>https://worldpay.com/?cancelURL</cancelURL>
                        <pendingURL>https://worldpay.com/?pendingURL</pendingURL>
                    </OPENBANKING-SSL>
                </paymentDetails>
                <shopper>
                    <shopperEmailAddress>sp@worldpay.com</shopperEmailAddress>
                </shopper>
                <statementNarrative>SN123456</statementNarrative>
            </order>
        </submit>
    </paymentService>

    Example of Synchronous Response

    Copied!
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN"
                                    "http://dtd.wp.fte24.test.worldpay.com/dtd/paymentService_v1.dtd">
    <paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
        <reply>
            <orderStatus orderCode="YOUR_ORDER_CODE">
                <reference id="10641980">https://www.worldpay.com/?tokenid=01790c4e-2de4-42ad-b99f-59d0b36f6963</reference>
            </orderStatus>
        </reply>
    </paymentService>

    Payment Outcomes and Asynchronous Responses

    The asynchronous response tells you the outcome of the payment. You should ensure that you update your system usingorder notifications.

    Possible outcomes are:

    Payment Succeeds

    A successful payment occurs when the shopper completes the payment with their online bank and Worldpay receives the authorisation. When this happens, Worldpay returns the Authorisation response to you, changes the payment status to AUTHORISIED and redirects the shopper to the successURL.

    Example of Asynchronous Response

    Copied!
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/dtd/paymentService_v1.dtd">
    <paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
        <notify>
            <orderStatusEvent orderCode="YOUR_ORDER_CODE">
                <payment>
                    <paymentMethod>OPENBANKING-SSL</paymentMethod>
                    <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    <lastEvent>AUTHORISED</lastEvent>
                    <balance accountType="IN_PROCESS_AUTHORISED">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    </balance>
                </payment>
                <journal journalType="AUTHORISED">
                    <bookingDate>
                        <date dayOfMonth="21" month="10" year="2019"/>
                    </bookingDate>
                    <accountTx accountType="IN_PROCESS_AUTHORISED">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    </accountTx>
                </journal>
            </orderStatusEvent>
        </notify>
    </paymentService>

    Payment Captured

    After the payment authorisation succeeds, Worldpay acts to capture the funds. Once this occurs, Worldpay changes the payment status to CAPTURED. Wolrdpay does not redirect the shopper to a URL, since the shopper's journey is already complete.

    Example of Asynchronous Response

    Copied!
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/dtd/paymentService_v1.dtd">
    <paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
        <notify>
            <orderStatusEvent orderCode="YOUR_ORDER_CODE">
                <payment>
                    <paymentMethod>OPENBANKING-SSL</paymentMethod>
                    <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    <lastEvent>CAPTURED</lastEvent>
                    <balance accountType="IN_PROCESS_AUTHORISED">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    </balance>
                </payment>
                <journal journalType="CAPTURED">
                    <bookingDate>
                        <date dayOfMonth="21" month="10" year="2019"/>
                    </bookingDate>
                    <accountTx accountType="IN_PROCESS_CAPTURED" batchId="123">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    </accountTx>
                    <accountTx accountType="IN_PROCESS_AUTHORISED" batchId="123">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="debit"/>
                    </accountTx>
                </journal>
            </orderStatusEvent>
        </notify>
    </paymentService>

    Payment Settled

    After the capture succeeds, Worldpay acts to settle the funds internally in WPG. Once this occurs, Worldpay changes the payment status to SETTLED. Wolrdpay does not redirect the shopper to a URL, since the shopper's journey is already complete.

    Example of Asynchronous Response

    Copied!
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/dtd/paymentService_v1.dtd">
    <paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
        <notify>
            <orderStatusEvent orderCode="YOUR_ORDER_CODE">
                <payment>
                    <paymentMethod>OPENBANKING-SSL</paymentMethod>
                    <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    <lastEvent>SETTLED</lastEvent>
                    <balance accountType="SETTLED_BIBIT_NET">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    </balance>
                </payment>
                <journal journalType="SETTLED" description="ENVOY / ENV1573831944">
                    <bookingDate>
                        <date dayOfMonth="15" month="11" year="2019"/>
                    </bookingDate>
                    <accountTx accountType="SETTLED_BIBIT_NET" batchId="123">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    </accountTx>
                    <accountTx accountType="IN_PROCESS_CAPTURED" batchId="123">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="debit"/>
                    </accountTx>
                </journal>
            </orderStatusEvent>
        </notify>
    </paymentService>

    Payment unsuccessful

    The payment is not successful when the shopper:

    • Fails to authenticate
    • Has an insufficient balance for the purchase and the bank refuses the payment
    • Cancels the payment while on their bank's page

    When this happens, Worldpay returns the pendingURL to the shopper and appends status=ERROR to the URL. For more details, see here:pending URL statuses.

    Example of Asynchronous Response

    Copied!
    <pendingURL>https://www.merchant.com/pending.jsp?orderKey=ORD00XW01^MERCHANTXB^jsxml219506440&status=ERROR</pendingURL>

    Payment Times Out

    In this case the shopper either abandons their bank session or closes their browser. When this happens, the payment status remains SHOPPER_REDIRECTED. Worldpay does not return a redirectURL.

    Refund Behavior

    Note: Return funds to your shopper without handling sensitive data. Go to ourRefunding APMsguide for instructions to use the functionality.

    When you submit a refund request via the Merchant Admin Interface, Worldpay changes the payment status to SENT_FOR_REFUND. Worldpay sends a refund request to the shopper's bank. If the request succeeds, Worldpay changes the payment status to REFUNDED. If the refund request fails, Worldpay changes the payment status to REFUNDED_FAILED.

    Example of Asynchronous Response

    Copied!
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/dtd/paymentService_v1.dtd">
    <paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
        <notify>
            <orderStatusEvent orderCode="YOUR_ORDER_CODE">
                <payment>
                    <paymentMethod>OPENBANKING-SSL</paymentMethod>
                    <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    <lastEvent>REFUNDED</lastEvent>
                    <balance accountType="SETTLED_BIBIT_NET">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="debit"/>
                    </balance>
                    <balance accountType="IN_PROCESS_CAPTURED">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    </balance>
                </payment>
                <journal journalType="REFUNDED" description="ENVOY / ENV1573831944">
                    <bookingDate>
                        <date dayOfMonth="15" month="11" year="2019"/>
                    </bookingDate>
                    <accountTx accountType="SETTLED_BIBIT_NET" batchId="123">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="debit"/>
                    </accountTx>
                    <accountTx accountType="IN_PROCESS_CAPTURED" batchId="123">
                        <amount value="100" currencyCode="GBP" exponent="2" debitCreditIndicator="credit"/>
                    </accountTx>
                </journal>
            </orderStatusEvent>
        </notify>
    </paymentService>

    Supported Banks

    Bank Name<shopperBankCode>
    HSBCHSBC
    Royal Bank of ScotlandRBS
    Barclays BankBARCLAYS
    SantanderSANTANDER
    Nationwide Building SocietyNATIONWIDE
    HalifaxHALIFAX
    Ulster BankULSTER_UK
    Bank of IrelandBOI_UK
    First DirectFIRSTDRCT
    Allied Irish Bank (UK)AIB_UK
    NatWest BankNATWEST
    Lloyds BankLLOYDS
    Bank of ScotlandBOS
    Dankse BankDANKSE_UK
    M&S BankMS_BANK

    Additional Considerations and Information

    This section provide additional information for you to consider when integrating to the Open Banking alternate payment method.

    For a Direct integration, Worldpay provides consent wording, which you must display to the shopper before initiating each transaction.

    Note: In each case, you must include the link to the Privacy Policy. All links must open in a new window or pop up.

    Consent Wording

    By continuing, you consent to Worldpay AP Ltd initiating a payment from your bank account, and checking you have sufficient balance. Worldpay AP Limited is registered in England. Company number: 05593466. Registered address: The Walbrook Building, 25 Walbrook, London, EC4N 8AF. Worldpay AP Limited is authorised by the Financial Conduct Authority (Ref. number 502597) for the provision of payment services. For information on how Worldpay holds and uses your personal data, see ourPrivacy Policy.

    Mandatory information

    In a direct integration, after making an Open Banking payment, you must display the following information to the shopper about the payment:

    • The status of the payment
    • The amount of the payment
    • The statementNarrative

    Payment Properties

    PropertyDescription/Value
    Payment NameOpen Banking
    Payment Method CodeOPENBANKING_SSL
    CountriesUK
    Acceptance CurrenciesGBP
    Settlement CurrencyGBP
    Preferred CurrencyGBP
    Shopper Debit CurrencyGBP
    Minimum Transaction Amount1.00 GBP
    Maximum Transaction AmountEach bank sets its own maximum transaction limit for payments made through online channels.
    Direct RefundsYes
    Direct Refunds PeriodUnlimited
    Bank Transfer RefundsNo
    Bank Transfer Refunds PeriodN/A
    ChargebacksNo
    Statement NarrativeYes
    Dynamic DescriptorNo
    Payment TracabilityN/A
    Direct ModelYes
    Hosted ModelNo
    SandboxYes
    Service LevelAvailable for merchants who use Worldpay to remit their funds
    RestrictionsGBP only at this time

    APM Test Features

    FeatureAvailable?
    Authorise button in Merchant Admin InterfaceNo
    Auto-refunds supportedNo
    Bank transfer refunds supportedYes
    Intermediate Data Collection Page availableNo
    APM with multiple payment optionsNo
    Hosted model onlyNo

    Refund Options

    OptionAvailable?
    Direct refunds supportedYes
    Direct partial refunds supportedYes
    Bank transfer refunds supportedNo