This page outlines the specification for custom digital wallet fields.
The fields described on this page are only supported for Mastercard transactions. They are supported for merchants with a Trust Payments acquiring account, but if you are using a different acquiring bank, you will need to contact our Support Team to check this feature is supported before proceeding.
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:
<html>
<head>
</head>
<body>
<!--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">
</form>
</body>
</html>
Replace <DOMAIN>
with a supported domain. Click here for a full list.
The following is an example of a request where digital wallet fields are included:
{
"payload":{
"accounttypedescription":"ECOM",
"baseamount":"1050",
"currencyiso3a":"GBP",
"sitereference":"test_site12345",
"walletsource":"OTHER",
"walletid":"A23",
"requesttypedescriptions":["THREEDQUERY","AUTH"]
},
"iat":1559033849,
"iss":"jwt.user"
}
The following is an example of a request where digital wallet fields are included:
{
"payload":{
"accounttypedescription":"ECOM",
"baseamount":"1050",
"currencyiso3a":"GBP",
"sitereference":"test_site12345",
"termurl":"https:\/\/payments.securetrading.net\/process\/payments\/mobilesdklistener",
"walletsource":"OTHER",
"walletid":"A23",
"requesttypedescriptions":["THREEDQUERY","AUTH"]
},
"iat":1559033849,
"iss":"jwt.user"
}
The following is an example of a request where digital wallet fields are included:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
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()
strequest.update(auth)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'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);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias":"webservices@example.com",
"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":"webservices@example.com",
"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"
}]
}
<requestblock version="3.67" >
<alias>webservices@example.com</alias>
<request type="AUTH">
<merchant>
<orderreference>My_Order_123</orderreference>
</merchant>
<operation>
<sitereference>test_site12345</sitereference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<billing>
<amount currencycode="GBP">1050</amount>
<payment>
<expirydate>12/2020</expirydate>
<pan>5100000000000511</pan>
<securitycode>123</securitycode>
<wallet id="A23">
<source>OTHER</source>
</wallet>
</payment>
</billing>
</request>
</requestblock>
Request field specification
Field | Format | Description | |
walletid XPath: /billing/payment/wallet/@id |
Alphanumeric (3) | Id of the wallet associated with the transaction. | |
walletsource XPath: /billing/payment/wallet/source |
Alpha (5) |
This field identifies the wallet brand. Must be submitted as “OTHER”. |
Response field specification
If using our API to process the request, these fields are returned in the response (if they were sent on to the acquiring bank).
You can also specify for these fields to be included in URL notifications, redirects and email notifications. See the “Viewing the results” section below for further details.
Field | Format | Description | |
walletid XPath: /billing/payment/wallet/@id |
Alphanumeric (3) |
Id of the wallet associated with the transaction. Returned in the response if sent to the acquiring bank. |
|
walletsource XPath: /billing/payment/wallet/source |
Alpha (5) |
“OTHER” is returned. Returned in the response if sent to the acquiring bank. |
Viewing the results
MyST
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, Payment Pages 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:
- ACCOUNTCHECK
- AUTH
- ORDER
- ORDERDETAILS
- REFUND
- THREEDQUERY