What is tokenization?
Tokenization is the process of storing card details and generating a token to be used to process transactions against the stored card details. Trust Payments stores the card details on a secure PCI-compliant server so merchants and partners do not need to store sensitive card numbers.
Technical overview
Payment - Tokenizing (Storing) card details - Cardholder Initiated Transaction
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"accounttypedescription": "MOTO",
"baseamount": "1050",
"credentialsonfile": "1",
"currencyiso3a": "GBP",
"expirydate": "01/35",
"requesttypedescriptions": ["AUTH"],
"orderreference": "order123456",
"pan": "4111111111111111",
"securitycode": "123",
"sitereference": "{{site_reference}}"
}
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(
'accounttypedescription' => 'MOTO',
'baseamount' => '1050',
'credentialsonfile' => '1',
'currencyiso3a' => 'GBP',
'expirydate' => '01/35',
'requesttypedescriptions' => array('AUTH'),
'orderreference' => 'order123456',
'pan' => '4111111111111111',
'securitycode' => '123',
'sitereference' => '{{site_reference}}'
);
$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": "MOTO",
"baseamount": "1050",
"credentialsonfile": "1",
"currencyiso3a": "GBP",
"expirydate": "01/35",
"requesttypedescriptions": ["AUTH"],
"orderreference": "order123456",
"pan": "4111111111111111",
"securitycode": "123",
"sitereference": "{{site_reference}}"
}]
}'
{
"alias":"{{wsapi_username}}",
"version":"1.00",
"request":[{
"accounttypedescription":"MOTO",
"baseamount":"1050",
"credentialsonfile":"1",
"currencyiso3a":"GBP",
"expirydate":"01/35",
"requesttypedescriptions":["AUTH"],
"orderreference":"order123456",
"pan":"4111111111111111",
"securitycode":"123",
"sitereference":"{{site_reference}}"
}]
}
<requestblock version="3.67">
<alias>{{wsapi_username}}</alias>
<request type="AUTH">
<billing>
<amount currencycode="GBP">1050</amount>
<payment>
<expirydate>01/35</expirydate>
<pan>4111111111111111</pan>
<securitycode>123</securitycode>
</payment>
</billing>
<merchant>
<orderreference>order123456</orderreference>
</merchant>
<operation>
<accounttypedescription>MOTO</accounttypedescription>
<credentialsonfile>1</credentialsonfile>
<sitereference>{{site_reference}}</sitereference>
</operation>
</request>
</requestblock>
No Payment - Tokenizing (Storing) card details - Cardholder Initiated Transaction
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"accounttypedescription": "MOTO",
"baseamount": "1050",
"credentialsonfile": "1",
"currencyiso3a": "GBP",
"expirydate": "01/35",
"orderreference": "order123456",
"pan": "4111111111111111",
"requesttypedescriptions": ["ACCOUNTCHECK"],
"securitycode": "123",
"sitereference": "{{site_reference}}"
}
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(
'accounttypedescription' => 'MOTO',
'baseamount' => '1050',
'credentialsonfile' => '1',
'currencyiso3a' => 'GBP',
'expirydate' => '01/35',
'orderreference' => 'order123456',
'pan' => '4111111111111111',
'requesttypedescriptions' => array('ACCOUNTCHECK'),
'securitycode' => '123',
'sitereference' => '{{site_reference}}'
);
$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": "MOTO",
"baseamount": "1050",
"credentialsonfile": "1",
"currencyiso3a": "GBP",
"expirydate": "01/35",
"orderreference": "order123456",
"pan": "4111111111111111",
"requesttypedescriptions": ["ACCOUNTCHECK"],
"securitycode": "123",
"sitereference": "{{site_reference}}"
}]
}'
{
"alias":"{{wsapi_username}}",
"version":"1.00",
"request":[{
"accounttypedescription":"MOTO",
"baseamount":"1050",
"credentialsonfile":"1",
"currencyiso3a":"GBP",
"expirydate":"01/35",
"orderreference":"order123456",
"pan":"4111111111111111",
"requesttypedescriptions":["ACCOUNTCHECK"],
"securitycode":"123",
"sitereference":"{{site_reference}}"
}]
}
<requestblock version="3.67">
<alias>{{wsapi_username}}</alias>
<request type="ACCOUNTCHECK">
<billing>
<amount currencycode="GBP">1050</amount>
<payment>
<expirydate>01/35</expirydate>
<pan>4111111111111111</pan>
<securitycode>123</securitycode>
</payment>
</billing>
<merchant>
<orderreference>order123456</orderreference>
</merchant>
<operation>
<accounttypedescription>MOTO</accounttypedescription>
<credentialsonfile>1</credentialsonfile>
<sitereference>{{site_reference}}</sitereference>
</operation>
</request>
</requestblock>
Payment - Tokenized (Stored) card details - Cardholder Initiated Transaction
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"accounttypedescription": "MOTO",
"baseamount": "1050",
"credentialsonfile": "2",
"currencyiso3a": "GBP",
"orderreference": "order123456",
"parenttransactionreference": "INSERT_PARENT_TRANSACTION_REFERENCE",
"requesttypedescriptions": ["AUTH"],
"sitereference": "{{site_reference}}"
}
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(
'accounttypedescription' => 'MOTO',
'baseamount' => '1050',
'credentialsonfile' => '2',
'currencyiso3a' => 'GBP',
'orderreference' => 'order123456',
'parenttransactionreference' => 'INSERT_PARENT_TRANSACTION_REFERENCE',
'requesttypedescriptions' => array('AUTH'),
'sitereference' => '{{site_reference}}'
);
$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": "MOTO",
"baseamount": "1050",
"credentialsonfile": "2",
"currencyiso3a": "GBP",
"orderreference": "order123456",
"parenttransactionreference": "INSERT_PARENT_TRANSACTION_REFERENCE",
"requesttypedescriptions": ["AUTH"],
"sitereference": "{{site_reference}}"
}]
}'
{
"alias":"{{wsapi_username}}",
"version":"1.00",
"request":[{
"accounttypedescription":"MOTO",
"baseamount":"1050",
"credentialsonfile":"2",
"currencyiso3a":"GBP",
"orderreference":"order123456",
"parenttransactionreference":"INSERT_PARENT_TRANSACTION_REFERENCE",
"requesttypedescriptions":["AUTH"],
"sitereference":"{{site_reference}}"
}]
}
<requestblock version="3.67">
<alias>{{wsapi_username}}</alias>
<request type="AUTH">
<merchant>
<orderreference>order123456</orderreference>
</merchant>
<operation>
<accounttypedescription>MOTO</accounttypedescription>
<credentialsonfile>2</credentialsonfile>
<parenttransactionreference>INSERT_PARENT_TRANSACTION_REFERENCE</parenttransactionreference>
<sitereference>{{site_reference}}</sitereference>
</operation>
</request>
</requestblock>
Related articles
Recurring payments
Subsequent recurring payments using the tokenized card details can be processed using our Webservices API.
Merchant Initiated Transactions (MIT)
Submit ad-hoc requests to process a transaction from previously stored card details without cardholder interaction.