Custom digital wallets


This page outlines the specification for custom digital wallet fields.

The fields described on this page are only supported by certain acquirers (and can only be processed with Mastercard transactions). For further information, please contact our Support team.


Before getting started, you will need to contact our Support team and request that the digital wallet functionality is enabled on your account. Then you can update your requests using the following specification.



Submitting digital wallet fields in a request

Failure to meet these requirements will result in an invalid field error being returned (30000).


The following is an example of a request where digital wallet fields are included:

<!--YOUR HTML-->
<form method="POST" action="<DOMAIN>/process/payments/choice">
<input type="hidden" name="sitereference" value="test_site12345">
<input type="hidden" name="stprofile" value="default">
<input type="hidden" name="currencyiso3a" value="USD">
<input type="hidden" name="mainamount" value="100.00">
<input type="hidden" name="version" value="2">
<input type="hidden" name="orderreference" value="myorder12345">
<input type="hidden" name="sitesecurity" value="hee879a9ab97753b3a768925d50842f10e19fea03fef0b820026b6df92d415866">
<input type="hidden" name="sitesecuritytimestamp" value="2019-05-28 14:22:37">
<input type="hidden" name="walletsource" value="OTHER">
<input type="hidden" name="walletid" value="A23">
<input type="submit" value="Pay">
import securetrading

stconfig = securetrading.Config()
stconfig.username = "[email protected]"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)

auth = {
  "sitereference": "test_site12345",
  "requesttypedescriptions": ["AUTH"],
  "accounttypedescription": "ECOM",
  "currencyiso3a": "GBP",
  "baseamount": "1050",
  "orderreference": "My_Order_123",
  "walletid": "ABC",
  "walletsource": "OTHER",
  "pan": "5100000000000511",
  "expirydate": "12/2020",
  "securitycode": "123"

strequest = securetrading.Request()
stresponse = st.process(strequest) #stresponse contains the transaction response

if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
  throw new Exception('Composer autoloader file could not be found.');

$configData = array(
  'username' => '[email protected]',
  'password' => 'Password1^',

$requestData = array(
  'sitereference' => 'test_site12345', 
  'requesttypedescriptions' => array('AUTH'),
  'accounttypedescription' => 'ECOM',
  'currencyiso3a' => 'GBP',
  'baseamount' => '1050',
  'orderreference' => 'My_Order_123',
  'wallet id' => 'ABC',
  'wallet source' => 'OTHER',
  'pan' => '5100000000000511',
  'expirydate' => '12/2020',
  'securitycode' => '123'

$api = \Securetrading\api($configData);
$response = $api->process($requestData);

curl --user [email protected]:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias":"[email protected]",
"version": "1.00",
"request": [{
  "currencyiso3a": "GBP",
  "requesttypedescriptions": ["AUTH"],
  "sitereference": "test_site12345",
  "baseamount": "1050",
  "orderreference": "My_Order_123",
  "accounttypedescription": "ECOM",
  "walletid": "ABC",
  "walletsource": "OTHER",
  "pan": "5100000000000511",
  "expirydate": "12/2020",
  "securitycode": "123"
{"alias":"[email protected]","version":"1.00","request":[{"currencyiso3a":"GBP","requesttypedescriptions":["AUTH"],"sitereference":"test_site12345","baseamount":"1050","orderreference":"My_Order_123","accounttypedescription":"ECOM","walletid":"ABC","walletsource":"OTHER","pan":"5100000000000511","expirydate":"12\/2020","securitycode":"123"}]}
<?xml version="1.0" encoding="utf-8"?>
<requestblock version="3.67" >
  <alias>[email protected]</alias>
  <request type="AUTH">
    <amount currencycode="GBP">1050</amount>
     <wallet id="A23">

Replace <DOMAIN> with a supported domain. Click here for a full list.


Request field specification

Field Format Description
XPath: /billing/payment/wallet/@id
Alphanumeric (3) Id of the wallet associated with the transaction.
XPath: /billing/payment/wallet/source
Alpha (5) This field identifies the wallet brand.
Must be submitted as “OTHER”.


Response field specification

Field Format Description
XPath: /billing/payment/wallet/@id
Alphanumeric (3) Id of the wallet associated with the transaction.
XPath: /billing/payment/wallet/source
Alpha (5) “OTHER” is returned.



Viewing the results


The value of the digital wallet fields can be viewed in the single transaction view of MyST. If you already know the transaction reference, type this into the universal search box visible at the top of every page and submit to view the single transaction view:


Alternatively, if you do not know the transaction reference, you can search for transactions by clicking “Transactions” from the left side-bar, then “Transaction search” and using the filters available to you.


You will find the digital wallet fields under the “Wallet details” heading, as shown in the screenshot below:


Notifications, Redirects and Emails

The value of digital wallet fields can be returned in URL notifications, redirects and email notifications. These fields are not returned by default, so therefore must be specified as additional custom fields to be returned.

Please note that the digital wallet fields are not listed among the other ST fields when creating a new action in the Rule manager interface. You must instead type “walletid” and “walletsource” manually into “Fields” in order to add them as custom fields.


Transaction query (using Webservices API)

Using the Webservices API, you can query a request to view the associated digital wallet fields. Click here for further information.

Please note that you cannot query a transaction by including any of the digital wallet fields in the filter.



Additional notes

Supported request types

The digital wallet fields can be submitted in the following requests:

Click here for a full list of request types.