Staged Digital Wallet Operators (SDWO)

Worldpay support the SDWO back-to-back model only. This version of the SDWO model instructs the card in the digital wallet to request funds from the card issuing bank. The card issuing bank then pays the wallet, then the wallet pays the merchant.

This guide describes:

  • The additional XML that you must submit
  • Error responses and what they mean

Prerequisites

  • Worldpay have registered you as a third party agent with Visa and Mastercard

  • You have been provided with an MVV by Visa

  • You have been provided with a WID for Mastercard

  • SDWO functionality has been enabled on your Worldpay account (contact your Worldpay Relationship Manager for details)

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>test order</description>
         <amount value="100" currencyCode="EUR" exponent="2"/>
         <orderContent>
            <![CDATA[  ]]>
         </orderContent>
         <paymentDetails>
            <CARD-SSL>
               <cardNumber>4444333322221111</cardNumber>
               <expiryDate>
                  <date month="01" year="2020"/>
               </expiryDate>
               <cardHolderName>AUTHORISED</cardHolderName>
               <cvc>555</cvc>
               <cardAddress>
                  <address>
                     <address1>47A</address1>
                     <address2>Queensbridge Road</address2>
                     <address3>Suburbia</address3>
                     <postalCode>CB94BQ</postalCode>
                     <city>Cambridge</city>
                     <state>Cambridgeshire</state>
                     <countryCode>GB</countryCode>
                  </address>
               </cardAddress>
            </CARD-SSL>
            <sdwoData> <!--The SDWO data. Some is optional - see table below-->
               <retailerMcc>1234</retailerMcc>
               <operatorName>ALIPAY</operatorName>
               <retailerName>your retailer's name</retailerName>
               <retailerStreet>your retailer's street name</retailerStreet>
               <retailerPostCode>your retailer's post code</retailerPostCode>
               <retailerCity>your retailer's city</retailerCity>
               <retailerState>your retailer's state</retailerState>
               <retailerCountry>your retailer's country code</retailerCountry>
               <visaMvv>your Visa mvv code</visaMvv>
               <mcWalletId>your Mastercard wallet id</mcWalletId>
            </sdwoData>
         </paymentDetails>
         <shopper>
            <shopperEmailAddress>sp@worldpay.com</shopperEmailAddress>
         </shopper>
      </order>
   </submit>
</paymentService>

The response message is the same as ourstandard XML responses.

XML reference

Within <sdwoData> are a number of child elements

ElementM/ODescription
<retailerMcc>MandatoryYour 4 digit Merchant Category Code (MCC)
<operatorName>MandatoryOperator's name. 7 characters maximum
<retailerName>MandatoryBusiness name. 14 characters maximum
<retailerStreet>MandatoryRetailer name. Limited to 26 characters: alphanumeric + # ' . , - /
<retailerPostCode>MandatoryRetailer Post Code. Limited to 10 characters: alphanumeric + -
<retailerCity>MandatoryBusiness city. 13 characters maximum
<retailerState>OptionalBusiness state ISO code. 3 characters maximum
<retailerCountry>MandatoryBusiness country ISO code. 2 characters maximum
<visaMvv>OptionalVisa Merchant Verification Value
<mcWalletId>OptionalMastercard wallet ID

Note: In some cases the retailer's details (for any of the above elements) will exceed the character limit. In this case the retailer should supply the abbreviated name that they have registered with the appropriate card scheme (Visa or Mastercard).

Mastercard - MCC-specific requirements

If the retailer is an airline identified with an MCC in the 3000 to 3350 range, then you can only use the abbreviated airline name as registered with the card schemes.

Error codes

If you receive an error, here are the possible reasons why:

Error messageDescription
MCC is missing<retailerMcc> is empty - it must be populated.
MCC is an invalid length<retailerMcc> can only be 4 numeric characters.
MCC contains invalid data. Numeric characters only<retailerMcc> can only hold numeric characters.
Operator name is missing<operatorName> is empty - it must be populated.
Operator name length is exceeded<operatorName> can only be up to 7 characters long.
Operator name contains invalid data. Alphanumeric characters only<operatorName> can only hold alphanumeric characters.
Retailer name is missing<retailerName> is empty - it must be populated.
Retailer name length is exceeded<retailerName> can only be up to 14 characters long.
Retailer name contains invalid data. Alphanumeric characters only<retailerName> can only hold alphanumeric characters.
Retailer city is missing<retailerCity> is empty - it must be populated.
Retailer city length is exceeded<retailerCity> can only be up to 13 characters long.
Retailer city contains invalid data. Alpha only<retailerCity> can only hold alpha characters.
Retailer country is missing<retailerCountry> is empty - it must be populated.
Retailer country length is exceeded<retailerCountry> can only be 2 characters.
Retailer country contains invalid data. Valid ISO-3166 format only<retailerCountry> can only be in the valid ISO-3166 format.
Retailer state length is exceeded<retailerState> can only be up to 3 characters long.
Retailer state contains invalid data. Alpha only<retailerState> can only hold alpha characters.
Visa MVV is missing<visaMvv> is empty - it must be populated for Visa transactions.
Visa MVV has an invalid length<visaMvv> can only be up to 6 characters long.
Visa MVV contains invalid data. Alphanumeric characters only<visaMvv> can only hold alphanumeric characters.
MC wallet ID is missing<mcWalletId> is empty - it must be populated for Mastercard transactions .
MC wallet ID has an invalid length<mcWalletId> can only be up to 3 characters long.
MC wallet ID contains invalid data. Alphanumeric characters only<mcWalletId> can only hold alphanumeric characters.