The following content assumes you have obtained the necessary PCI certification to process and submit sensitive cardholder data in the request to our Webservices API.
Read this article to learn more.
Payouts are used to credit funds to another bank account.
This page describes the requests your system needs to submit in order to process Payouts with Trust Payments and how to handle the responses returned. This includes descriptions of the required Sender/Payer and Recipient/Payee information.
Documentation for the following verticals are included to assist merchants in meeting Payout processing requirements:
Your Merchant Category Code (MCC) is a four-digit number assigned to you by your acquirer. It is used to classify the business by the type of products or services it provides. If you are unsure of the value of your merchant category code, please contact our Support Team.
Gaming Payouts (MCC 7995)
The merchant is processing a payout of gambling winnings to their customer.
Person-to-Person Money Transfer Payouts (MCC 4829)
The merchant is processing a payout to complete a money transfer for their customer.
Crypto, Forex, & Securities Payouts (MCC 6051 & 6211)
The merchant is processing a payout of the proceeds of trades or contract for differences (CFD) to their customer.
Business Disbursement Payouts (All other MCCs)
The merchant is processing a payout to their customer for reasons not listed above (e.g. Insurance payout for a customer claim).
You may also come across these terms:
- Payouts are also known as Credit Fund Transfers (CFT) or Original Credit Transfers (OCT).
- Visa Direct — For processing payouts to Visa cards. Learn more.
- Mastercard Gaming & Gambling Payments Program — Send gaming payouts to Mastercard cards. Learn more.
- Mastercard MoneySend — Process non-gaming payouts to Mastercard cards. Learn more.
Requirements
You will need to have a CFT account associated with your Trust Payments site reference. If you are unsure if your site reference supports this, we recommend contacting your account manager or our Support Team for clarification.
Process Overview
To process a Payout, you will need to submit a Payout request using our Webservices API. Please refer to the below for code examples.
All Payout requests require accounttypedescription=CFT and requesttypedescription=REFUND.
There are two ways to provide the recipient's card details:
-
Using fields pan and expirydate:
- Submit the recipient's card number and expiry date directly in the request.
- Use this approach when no prior transaction exists on our system for that card.
- Recommended for merchants and partners that capture and include card information in Webservices API requests.
-
Using parenttransactionreference field:
- Reference a previous transaction stored on our system.
- The card details are retrieved automatically, so you do not need to include them in the request.
- Recommended for merchants and partners that use Payment Pages, JavaScript Library & Shopping Cart Plugins to capture card details.
Gaming Payouts (MCC 7995)
The merchant is processing a payout of gambling winnings to their customer.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"accounttypedescription": "CFT",
"baseamount": "1",
"billingcountryiso2a": "GB",
"billingfirstname": "First",
"billinglastname": "Last",
"billingdob": "1990-01-01",
"currencyiso3a": "GBP",
"expirydate": "12/2030",
"pan": "411111******1111",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346"
}
strequest = securetrading.Request()
strequest.update(payout)
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(
'accounttypedescription' => 'CFT',
'baseamount' => '1',
'billingcountryiso2a' => 'GB',
'billingfirstname' => 'First',
'billinglastname' => 'Last',
'billingdob' => '1990-01-01',
'currencyiso3a' => 'GBP',
'expirydate' => '12/2030',
'pan' => '411111******1111',
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'site12346'
);
$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": [{
"accounttypedescription": "CFT",
"baseamount": "1",
"billingcountryiso2a": "GB",
"billingfirstname": "First",
"billinglastname": "Last",
"billingdob": "1990-01-01",
"currencyiso3a": "GBP",
"expirydate": "12/2030",
"pan": "411111******1111",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"CFT",
"baseamount":"1",
"billingcountryiso2a": "GB",
"billingfirstname":"First",
"billinglastname":"Last",
"billingdob":"1990-01-01",
"currencyiso3a":"GBP",
"expirydate":"12/2030",
"pan":"411111******1111",
"requesttypedescriptions":["REFUND"],
"sitereference":"site12346"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="GBP">1</amount>
<country>GB</country>
<dob>1990-01-01</dob>
<name>
<first>First</first>
<last>Last</last>
</name>
<payment>
<expirydate>12/2035</expirydate>
<pan>411111******1111</pan>
</payment>
</billing>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<sitereference>site12346</sitereference>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. View full domain list.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"accounttypedescription": "CFT",
"baseamount": "1",
"billingcountryiso2a": "GB",
"billingfirstname": "First",
"billinglastname": "Last",
"billingdob": "1990-01-01",
"currencyiso3a": "GBP",
"parenttransactionreference": "23-9-80001",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346"
}
strequest = securetrading.Request()
strequest.update(payout)
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(
'accounttypedescription' => 'CFT',
'baseamount' => '1',
'billingcountryiso2a' => 'GB',
'billingfirstname' => 'First',
'billinglastname' => 'Last',
'billingdob' => '1990-01-01',
'currencyiso3a' => 'GBP',
'parenttransactionreference' => '23-9-80001',
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'site12346'
);
$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": [{
"accounttypedescription": "CFT",
"baseamount": "1",
"billingcountryiso2a": "GB",
"billingfirstname": "First",
"billinglastname": "Last",
"billingdob": "1990-01-01",
"currencyiso3a": "GBP",
"parenttransactionreference": "23-9-80001",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"CFT",
"baseamount":"1",
"billingcountryiso2a": "GB",
"billingfirstname":"First",
"billinglastname":"Last",
"billingdob":"1990-01-01",
"currencyiso3a":"GBP",
"parenttransactionreference":"23-9-80001",
"requesttypedescriptions":["REFUND"],
"sitereference":"site12346"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="GBP">1</amount>
<country>GB</country>
<dob>1990-01-01</dob>
<name>
<first>First</first>
<last>Last</last>
</name>
</billing>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<parenttransactionreference>23-9-80001</parenttransactionreference>
<sitereference>site12346</sitereference>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. View full domain list.
{
'requestreference': 'Agv3epv31',
'version': '1.00',
'responses': [{
'accounttypedescription': 'CFT',
'acquirerresponsecode': '00',
'acquirerresponsemessage': 'Approved or completed Successfully',
'authcode': 'ABC123',
'baseamount': '1',
'chargedescription': 'Charge description',
'cryptocurrencyindicator': '0',
'currencyiso3a': 'GBP',
'dccenabled': '0',
'debtrepayment': '0',
'errorcode': '0',
'errormessage': 'Ok',
'issuer': 'ISSUER NAME',
'issuercountryiso2a': 'GB',
'livestatus': '1',
'maskedpan': '411111######1111',
'merchantcategorycode': '7995',
'merchantcity': 'Test City',
'merchantcountryiso2a': 'GB',
'merchantname': 'Test Merchant',
'merchantnumber': '000104900099999',
'merchantzipcode': 'TR45 6ST',
'operatorname': 'webservices@merchant.com',
'parenttransactionreference': '60-102-99999999',
'paymenttypedescription': 'VISA',
'requesttypedescription': 'REFUND',
'retrievalreferencenumber': '334918601688',
'securityresponseaddress': '0',
'securityresponsepostcode': '0',
'securityresponsesecuritycode': '0',
'settleduedate': '2023-12-15',
'settlestatus': '100',
'stan': '601688',
'transactionreference': '60-70-99999999',
'transactionstartedtimestamp': '2023-12-15 18:00:42'
}]
}
array(3) {
["requestreference"] => string(9) "A19beknpr"
["responses"] => array(1) {
[0] => array(35) {
["accounttypedescription"] => string(3) "CFT"
["acquirerresponsecode"] => string(2) "00"
["acquirerresponsemessage"] => string(34) "Approved or completed Successfully"
["authcode"] => string(6) "ABC123"
["baseamount"] => string(1) "1"
["chargedescription"] => string(18) "Charge description"
["cryptocurrencyindicator"] => string(1) "0"
["currencyiso3a"] => string(3) "GBP"
["dccenabled"] => string(1) "0"
["debtrepayment"] => string(1) "0"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["issuer"] => string(11) "ISSUER NAME"
["issuercountryiso2a"] => string(2) "GB"
["livestatus"] => string(1) "1"
["maskedpan"] => string(16) "411111######1111"
["merchantcategorycode"] => string(4) "7995"
["merchantcity"] => string(9) "Test City"
["merchantcountryiso2a"] => string(2) "GB"
["merchantname"] => string(13) "Test Merchant"
["merchantnumber"] => string(15) "000104900099999"
["merchantzipcode"] => string(8) "TR45 6ST"
["operatorname"] => string(24) "webservices@merchant.com"
["parenttransactionreference"] => string(15) "60-102-99999999"
["paymenttypedescription"] => string(4) "VISA"
["requesttypedescription"] => string(6) "REFUND"
["retrievalreferencenumber"] => string(12) "334918601688"
["securityresponseaddress"] => string(1) "0"
["securityresponsepostcode"] => string(1) "0"
["securityresponsesecuritycode"] => string(1) "0"
["settleduedate"] => string(10) "2023-12-15"
["settlestatus"] => string(3) "100"
["stan"] => string(6) "601688"
["transactionreference"] => string(14) "60-70-99999999"
["transactionstartedtimestamp"] => string(19) "2023-12-15 18:00:42"
}
}
["version"] => string(4) "1.00"
}
{
"requestreference": "W57-Ncn48qwu",
"response": [{
"accounttypedescription": "CFT",
"acquirerresponsecode": "00",
"acquirerresponsemessage": "Approved or completed Successfully",
"authcode": "ABC123",
"baseamount": "1",
"chargedescription": "Charge description",
"cryptocurrencyindicator": "0",
"currencyiso3a": "GBP",
"dccenabled": "0",
"debtrepayment": "0",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "ISSUER NAME",
"issuercountryiso2a": "GB",
"livestatus": "1",
"maskedpan": "411111######1111",
"merchantcategorycode": "7995",
"merchantcity": "Test City",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant",
"merchantnumber": "000104900099999",
"merchantzipcode": "TR45 6ST",
"operatorname": "webservices@merchant.com",
"parenttransactionreference": "60-102-99999999",
"paymenttypedescription": "VISA",
"requesttypedescription": "REFUND",
"retrievalreferencenumber": "334918601688",
"securityresponseaddress": "0",
"securityresponsepostcode": "0",
"securityresponsesecuritycode": "0",
"settleduedate": "2023-12-15",
"settlestatus": "100",
"stan": "601688",
"transactionreference": "60-70-99999999",
"transactionstartedtimestamp": "2023-12-15 18:00:42"
}],
"secrand": "nN",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W57-6yBtc6n0</requestreference>
<response type="REFUND">
<acquirerresponsecode>00</acquirerresponsecode>
<acquirerresponsemessage>Approved or completed Successfully</acquirerresponsemessage>
<authcode>ABC123</authcode>
<billing>
<amount currencycode="GBP">1</amount>
<dcc enabled="0"/>
<payment type="VISA">
<issuer>ISSUER NAME</issuer>
<issuercountry>GB</issuercountry>
<pan>411111######1111</pan>
</payment>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>1</live>
<merchant>
<chargedescription>Charge description</chargedescription>
<debtrepayment>0</debtrepayment>
<merchantcategorycode>7995</merchantcategorycode>
<merchantcity>Test City</merchantcity>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant</merchantname>
<merchantnumber>000104900099999</merchantnumber>
<merchantzipcode>TR45 6ST</merchantzipcode>
<operatorname>webservices@merchant.com</operatorname>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<cryptocurrencyindicator>0</cryptocurrencyindicator>
<parenttransactionreference>60-102-99999999</parenttransactionreference>
</operation>
<other>
<retrievalreferencenumber>335212345678</retrievalreferencenumber>
<stan>575503</stan>
</other>
<security>
<address>0</address>
<postcode>0</postcode>
<securitycode>0</securitycode>
</security>
<settlement>
<settleduedate>2023-12-18</settleduedate>
<settlestatus>100</settlestatus>
</settlement>
<timestamp>2023-12-18 15:55:59</timestamp>
<transactionreference>57-70-73675503</transactionreference>
</response>
<secrand>cWq80RAf8JgxC1dv</secrand>
</responseblock>
Person-to-Person Money Transfer Payouts (MCC 4829)
The merchant is processing a payout to complete a money transfer for their customer.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"accounttypedescription": "CFT",
"baseamount": "1",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"cftsourceoffunds": "05",
"currencyiso3a": "GBP",
"customeraccountnumber": "999999",
"customeraccountnumbertype": "ACCOUNT",
"customerfirstname": "First",
"customerlastname": "Last",
"customerstreet": "123 Street",
"customertown": "Town",
"customercountryiso2a": "GB",
"expirydate": "12/2030",
"pan": "545454******5454",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C07"
}
strequest = securetrading.Request()
strequest.update(payout)
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(
'accounttypedescription' => 'CFT',
'baseamount' => '1',
'billingdob' => '1990-12-02',
'billingfirstname' => 'First',
'billinglastname' => 'Last',
'cftsourceoffunds' => '05',
'currencyiso3a' => 'GBP',
'customeraccountnumber' => '999999',
'customeraccountnumbertype' => 'ACCOUNT',
'customerfirstname' => 'First',
'customerlastname' => 'Last',
'customerstreet' => '123 Street',
'customertown' => 'Town',
'customercountryiso2a' => 'GB',
'expirydate' => '12/2030',
'pan' => '545454******5454',
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'site12346',
'transactiontypeindicator' => 'C07'
);
$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": [{
"accounttypedescription": "CFT",
"baseamount": "1",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"cftsourceoffunds": "05",
"currencyiso3a": "GBP",
"customeraccountnumber": "999999",
"customeraccountnumbertype": "ACCOUNT",
"customerfirstname": "First",
"customerlastname": "Last",
"customerstreet": "123 Street",
"customertown": "Town",
"customercountryiso2a": "GB",
"expirydate": "12/2030",
"pan": "545454******5454",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C07"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"CFT",
"baseamount":"1",
"billingdob":"1990-12-02",
"billingfirstname":"First",
"billinglastname":"Last",
"cftsourceoffunds":"05",
"currencyiso3a":"GBP",
"customeraccountnumber":"999999",
"customeraccountnumbertype":"ACCOUNT",
"customerfirstname":"First",
"customerlastname":"Last",
"customerstreet":"123 Street",
"customertown":"Town",
"customercountryiso2a":"GB",
"expirydate":"12/2030",
"pan":"545454******5454",
"requesttypedescriptions":["REFUND"],
"sitereference":"site12346",
"transactiontypeindicator":"C07"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="GBP">1</amount>
<country>GB</country>
<dob>1990-01-01</dob>
<name>
<first>First</first>
<last>Last</last>
</name>
<payment>
<expirydate>12/2035</expirydate>
<pan>545454******5454</pan>
</payment>
</billing>
<customer>
<accountnumber type="ACCOUNT">999999</accountnumber>
<country>GB</country>
<name>
<first>First</first>
<last>Last</last>
</name>
<street>123 Street</street>
<town>Town</town>
</customer>
<merchant>
<cftsourceoffunds>05</cftsourceoffunds>
<transactiontypeindicator>C07</transactiontypeindicator>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<sitereference>site12346</sitereference>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. View full domain list.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"accounttypedescription": "CFT",
"baseamount": "1",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"cftsourceoffunds": "05",
"currencyiso3a": "GBP",
"customeraccountnumber": "999999",
"customeraccountnumbertype": "ACCOUNT",
"customerfirstname": "First",
"customerlastname": "Last",
"customerstreet": "123 Street",
"customertown": "Town",
"customercountryiso2a": "GB",
"parenttransactionreference": "23-9-80001",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C07"
}
strequest = securetrading.Request()
strequest.update(payout)
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(
'accounttypedescription' => 'CFT',
'baseamount' => '1',
'billingdob' => '1990-12-02',
'billingfirstname' => 'First',
'billinglastname' => 'Last',
'cftsourceoffunds' => '05',
'currencyiso3a' => 'GBP',
'customeraccountnumber' => '999999',
'customeraccountnumbertype' => 'ACCOUNT',
'customerfirstname' => 'First',
'customerlastname' => 'Last',
'customerstreet' => '123 Street',
'customertown' => 'Town',
'customercountryiso2a' => 'GB',
'parenttransactionreference' => '23-9-80001',
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'site12346',
'transactiontypeindicator' => 'C07'
);
$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": [{
"accounttypedescription": "CFT",
"baseamount": "1",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"cftsourceoffunds": "05",
"currencyiso3a": "GBP",
"customeraccountnumber": "999999",
"customeraccountnumbertype": "ACCOUNT",
"customerfirstname": "First",
"customerlastname": "Last",
"customerstreet": "123 Street",
"customertown": "Town",
"customercountryiso2a": "GB",
"parenttransactionreference": "23-9-80001",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C07"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"CFT",
"baseamount":"1",
"billingdob":"1990-12-02",
"billingfirstname":"First",
"billinglastname":"Last",
"cftsourceoffunds":"05",
"currencyiso3a":"GBP",
"customeraccountnumber":"999999",
"customeraccountnumbertype":"ACCOUNT",
"customerfirstname":"First",
"customerlastname":"Last",
"customerstreet":"123 Street",
"customertown":"Town",
"customercountryiso2a":"GB",
"parenttransactionreference":"23-9-80001",
"requesttypedescriptions":["REFUND"],
"sitereference":"site12346",
"transactiontypeindicator":"C07"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="GBP">1</amount>
<country>GB</country>
<dob>1990-01-01</dob>
<name>
<first>First</first>
<last>Last</last>
</name>
</billing>
<customer>
<accountnumber type="ACCOUNT">999999</accountnumber>
<country>GB</country>
<name>
<first>First</first>
<last>Last</last>
</name>
<street>123 Street</street>
<town>Town</town>
</customer>
<merchant>
<cftsourceoffunds>05</cftsourceoffunds>
<transactiontypeindicator>C07</transactiontypeindicator>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<parenttransactionreference>23-9-80001</parenttransactionreference>
<sitereference>site12346</sitereference>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. View full domain list.
{
'requestreference': 'Agv3epv31',
'version': '1.00',
'responses': [{
'accounttypedescription': 'CFT',
'acquirerresponsecode': '00',
'acquirerresponsemessage': 'Approved or completed Successfully',
'authcode': 'ABC123',
'baseamount': '1',
'chargedescription': 'Charge description',
'cryptocurrencyindicator': '0',
'currencyiso3a': 'GBP',
'dccenabled': '0',
'debtrepayment': '0',
'errorcode': '0',
'errormessage': 'Ok',
'issuer': 'ISSUER NAME',
'issuercountryiso2a': 'GB',
'livestatus': '1',
'maskedcustomeraccountnumber': '12345678',
'maskedpan': '545454######5454',
'merchantcategorycode': '6537',
'merchantcity': 'Test City',
'merchantcountryiso2a': 'GB',
'merchantname': 'Test Merchant',
'merchantnumber': '000123456789012',
'merchantzipcode': 'TR45 6ST',
'operatorname': 'webservices@merchant.com',
'parenttransactionreference': '60-102-99999999',
'paymenttypedescription': 'MASTERCARD',
'requesttypedescription': 'REFUND',
'retrievalreferencenumber': '334918601688',
'securityresponseaddress': '0',
'securityresponsepostcode': '0',
'securityresponsesecuritycode': '0',
'settleduedate': '2023-12-15',
'settlestatus': '10',
'stan': '601688',
'transactionreference': '60-70-99999999',
'transactionstartedtimestamp': '2023-12-15 18:00:42',
'transactiontypeindicator': 'C07'
}]
}
array(3) {
["requestreference"] => string(9) "A19beknpr"
["responses"] => array(1) {
[0] => array(37) {
["accounttypedescription"] => string(3) "CFT"
["acquirerresponsecode"] => string(2) "00"
["acquirerresponsemessage"] => string(34) "Approved or completed Successfully"
["authcode"] => string(6) "ABC123"
["baseamount"] => string(1) "1"
["chargedescription"] => string(18) "Charge description"
["cryptocurrencyindicator"] => string(1) "0"
["currencyiso3a"] => string(3) "GBP"
["dccenabled"] => string(1) "0"
["debtrepayment"] => string(1) "0"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["issuer"] => string(11) "ISSUER NAME"
["issuercountryiso2a"] => string(2) "GB"
["livestatus"] => string(1) "1"
["maskedcustomeraccountnumber"] => string(8) "12345678"
["maskedpan"] => string(16) "545454######5454"
["merchantcategorycode"] => string(4) "6537"
["merchantcity"] => string(9) "Test City"
["merchantcountryiso2a"] => string(2) "GB"
["merchantname"] => string(13) "Test Merchant"
["merchantnumber"] => string(15) "000123456789012"
["merchantzipcode"] => string(8) "TR45 6ST"
["operatorname"] => string(24) "webservices@merchant.com"
["parenttransactionreference"] => string(15) "60-102-99999999"
["paymenttypedescription"] => string(10) "MASTERCARD"
["requesttypedescription"] => string(6) "REFUND"
["retrievalreferencenumber"] => string(12) "334918601688"
["securityresponseaddress"] => string(1) "0"
["securityresponsepostcode"] => string(1) "0"
["securityresponsesecuritycode"] => string(1) "0"
["settleduedate"] => string(10) "2023-12-15"
["settlestatus"] => string(2) "10"
["stan"] => string(6) "601688"
["transactionreference"] => string(14) "60-70-99999999"
["transactionstartedtimestamp"] => string(19) "2023-12-15 18:00:42"
["transactiontypeindicator"] => string(3) "C07"
}
}
["version"] => string(4) "1.00"
}
{
"requestreference": "W60-B6c1u7bY",
"response": [{
"accounttypedescription": "CFT",
"acquirerresponsecode": "00",
"acquirerresponsemessage": "Approved or completed Successfully",
"authcode": "ABC123",
"baseamount": "1",
"chargedescription": "Charge description",
"cryptocurrencyindicator": "0",
"currencyiso3a": "GBP",
"dccenabled": "0",
"debtrepayment": "0",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "ISSUER NAME",
"issuercountryiso2a": "GB",
"livestatus": "1",
"maskedcustomeraccountnumber": "12345678",
"maskedpan": "545454######5454",
"merchantcategorycode": "6537",
"merchantcity": "Test City",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant",
"merchantnumber": "000123456789012",
"merchantzipcode": "TR45 6ST",
"operatorname": "webservices@merchant.com",
"parenttransactionreference": "60-102-99999999",
"paymenttypedescription": "MASTERCARD",
"requesttypedescription": "REFUND",
"retrievalreferencenumber": "334918601688",
"securityresponseaddress": "0",
"securityresponsepostcode": "0",
"securityresponsesecuritycode": "0",
"settleduedate": "2023-12-15",
"settlestatus": "10",
"stan": "601688",
"transactionreference": "60-70-99999999",
"transactionstartedtimestamp": "2023-12-15 18:00:42",
"transactiontypeindicator": "C07"
}],
"secrand": "nN",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W60-1Yj4kh3A</requestreference>
<response type="REFUND">
<acquirerresponsecode>00</acquirerresponsecode>
<acquirerresponsemessage>Approved or completed Successfully</acquirerresponsemessage>
<authcode>ABC123</authcode>
<billing>
<amount currencycode="GBP">1</amount>
<dcc enabled="0"/>
<payment type="MASTERCARD">
<issuer>ISSUER NAME</issuer>
<issuercountry>GB</issuercountry>
<pan>545454######5454</pan>
</payment>
</billing>
<customer>
<accountnumber type="ACCOUNT">999999</accountnumber>
</customer>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>1</live>
<merchant>
<chargedescription>Charge description</chargedescription>
<debtrepayment>0</debtrepayment>
<merchantcategorycode>6537</merchantcategorycode>
<merchantcity>Test City</merchantcity>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant</merchantname>
<merchantnumber>000104900099999</merchantnumber>
<merchantzipcode>TR45 6ST</merchantzipcode>
<operatorname>webservices@merchant.com</operatorname>
<transactiontypeindicator>C07</transactiontypeindicator>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<cryptocurrencyindicator>0</cryptocurrencyindicator>
<parenttransactionreference>60-102-99999999</parenttransactionreference>
</operation>
<other>
<retrievalreferencenumber>335212345678</retrievalreferencenumber>
<stan>607892</stan>
</other>
<security>
<address>0</address>
<postcode>0</postcode>
<securitycode>0</securitycode>
</security>
<settlement>
<settleduedate>2023-12-18</settleduedate>
<settlestatus>10</settlestatus>
</settlement>
<timestamp>2023-12-18 15:51:25</timestamp>
<transactionreference>60-70-99999999</transactionreference>
</response>
<secrand>8A8Rzl2O</secrand>
</responseblock>
Crypto, Forex, & Securities Payouts (MCC 6051 & 6211)
The merchant is processing a payout of the proceeds of trades or contract for differences (CFD) to their customer. In this scenario, the sender and recipient are the customer.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"accounttypedescription": "CFT",
"baseamount": "1",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"cftsourceoffunds": "05",
"currencyiso3a": "GBP",
"customeraccountnumber": "999999",
"customeraccountnumbertype": "ACCOUNT",
"customerfirstname": "First",
"customerlastname": "Last",
"customerstreet": "123 Street",
"customertown": "Town",
"customercountryiso2a": "GB",
"expirydate": "12/2030",
"pan": "545454******5454",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C52"
}
strequest = securetrading.Request()
strequest.update(payout)
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(
'accounttypedescription' => 'CFT',
'baseamount' => '1',
'billingdob' => '1990-12-02',
'billingfirstname' => 'First',
'billinglastname' => 'Last',
'cftsourceoffunds' => '05',
'currencyiso3a' => 'GBP',
'customeraccountnumber' => '999999',
'customeraccountnumbertype' => 'ACCOUNT',
'customerfirstname' => 'First',
'customerlastname' => 'Last',
'customerstreet' => '123 Street',
'customertown' => 'Town',
'customercountryiso2a' => 'GB',
'expirydate' => '12/2030',
'pan' => '545454******5454',
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'site12346',
'transactiontypeindicator' => 'C52'
);
$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": [{
"accounttypedescription": "CFT",
"baseamount": "1",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"cftsourceoffunds": "05",
"currencyiso3a": "GBP",
"customeraccountnumber": "999999",
"customeraccountnumbertype": "ACCOUNT",
"customerfirstname": "First",
"customerlastname": "Last",
"customerstreet": "123 Street",
"customertown": "Town",
"customercountryiso2a": "GB",
"expirydate": "12/2030",
"pan": "545454******5454",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C52"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"CFT",
"baseamount":"1",
"billingdob":"1990-12-02",
"billingfirstname":"First",
"billinglastname":"Last",
"cftsourceoffunds":"05",
"currencyiso3a":"GBP",
"customeraccountnumber":"999999",
"customeraccountnumbertype":"ACCOUNT",
"customerfirstname":"First",
"customerlastname":"Last",
"customerstreet":"123 Street",
"customertown":"Town",
"customercountryiso2a":"GB",
"expirydate":"12/2030",
"pan":"545454******5454",
"requesttypedescriptions":["REFUND"],
"sitereference":"site12346",
"transactiontypeindicator":"C52"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="GBP">1</amount>
<country>GB</country>
<dob>1990-01-01</dob>
<name>
<first>First</first>
<last>Last</last>
</name>
<payment>
<expirydate>12/2035</expirydate>
<pan>545454******5454</pan>
</payment>
</billing>
<customer>
<accountnumber type="ACCOUNT">999999</accountnumber>
<country>GB</country>
<name>
<first>First</first>
<last>Last</last>
</name>
<street>123 Street</street>
<town>Town</town>
</customer>
<merchant>
<cftsourceoffunds>05</cftsourceoffunds>
<transactiontypeindicator>C52</transactiontypeindicator>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<sitereference>site12346</sitereference>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. View full domain list.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"accounttypedescription": "CFT",
"baseamount": "1",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"cftsourceoffunds": "05",
"currencyiso3a": "GBP",
"customeraccountnumber": "999999",
"customeraccountnumbertype": "ACCOUNT",
"customerfirstname": "First",
"customerlastname": "Last",
"customerstreet": "123 Street",
"customertown": "Town",
"customercountryiso2a": "GB",
"parenttransactionreference": "23-9-80001",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C52"
}
strequest = securetrading.Request()
strequest.update(payout)
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(
'accounttypedescription' => 'CFT',
'baseamount' => '1',
'billingdob' => '1990-12-02',
'billingfirstname' => 'First',
'billinglastname' => 'Last',
'cftsourceoffunds' => '05',
'currencyiso3a' => 'GBP',
'customeraccountnumber' => '999999',
'customeraccountnumbertype' => 'ACCOUNT',
'customerfirstname' => 'First',
'customerlastname' => 'Last',
'customerstreet' => '123 Street',
'customertown' => 'Town',
'customercountryiso2a' => 'GB',
'parenttransactionreference' => '23-9-80001',
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'site12346',
'transactiontypeindicator' => 'C52'
);
$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": [{
"accounttypedescription": "CFT",
"baseamount": "1",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"cftsourceoffunds": "05",
"currencyiso3a": "GBP",
"customeraccountnumber": "999999",
"customeraccountnumbertype": "ACCOUNT",
"customerfirstname": "First",
"customerlastname": "Last",
"customerstreet": "123 Street",
"customertown": "Town",
"customercountryiso2a": "GB",
"parenttransactionreference": "23-9-80001",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C52"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"CFT",
"baseamount":"1",
"billingdob":"1990-12-02",
"billingfirstname":"First",
"billinglastname":"Last",
"cftsourceoffunds":"05",
"currencyiso3a":"GBP",
"customeraccountnumber":"999999",
"customeraccountnumbertype":"ACCOUNT",
"customerfirstname":"First",
"customerlastname":"Last",
"customerstreet":"123 Street",
"customertown":"Town",
"customercountryiso2a":"GB",
"parenttransactionreference":"23-9-80001",
"requesttypedescriptions":["REFUND"],
"sitereference":"site12346",
"transactiontypeindicator":"C52"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="GBP">1</amount>
<country>GB</country>
<dob>1990-01-01</dob>
<name>
<first>First</first>
<last>Last</last>
</name>
</billing>
<customer>
<accountnumber type="ACCOUNT">999999</accountnumber>
<country>GB</country>
<name>
<first>First</first>
<last>Last</last>
</name>
<street>123 Street</street>
<town>Town</town>
</customer>
<merchant>
<cftsourceoffunds>05</cftsourceoffunds>
<transactiontypeindicator>C52</transactiontypeindicator>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<parenttransactionreference>23-9-80001</parenttransactionreference>
<sitereference>site12346</sitereference>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. View full domain list.
{
'requestreference': 'Agv3epv31',
'version': '1.00',
'responses': [{
'accounttypedescription': 'CFT',
'acquirerresponsecode': '00',
'acquirerresponsemessage': 'Approved or completed Successfully',
'authcode': 'ABC123',
'baseamount': '1',
'chargedescription': 'Charge description',
'cryptocurrencyindicator': '0',
'currencyiso3a': 'GBP',
'dccenabled': '0',
'debtrepayment': '0',
'errorcode': '0',
'errormessage': 'Ok',
'issuer': 'ISSUER NAME',
'issuercountryiso2a': 'GB',
'livestatus': '1',
'maskedcustomeraccountnumber': '12345678',
'maskedpan': '545454######5454',
'merchantcategorycode': '6537',
'merchantcity': 'Test City',
'merchantcountryiso2a': 'GB',
'merchantname': 'Test Merchant',
'merchantnumber': '000123456789012',
'merchantzipcode': 'TR45 6ST',
'operatorname': 'webservices@merchant.com',
'parenttransactionreference': '60-102-99999999',
'paymenttypedescription': 'MASTERCARD',
'requesttypedescription': 'REFUND',
'retrievalreferencenumber': '334918601688',
'securityresponseaddress': '0',
'securityresponsepostcode': '0',
'securityresponsesecuritycode': '0',
'settleduedate': '2023-12-15',
'settlestatus': '10',
'stan': '601688',
'transactionreference': '60-70-99999999',
'transactionstartedtimestamp': '2023-12-15 18:00:42',
'transactiontypeindicator': 'C52'
}]
}
array(3) {
["requestreference"] => string(9) "A19beknpr"
["responses"] => array(1) {
[0] => array(37) {
["accounttypedescription"] => string(3) "CFT"
["acquirerresponsecode"] => string(2) "00"
["acquirerresponsemessage"] => string(34) "Approved or completed Successfully"
["authcode"] => string(6) "ABC123"
["baseamount"] => string(1) "1"
["chargedescription"] => string(18) "Charge description"
["cryptocurrencyindicator"] => string(1) "0"
["currencyiso3a"] => string(3) "GBP"
["dccenabled"] => string(1) "0"
["debtrepayment"] => string(1) "0"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["issuer"] => string(11) "ISSUER NAME"
["issuercountryiso2a"] => string(2) "GB"
["livestatus"] => string(1) "1"
["maskedcustomeraccountnumber"] => string(8) "12345678"
["maskedpan"] => string(16) "545454######5454"
["merchantcategorycode"] => string(4) "6537"
["merchantcity"] => string(9) "Test City"
["merchantcountryiso2a"] => string(2) "GB"
["merchantname"] => string(13) "Test Merchant"
["merchantnumber"] => string(15) "000123456789012"
["merchantzipcode"] => string(8) "TR45 6ST"
["operatorname"] => string(24) "webservices@merchant.com"
["parenttransactionreference"] => string(15) "60-102-99999999"
["paymenttypedescription"] => string(10) "MASTERCARD"
["requesttypedescription"] => string(6) "REFUND"
["retrievalreferencenumber"] => string(12) "334918601688"
["securityresponseaddress"] => string(1) "0"
["securityresponsepostcode"] => string(1) "0"
["securityresponsesecuritycode"] => string(1) "0"
["settleduedate"] => string(10) "2023-12-15"
["settlestatus"] => string(2) "10"
["stan"] => string(6) "601688"
["transactionreference"] => string(14) "60-70-99999999"
["transactionstartedtimestamp"] => string(19) "2023-12-15 18:00:42"
["transactiontypeindicator"] => string(3) "C52"
}
}
["version"] => string(4) "1.00"
}
{
"requestreference": "W60-B6c1u7bY",
"response": [{
"accounttypedescription": "CFT",
"acquirerresponsecode": "00",
"acquirerresponsemessage": "Approved or completed Successfully",
"authcode": "ABC123",
"baseamount": "1",
"chargedescription": "Charge description",
"cryptocurrencyindicator": "0",
"currencyiso3a": "GBP",
"dccenabled": "0",
"debtrepayment": "0",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "ISSUER NAME",
"issuercountryiso2a": "GB",
"livestatus": "1",
"maskedcustomeraccountnumber": "12345678",
"maskedpan": "545454######5454",
"merchantcategorycode": "6537",
"merchantcity": "Test City",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant",
"merchantnumber": "000123456789012",
"merchantzipcode": "TR45 6ST",
"operatorname": "webservices@merchant.com",
"parenttransactionreference": "60-102-99999999",
"paymenttypedescription": "MASTERCARD",
"requesttypedescription": "REFUND",
"retrievalreferencenumber": "334918601688",
"securityresponseaddress": "0",
"securityresponsepostcode": "0",
"securityresponsesecuritycode": "0",
"settleduedate": "2023-12-15",
"settlestatus": "10",
"stan": "601688",
"transactionreference": "60-70-99999999",
"transactionstartedtimestamp": "2023-12-15 18:00:42",
"transactiontypeindicator": "C52"
}],
"secrand": "nN",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W60-1Yj4kh3A</requestreference>
<response type="REFUND">
<acquirerresponsecode>00</acquirerresponsecode>
<acquirerresponsemessage>Approved or completed Successfully</acquirerresponsemessage>
<authcode>ABC123</authcode>
<billing>
<amount currencycode="GBP">1</amount>
<dcc enabled="0"/>
<payment type="MASTERCARD">
<issuer>ISSUER NAME</issuer>
<issuercountry>GB</issuercountry>
<pan>545454######5454</pan>
</payment>
</billing>
<customer>
<accountnumber type="ACCOUNT">999999</accountnumber>
</customer>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>1</live>
<merchant>
<chargedescription>Charge description</chargedescription>
<debtrepayment>0</debtrepayment>
<merchantcategorycode>6537</merchantcategorycode>
<merchantcity>Test City</merchantcity>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant</merchantname>
<merchantnumber>000104900099999</merchantnumber>
<merchantzipcode>TR45 6ST</merchantzipcode>
<operatorname>webservices@merchant.com</operatorname>
<transactiontypeindicator>C52</transactiontypeindicator>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<cryptocurrencyindicator>0</cryptocurrencyindicator>
<parenttransactionreference>60-102-99999999</parenttransactionreference>
</operation>
<other>
<retrievalreferencenumber>335212345678</retrievalreferencenumber>
<stan>607892</stan>
</other>
<security>
<address>0</address>
<postcode>0</postcode>
<securitycode>0</securitycode>
</security>
<settlement>
<settleduedate>2023-12-18</settleduedate>
<settlestatus>10</settlestatus>
</settlement>
<timestamp>2023-12-18 15:51:25</timestamp>
<transactionreference>60-70-99999999</transactionreference>
</response>
<secrand>8A8Rzl2O</secrand>
</responseblock>
Business Disbursement Payouts (All other MCCs)
The merchant is processing a payout to their customer for reasons not listed above (e.g. Insurance payout for a customer claim). In this scenario, the sender is the merchant or business sending the funds, and the recipient is the customer. When not provided in the request, the sender information is automatically sourced from Trust Payments.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"accounttypedescription": "CFT",
"baseamount": "1",
"billingcountryiso2a": "GB",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"currencyiso3a": "GBP",
"expirydate": "12/2030",
"pan": "545454******5454",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C55"
}
strequest = securetrading.Request()
strequest.update(payout)
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(
'accounttypedescription' => 'CFT',
'baseamount' => '1',
'billingcountryiso2a' => 'GB',
'billingdob' => '1990-12-02',
'billingfirstname' => 'First',
'billinglastname' => 'Last',
'currencyiso3a' => 'GBP',
'expirydate' => '12/2030',
'pan' => '545454******5454',
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'site12346',
'transactiontypeindicator' => 'C55'
);
$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": [{
"accounttypedescription": "CFT",
"baseamount": "1",
"billingcountryiso2a": "GB",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"currencyiso3a": "GBP",
"expirydate": "12/2030",
"pan": "545454******5454",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C55"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"CFT",
"baseamount":"1",
"billingcountryiso2a": "GB",
"billingdob":"1990-12-02",
"billingfirstname":"First",
"billinglastname":"Last",
"currencyiso3a":"GBP",
"expirydate":"12/2030",
"pan":"545454******5454",
"requesttypedescriptions":["REFUND"],
"sitereference":"site12346",
"transactiontypeindicator":"C55"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="GBP">1</amount>
<country>GB</country>
<dob>1990-01-01</dob>
<name>
<first>First</first>
<last>Last</last>
</name>
<payment>
<expirydate>12/2035</expirydate>
<pan>545454******5454</pan>
</payment>
</billing>
<merchant>
<transactiontypeindicator>C55</transactiontypeindicator>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<sitereference>site12346</sitereference>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. View full domain list.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
payout= {
"accounttypedescription": "CFT",
"baseamount": "1",
"billingcountryiso2a": "GB",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"currencyiso3a": "GBP",
"parenttransactionreference": "23-9-80001",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C55"
}
strequest = securetrading.Request()
strequest.update(payout)
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(
'accounttypedescription' => 'CFT',
'baseamount' => '1',
'billingcountryiso2a' => 'GB',
'billingdob' => '1990-12-02',
'billingfirstname' => 'First',
'billinglastname' => 'Last',
'currencyiso3a' => 'GBP',
'parenttransactionreference' => '23-9-80001',
'requesttypedescriptions' => array('REFUND'),
'sitereference' => 'site12346',
'transactiontypeindicator' => 'C55'
);
$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": [{
"accounttypedescription": "CFT",
"baseamount": "1",
"billingcountryiso2a": "GB",
"billingdob": "1990-12-02",
"billingfirstname": "First",
"billinglastname": "Last",
"currencyiso3a": "GBP",
"parenttransactionreference": "23-9-80001",
"requesttypedescriptions": ["REFUND"],
"sitereference": "site12346",
"transactiontypeindicator": "C55"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"CFT",
"baseamount":"1",
"billingcountryiso2a": "GB",
"billingdob":"1990-12-02",
"billingfirstname":"First",
"billinglastname":"Last",
"currencyiso3a":"GBP",
"parenttransactionreference":"23-9-80001",
"requesttypedescriptions":["REFUND"],
"sitereference":"site12346",
"transactiontypeindicator":"C55"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="REFUND">
<billing>
<amount currencycode="GBP">1</amount>
<country>GB</country>
<dob>1990-01-01</dob>
<name>
<first>First</first>
<last>Last</last>
</name>
</billing>
<merchant>
<transactiontypeindicator>C55</transactiontypeindicator>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<parenttransactionreference>23-9-80001</parenttransactionreference>
<sitereference>site12346</sitereference>
</operation>
</request>
</requestblock>
Replace <DOMAIN> with a supported domain. View full domain list.
{
'requestreference': 'Agv3epv31',
'version': '1.00',
'responses': [{
'accounttypedescription': 'CFT',
'acquirerresponsecode': '00',
'acquirerresponsemessage': 'Approved or completed Successfully',
'authcode': 'ABC123',
'baseamount': '1',
'chargedescription': 'Charge description',
'cryptocurrencyindicator': '0',
'currencyiso3a': 'GBP',
'dccenabled': '0',
'debtrepayment': '0',
'errorcode': '0',
'errormessage': 'Ok',
'issuer': 'ISSUER NAME',
'issuercountryiso2a': 'GB',
'livestatus': '1',
'maskedcustomeraccountnumber': '12345678',
'maskedpan': '545454######5454',
'merchantcategorycode': '6537',
'merchantcity': 'Test City',
'merchantcountryiso2a': 'GB',
'merchantname': 'Test Merchant',
'merchantnumber': '000123456789012',
'merchantzipcode': 'TR45 6ST',
'operatorname': 'webservices@merchant.com',
'parenttransactionreference': '60-102-99999999',
'paymenttypedescription': 'MASTERCARD',
'requesttypedescription': 'REFUND',
'retrievalreferencenumber': '334918601688',
'securityresponseaddress': '0',
'securityresponsepostcode': '0',
'securityresponsesecuritycode': '0',
'settleduedate': '2023-12-15',
'settlestatus': '10',
'stan': '601688',
'transactionreference': '60-70-99999999',
'transactionstartedtimestamp': '2023-12-15 18:00:42',
'transactiontypeindicator': 'C55'
}]
}
array(3) {
["requestreference"] => string(9) "A19beknpr"
["responses"] => array(1) {
[0] => array(37) {
["accounttypedescription"] => string(3) "CFT"
["acquirerresponsecode"] => string(2) "00"
["acquirerresponsemessage"] => string(34) "Approved or completed Successfully"
["authcode"] => string(6) "ABC123"
["baseamount"] => string(1) "1"
["chargedescription"] => string(18) "Charge description"
["cryptocurrencyindicator"] => string(1) "0"
["currencyiso3a"] => string(3) "GBP"
["dccenabled"] => string(1) "0"
["debtrepayment"] => string(1) "0"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["issuer"] => string(11) "ISSUER NAME"
["issuercountryiso2a"] => string(2) "GB"
["livestatus"] => string(1) "1"
["maskedcustomeraccountnumber"] => string(8) "12345678"
["maskedpan"] => string(16) "545454######5454"
["merchantcategorycode"] => string(4) "6537"
["merchantcity"] => string(9) "Test City"
["merchantcountryiso2a"] => string(2) "GB"
["merchantname"] => string(13) "Test Merchant"
["merchantnumber"] => string(15) "000123456789012"
["merchantzipcode"] => string(8) "TR45 6ST"
["operatorname"] => string(24) "webservices@merchant.com"
["parenttransactionreference"] => string(15) "60-102-99999999"
["paymenttypedescription"] => string(10) "MASTERCARD"
["requesttypedescription"] => string(6) "REFUND"
["retrievalreferencenumber"] => string(12) "334918601688"
["securityresponseaddress"] => string(1) "0"
["securityresponsepostcode"] => string(1) "0"
["securityresponsesecuritycode"] => string(1) "0"
["settleduedate"] => string(10) "2023-12-15"
["settlestatus"] => string(2) "10"
["stan"] => string(6) "601688"
["transactionreference"] => string(14) "60-70-99999999"
["transactionstartedtimestamp"] => string(19) "2023-12-15 18:00:42"
["transactiontypeindicator"] => string(3) "C55"
}
}
["version"] => string(4) "1.00"
}
{
"requestreference": "W60-B6c1u7bY",
"response": [{
"accounttypedescription": "CFT",
"acquirerresponsecode": "00",
"acquirerresponsemessage": "Approved or completed Successfully",
"authcode": "ABC123",
"baseamount": "1",
"chargedescription": "Charge description",
"cryptocurrencyindicator": "0",
"currencyiso3a": "GBP",
"dccenabled": "0",
"debtrepayment": "0",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "ISSUER NAME",
"issuercountryiso2a": "GB",
"livestatus": "1",
"maskedcustomeraccountnumber": "12345678",
"maskedpan": "545454######5454",
"merchantcategorycode": "6537",
"merchantcity": "Test City",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant",
"merchantnumber": "000123456789012",
"merchantzipcode": "TR45 6ST",
"operatorname": "webservices@merchant.com",
"parenttransactionreference": "60-102-99999999",
"paymenttypedescription": "MASTERCARD",
"requesttypedescription": "REFUND",
"retrievalreferencenumber": "334918601688",
"securityresponseaddress": "0",
"securityresponsepostcode": "0",
"securityresponsesecuritycode": "0",
"settleduedate": "2023-12-15",
"settlestatus": "10",
"stan": "601688",
"transactionreference": "60-70-99999999",
"transactionstartedtimestamp": "2023-12-15 18:00:42",
"transactiontypeindicator": "C55"
}],
"secrand": "nN",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W60-1Yj4kh3A</requestreference>
<response type="REFUND">
<acquirerresponsecode>00</acquirerresponsecode>
<acquirerresponsemessage>Approved or completed Successfully</acquirerresponsemessage>
<authcode>ABC123</authcode>
<billing>
<amount currencycode="GBP">1</amount>
<dcc enabled="0"/>
<payment type="MASTERCARD">
<issuer>ISSUER NAME</issuer>
<issuercountry>GB</issuercountry>
<pan>545454######5454</pan>
</payment>
</billing>
<customer>
<accountnumber type="ACCOUNT">999999</accountnumber>
</customer>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>1</live>
<merchant>
<chargedescription>Charge description</chargedescription>
<debtrepayment>0</debtrepayment>
<merchantcategorycode>6537</merchantcategorycode>
<merchantcity>Test City</merchantcity>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant</merchantname>
<merchantnumber>000104900099999</merchantnumber>
<merchantzipcode>TR45 6ST</merchantzipcode>
<operatorname>webservices@merchant.com</operatorname>
<transactiontypeindicator>C55</transactiontypeindicator>
</merchant>
<operation>
<accounttypedescription>CFT</accounttypedescription>
<cryptocurrencyindicator>0</cryptocurrencyindicator>
<parenttransactionreference>60-102-99999999</parenttransactionreference>
</operation>
<other>
<retrievalreferencenumber>335212345678</retrievalreferencenumber>
<stan>607892</stan>
</other>
<security>
<address>0</address>
<postcode>0</postcode>
<securitycode>0</securitycode>
</security>
<settlement>
<settleduedate>2023-12-18</settleduedate>
<settlestatus>10</settlestatus>
</settlement>
<timestamp>2023-12-18 15:51:25</timestamp>
<transactionreference>60-70-99999999</transactionreference>
</response>
<secrand>8A8Rzl2O</secrand>
</responseblock>
Payout field specification
Payout request field specification
|
Field |
Format | Description | |
Essential fields | |||
| Required | accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Must be “CFT”. |
| Required | baseamount XPath: /billing/amount |
Numeric (13) | The refund amount in base units, with no commas or decimal points. e.g. £10.99 would be submitted as “1099” but ¥246 would be submitted as “246”. |
| Required | currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
The currency that the transaction will be processed in. |
| Required | requesttypedescriptions XPath: /@type |
Alphanumeric & hyphens (25) |
The request type required is “REFUND”. |
| Required | sitereference XPath: /operation/sitereference |
Alphanumeric & underscore (50) |
A unique reference that identifies your account. You receive this when you first sign up with us. |
| Conditional | expirydate XPath: /billing/payment/expirydate |
Date MM/YYYY |
The card expiry date. Required when pan is submitted. Optional when parenttransactionreference is submitted. |
| Conditional | pan XPath: /billing/payment/pan |
Numeric (12-19) |
The customer's card number. Required when parenttransactionreference is NOT submitted. |
| Conditional | parenttransactionreference XPath: /operation/parenttransactionreference |
Alphanumeric & hyphens (25) |
Submit the transaction reference of a previous AUTH, ACCOUNTCHECK or Payout (CFT REFUND) request and we will retrieve the customer's card stored in our records and credit the funds to said card. All fields that start with "billing" and "customer" will also be inherited from the parent request, if available. Inherited fields do not need to be included in this new Payout request (even if denoted as required in this specification), but you do still have the option to submit new billing and customer fields and this will override any inherited data. Required when pan is NOT submitted. |
| Optional | orderreference XPath: /merchant/orderreference |
Alphanumeric including symbols (25) |
We strongly recommend submitting a unique reference to identify each request submitted. |
Fund transfer fields | |||
| Conditional | cftsourceoffunds XPath: /merchant/cftsourceoffunds |
Numeric (2) |
The source of funds for the Payout. "01" - Credit Required for: If Business Disbursement: |
| Conditional | customeraccountnumbertype XPath: /customer/accountnumber/@type |
Alpha (7) |
Submit either “CARD” or “ACCOUNT”. Required for: If Business Disbursement: |
| Conditional | customeraccountnumber XPath: /customer/accountnumber |
Numeric (34) |
If customeraccountnumbertype is “ACCOUNT”, submit the sender's account number. If customeraccountnumbertype is “CARD”, submit the sender's card number. Required for: If Business Disbursement: |
| Conditional | transactiontypeindicator XPath: /merchant/transactiontypeindicator |
Alphanumeric (3) |
Specifies the Mastercard MoneySend Transaction Type - Supported values: "C07" — Person-to-Person Transfer
|
Sender contact fields | |||
| Conditional | customercountryiso2a XPath: /customer/country |
Alpha (2) |
The sender's country in ISO2A format. Required for: If Business Disbursement: |
| Conditional | customercounty XPath: /customer/county |
Alphanumeric including symbols (127) |
The county for the sender's address. For US and Canadian addresses, submit the two-character province code, e.g. for British Columbia, submit “BC”. Required if BOTH conditions are met: Required for: If Business Disbursement: |
| Conditional | customerfirstname XPath: /customer/name/first |
Alphanumeric including symbols (127) |
The sender's first name. Required for: If Business Disbursement: |
| Conditional | customerlastname XPath: /customer/name/last |
Alphanumeric including symbols (127) |
The sender's last name. Required for: If Business Disbursement: |
| Conditional | customermiddlename XPath: /customer/name/middle |
Alphanumeric including symbols (127) |
The customer’s middle name(s). Required if BOTH of these conditions apply: For other verticals, this field is optional. |
| Conditional | customerpremise XPath: /customer/premise |
Alphanumeric including symbols (25) |
The sender's property name/number. Required for: If Business Disbursement: The customerpremise field can be submitted in addition to / instead of customerstreet. |
| Conditional | customerstreet XPath: /customer/street |
Alphanumeric including symbols (127) |
The sender's street name. Required for: If Business Disbursement: The customerstreet field can be submitted in addition to / instead of customerpremise. |
| Conditional | customertown XPath: /customer/town |
Alphanumeric including symbols (127) |
The sender's town. Required for: If Business Disbursement: |
| Optional | customerpostcode XPath: /customer/postcode |
Alphanumeric (25) | The sender's postcode or ZIP code. This must be a valid postcode/ZIP code for the customercountryiso2a submitted. |
Recipient contact fields | |||
| Required | billingcountryiso2a XPath: /billing/country |
Alpha (2) |
The country for the recipient's billing address. This will need to be in ISO2A format. |
| Required | billingdob XPath: /billing/dob |
Date YYYY-MM-DD | The recipient's date of birth. |
| Required | billingfirstname XPath: /billing/name/first |
Alphanumeric including symbols (127) |
The recipient's billing first name. |
| Required | billinglastname XPath: /billing/name/last |
Alphanumeric including symbols (127) |
The recipient's billing last name. |
| Conditional | billingcounty XPath: /billing/county |
Alphanumeric including symbols (127) |
The county for the recipient's billing address. For US and Canadian addresses, submit the two-character province code, e.g. for British Columbia, submit “BC”. Required if BOTH conditions are met: Required if BOTH conditions are met: |
| Conditional | billingmiddlename XPath: /billing/name/middle |
Alphanumeric including symbols (127) |
The customer’s billing middle name(s). Required if BOTH of these conditions apply: For other verticals, this field is optional. |
| Conditional | billingstreet XPath: /billing/street |
Alphanumeric including symbols (127) |
The street entered for the recipient's billing address. Required if |
| Conditional | billingtown XPath: /billing/town |
Alphanumeric including symbols (127) |
The town entered for the recipient's billing address. Required if |
| Optional | billingpostcode XPath: /billing/postcode |
Alphanumeric (25) | The billing postcode or ZIP code. This must be a valid postcode/ZIP code for the billingcountryiso2a submitted. |
| Optional | billingpremise XPath: /billing/premise |
Alphanumeric including symbols (25) |
The property name/number for the recipient's billing address. |
Payout response field specification
| Field | Format | Description | |
| Returned | accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | “CFT” is returned in the response. |
| Returned | baseamount XPath: /billing/amount |
Numeric (13) | The refund amount in base units, with no commas or decimal points. e.g. £10.99 would be submitted as “1099” but ¥246 would be submitted as “246”. |
| Returned | chargedescription XPath: /merchant/chargedescription |
Alphanumeric including spaces and special characters (25) |
The charge description is a field that we provide to the acquiring bank during a transaction. It is a basic description of the transaction that is shown on the customer’s bank statement. |
| Returned | cryptocurrencyindicator XPath: /operation/cryptocurrencyindicator |
Numeric (1) |
Indicates if transaction is flagged as a purchase of cryptocurrency:
|
| Returned | currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
The currency of the transaction. |
| Returned | dccenabled XPath: /billing/dcc/@enabled |
Numeric (1) |
Indicates if your account is configured for DCC:
|
| Returned | debtrepayment XPath: /merchant/debtrepayment |
Numeric (1) |
Indicates if transaction is flagged as debt repayment:
|
| Returned | errorcode XPath: /error/code |
Numeric (1-5) |
The error code should be used to determine if the request was successful or not.
|
| Returned | errormessage XPath: /error/message |
Alphanumeric (255) |
This provides a brief explanation as to the cause of the error. For successful transactions, this is returned as “Ok”. |
| Returned | issuer XPath: /billing/payment/issuer |
Alphanumeric (255) | The customer’s card issuer. |
| Returned | issuercountryiso2a XPath: /billing/payment/issuercountry |
Alpha (2) |
The country for the customer’s card issuer. |
| Returned | livestatus XPath: /live |
Numeric (1) |
|
| Returned | maskedpan XPath: /billing/payment/pan |
Alphanumeric including “#” (12-19) |
If tokenisedpayment is not returned: If tokenisedpayment is returned with value 1: |
| Returned | merchantnumber XPath: /merchant/merchantnumber |
Alphanumeric (32) | The merchant number that was used to process the transaction. Provided by the acquiring bank. |
| Returned | operatorname XPath: /merchant/operatorname |
Alphanumeric (255) | The value of this field contains the name of the user that processed the request. |
| Returned | paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Payment method (e.g. “VISA” or “MASTERCARD”). |
| Returned | requesttypedescription XPath: /@type |
Alpha (20) | “REFUND” is returned in the response. |
| Returned | securityresponseaddress XPath: /security/address |
Numeric (1) |
The result of AVS checks. |
| Returned | securityresponsepostcode XPath: /security/postcode |
Numeric (1) |
The result of AVS checks. |
| Returned | securityresponsesecuritycode XPath: /security/securitycode |
Numeric (1) |
The result of Security Code Checks. |
| Returned | settleduedate XPath: /settlement/settleduedate |
Date YYYY-MM-DD | The date on which the transaction will be settled. |
| Returned | settlestatus XPath: /settlement/settlestatus |
Numeric (3) |
A numeric value used to indicate the progress of settlement regarding this transaction. |
| Returned | transactionreference XPath: /transactionreference |
Alphanumeric including hyphens (25) |
A unique reference for the transaction assigned by Trust Payments. You will need this reference to perform a refund or update the transaction. |
| Returned | transactionstartedtimestamp XPath: /timestamp |
Date time YYYY-MM-DD hh:mm:ss | The time the transaction was processed. |
| Conditional | acquireradvicecode XPath: /acquireradvicecode |
Numeric (1) |
A numeric value returned following a repeat payment request, indicating if further payments can be processed. Mapping:
This will vary depending on your acquiring bank. Please contact your bank for further information. |
| Conditional | acquirerresponsecode XPath: /acquirerresponsecode |
Alphanumeric (255) |
Used by your acquirer to indicate the outcome of the request. This will vary depending on your acquiring bank. Please contact your bank for further information. |
| Conditional | acquirerresponsemessage XPath: /acquirerresponsemessage |
Alphanumeric (255) |
Used by your acquirer to indicate the outcome of the request. This will vary depending on your acquiring bank. Please contact your bank for further information. |
| Conditional | authcode XPath: /authcode |
Alphanumeric (255) |
The authorisation code provided by the issuing bank. This will differ depending on which bank you use. Only returned if the transaction is authorised. |
| Conditional | customeraccountnumbertype XPath: /customer/accountnumber/@type |
Alpha (7) |
Either “CARD” or “ACCOUNT”. When the customeraccountnumber value submitted in the request is a card number, this field will be populated with "CARD" in the response. |
| Conditional | errordata XPath: /error/data |
Alphanumeric (255) |
Additional information to help troubleshoot the error. Only returned if there has been an error. |
| Conditional | maskedcustomeraccountnumber XPath: /customer/accountnumber |
Numeric (34) |
If account number type is “ACCOUNT”, the account number of the sender. When the customeraccountnumber value submitted in the request is a card number, this will be masked (e.g. “559139######0504”) in the response, when displayed in Portal and returned in URL notification(s) (if enabled). Returned if submitted in the request. |
| Conditional | merchantcategorycode XPath: /merchant/merchantcategorycode |
Alphanumeric (255) |
These are details associated with the account used to process the transaction. To amend these fields, please contact our Support Team. Values returned depends on your account configuration. |
| Conditional | merchantcity XPath: /merchant/merchantcity |
Alphanumeric (127) |
These are details associated with the account used to process the transaction. To amend these fields, please contact our Support Team. Values returned depends on your account configuration. |
| Conditional | merchantcountryiso2a XPath: /merchant/merchantcountryiso2a |
Alpha (2) |
These are details associated with the account used to process the transaction. To amend these fields, please contact our Support Team. Values returned depends on your account configuration. |
| Conditional | merchantname XPath: /merchant/merchantname |
Alphanumeric (255) |
These are details associated with the account used to process the transaction. To amend these fields, please contact our Support Team. Values returned depends on your account configuration. |
| Conditional | merchantstatecode XPath: /merchant/merchantstatecode |
Alphanumeric (127) |
These are details associated with the account used to process the transaction. To amend these fields, please contact our Support Team. Values returned depends on your account configuration. |
| Conditional | merchantzipcode XPath: /merchant/merchantzipcode |
Alphanumeric (10) |
These are details associated with the account used to process the transaction. To amend these fields, please contact our Support Team. Values returned depends on your account configuration. |
| Conditional | orderreference XPath: /merchant/orderreference |
Alphanumeric including symbols (25) |
Your unique order reference that can be stored on the Trust Payments system. This field is returned if submitted in the request or inherited from a parent. |
| Conditional | parenttransactionreference XPath: /operation/parenttransactionreference |
Alphanumeric & hyphens (25) |
The transactionreference of a previous request, from which key details have been inherited. This field is returned if submitted in the request. |
| Conditional | retrievalreferencenumber XPath: /other/retrievalreferencenumber |
Alphanumeric (255) |
An ISO term. This is used to reference the source transaction. This will vary depending on your acquiring bank. |
| Conditional | stan XPath: /other/stan |
ISO 8583 |
The STAN (System Trace Audit Number) associated with the transaction. This follows the ISO 8583 standard. This field is returned if available. |
| Conditional | tokenisedpayment XPath: /billing/payment/pan/@tokenised |
Numeric (1) |
If this field is returned with value 1, this indicates the transaction was processed using a token. This field is returned if payment was performed using a token. |
| Conditional | tokentype XPath: /billing/payment/pan/@tokentype |
Alphanumeric (50) |
Used to identify the type of token used for this payment (e.g. “VISATOKEN”). This field is returned if payment was performed using a token. |
| Conditional | transactiontypeindicator XPath: /merchant/transactiontypeindicator |
Alphanumeric (3) |
"C07" — Person-to-Person Transfer Returned if submitted in the request. |
| Conditional | walletdisplayname XPath: /billing/payment/wallet/displayname |
Alphanumeric (255) |
This normally contains the last four digits of the customer’s card number (e.g. “1111”). This field is returned if payment was performed using a wallet. |
| Conditional | walletsource XPath: /billing/payment/wallet/source |
Alphanumeric (20) |
Used to identify the type of wallet used for this payment (e.g. “APPLEPAY”). This field is returned if payment was performed using a wallet. |
Payout settlement
The settlement flow depends on the protocol being used to perform the Payout.
Mastercard MoneySend
While the funds are typically transferred to the recipient in less than 30 minutes, MoneySend payouts will initially have settlestatus=10. A batch process runs on a daily basis, updating the settlestatus of successful transfers to 100.
Visa Direct
Transfers processed via Visa Direct are typically transferred to the recipient in less than 30 minutes. The settlestatus of the transfer is immediately set to 100.
Mastercard Gaming and Gambling Payments Program and everything else
Payouts that are processed via the Mastercard Gaming and Gambling Payments Program, or anything outside of the above, will follow the same settlement flow as a standard e-commerce AUTH or REFUND request:
- If the Payout request is successful, settlestatus=0
- Settlement is performed in batches on a daily basis, after which Payouts are updated to settlestatus=100 to indicate successful settlement.
- The transfer will normally complete within 24 hours.
Additional notes
Politically Exposed Persons (PEP) or Sanction Screening
Requests to process Payouts where Trust Payments performs PEP or sanction screening on the recipient are subject to strict requirements. The following fields must be submitted in the Payout request:
Failure to submit may result in returning of 60044 "Recipient screening failed" error.
- billingcountryiso2a
- billingdob
- billingfirstname
- billinglastname
Testing guidance
When testing, you can use the following test card details:
- Visa card "4111 1111 1111 1111" or Mastercard "5100 0000 0000 0511".
- Set expiry date to any valid date in the future.
- Use security code “123”.
You can also send different baseamount values to affect the outcome of the request:
- baseamount 70000 returns a declined response from the test bank.
- baseamount 60010 returns a bank system error from the test bank.
- baseamount 1050 returns an authorised response from the test bank.
Please generate and submit your own placeholder sender/recipient name, address, date of birth and/or account number etc. when testing.
FAQ
Why has my Payout request been declined?
Payouts are sent to the card issuer for authorisation, and a decline response (error code 70000) indicates that the card issuer has chosen to decline the request. Trust Payments is unable to provide specific reasons for the decline, as this decision is made by the card issuer directly. We recommend contacting your card issuer to find out why the payout was declined.
What is a business application identifier?
A business application identifier (BAI) is a unique reference code assigned to your business within the Trust Payments platform, used specifically for Visa Direct payouts and account funding transactions. A specific BAI is assigned based on your merchant type. For more information, contact our Support Team.
What is a transaction type indicator?
A transaction type indicator (TTI) is a required value included in Mastercard Moneysend payout and funding transaction requests, which specifies the type of transaction being processed. For more information, contact our Support Team.

