Token Authority
Trustly offers a complete solution to handle legacy ACH ABA Routing Number and Account Number data that exists in your database to meet the new NACHA requirements for account tokenization and verification.
Summary
Account tokenization and verification can be done using Trustly’s Tokenize an Account to validate and or tokenize the existing merchant’s database. The primary steps of this tutorial are:
- Collect the customers Account and Routing Number in your user interface. Pass this information to Trustly's Tokenize API endpoint.
- Trustly tokenizes the account information. Account Tokens are unique per merchant per account.
- If you pass the optional
verifyAccount
flag with a value oftrue
, Trustly will also verify the account using our own database or a third party service. - Trustly returns the token and optional verification data to you via API response or batch file.
- Update your records with the token and continue processing the transaction.
Tokenize API Endpoint
To initiate the request, pass in the following inputs:
merchantId
: A unique Trustly merchant identifier.account.accountNumber
: This is the account number entered by the sender.account.routingNumber
: This is the routing number entered by the sender.
You can optionally pass in more information to the request. For a full list of fields, consult the tokenize
API reference.
Example Request
In this example, we use an account number of 123456576
and a routing number of 124003116
. We are also requesting optional account verification and passing in optional customer information.
// POST https://{environment}.trustly.com/api/v1/accounts/tokenize?verifyAccount=true
{
"merchantId": "1002463580",
"account": {
"accountNumber": "123456575",
"routingNumber": "124003116",
"type": 1
}
}
Responses
As part of the response data, Trustly will echo back the information submitted and add the following fields:
token
: The Account Tokenverification.verified
:true
if the account is verified;false
otherwise.verification.type
: Will always be3
(Database) in this use case.verification.score
: This will be a score between0
and10
. Score definitions can be found in the API Reference.verification.thirdPartyScore
: If a third party was used as part of the verification, this property will be returned and have a value between0
and999
. Third Party Score definitions can be found below Verification Score Values.verification.verificationDate
: The date and time the verification was completed or updated.
Example Response
{
"account": {
"type": 1,
"accountNumber": "123456575",
"routingNumber": "124003116",
"verification": {
"verified": false,
"type": 3,
"score": 4,
"thirdPartyScore": 400,
"verificationDate": 1556740304129
},
"token": "K11612346575"
}
}
Testing
The following table lists inputs and expected results that can be used for testing.
Note: All test values for Account Number and Routing Number will be 9-digit-integers.
Account Number | Routing Number | Score | Third-party Score | Verified | Error Code | HTTP Status Code | Score Type |
---|---|---|---|---|---|---|---|
1000000000 | 124003116 | 0 | false | 200 | Non Telecheck | ||
1000000001 | 124003116 | 1 | false | 200 | Non Telecheck | ||
1000000002 | 124003116 | 2 | false | 200 | Non Telecheck | ||
1000000003 | 124003116 | 3 | false | 200 | Non Telecheck | ||
1000000004 | 124003116 | 4 | false | 200 | Non Telecheck | ||
1000000005 | 124003116 | 5 | false | 200 | Non Telecheck | ||
1000000006 | 124003116 | 6 | true | 200 | Non Telecheck | ||
1000000007 | 124003116 | 7 | true | 200 | Non Telecheck | ||
1000000008 | 124003116 | 8 | true | 200 | Non Telecheck | ||
1000000009 | 124003116 | 9 | true | 200 | Non Telecheck | ||
1000000010 | 124003116 | 10 | true | 200 | Non Telecheck | ||
1000001000 | 124003116 | 0 | 0 | false | 200 | FCRA | |
1000001100 | 124003116 | 1 | 100 | false | 200 | FCRA | |
1000001200 | 124003116 | 2 | 200 | false | 200 | FCRA | |
1000001300 | 124003116 | 3 | 300 | false | 200 | FCRA | |
1000001400 | 124003116 | 4 | 400 | false | 200 | FCRA | |
1000001500 | 124003116 | 5 | 500 | false | 200 | FCRA | |
1000001600 | 124003116 | 6 | 600 | true | 200 | FCRA | |
1000001700 | 124003116 | 7 | 700 | true | 200 | FCRA | |
1000001800 | 124003116 | 8 | 800 | true | 200 | FCRA | |
1000001900 | 124003116 | 9 | 900 | true | 200 | FCRA | |
1000001999 | 124003116 | 10 | 999 | true | 200 | FCRA | |
1000001000 | 124003116 | 0 | 0 | false | 200 | Non-FCRA | |
1000001015 | 124003116 | 1 | 15 | false | 200 | Non-FCRA | |
1000001020 | 124003116 | 1 | 20 | false | 200 | Non-FCRA | |
1000001025 | 124003116 | 1 | 25 | false | 200 | Non-FCRA | |
1000001035 | 124003116 | 1 | 35 | true | 200 | Non-FCRA | |
1000001045 | 124003116 | 1 | 45 | true | 200 | Non-FCRA | |
1002000000 | 124003116 | 200 | 400 | ||||
1003000000 | 124003116 | 300 | 401 | ||||
1003250000 | 124003116 | 325 | 401 | ||||
1003750000 | 124003116 | 375 | 401 | ||||
1001000000 | 124003116 | 100 | 500 |
FCRA Verification Third Party Score Values
The table below maps Trustly Verification thirdParty
values to a related score
value.
Score | Description | Verified Mapping |
---|---|---|
0 | Failed RT validation. | 0 |
100 | Strong indication that this account is invalid for payments. | 1 |
200 | This account has recent non-bankable debts. | 2 |
300 | History of returns on the account. | 3 |
400 | No negative data on this account, but the format appears suspicious. | 4 |
500 | No data on this account or format. | 5 |
600 | Limited information on the account, but the format appears valid. | 6 |
700 | We have seen this account, but did not receive a final disposition on the transaction. | 7 |
800 | We have seen this account but not recently. | 8 |
900 | This account has been seen recently. | 9 |
999 | Highest confidence that this account is valid. | 10 |
Non-FCRA Verification Score Values
The table below maps Trustly non-FCRA Verification score
values to a related verified
value.
Score | Description | Verified Mapping |
---|---|---|
15 | Known bad bank account. | false |
20 | Unknown bank account, but format appears valid. | false |
25 | Unknown bank account, but format appears suspicious. | false |
35 | Bank account seen but transaction not yet settled (5 days). | true |
45 | Known good bank account. | true |
Error Handling
The following table lists expected errors and suggested actions that are associated with this product. For more information on Error Handling, consult the Errors .
HTTP Status | Code | Suggested Action |
---|---|---|
400 Bad Request | 200 | Check the request parameters and retry the request. |
401 Unauthorized | 300 | Check your API Credentials and Merchant Id and try the request again. |
401 Unauthorized | 375 | Check your API Credentials and Merchant Id and try the request again. |
500 Server Error | 100 | Retry the request and notify Trustly if the issue persists. |
Updated about 1 month ago