Transaction Types
This section provides instructions on how to load or unload card funds in your card's currency and perform balance adjustments. If Thredd maintains the balance on cards on your behalf, you can manage balances using the Load / Unload card & adjust balance endpoint.
Note
Loads, unloads and balance adjustments are relevant to customers using External Host Interface (EHI) mode 3, where Thredd maintains the card balance and performs transaction authorisation.
Thredd can support the following transaction types:
- Load - used to add a positive balance onto a card
- Unload - used to remove or partially remove a balance from a card
- BalanceAdjustment - used to adjust the balance on a card up or down
- TransferFunds - used to transfer funds from one card to another
Loading or Unloading a Card
Step 1: Retrieve card details
Before loading a card, identify the corresponding Public Token for the card to be used.
A card's public token is returned in the response to creating a card within the publicToken
object.
Step 2: Unload or load a card
After identifying the Public Token for the card and the amount you want to load onto the card, you can create a transaction to move the balance on or off the card. To do this, execute a POST request to the transactions endpoint with the corresponding TransactionType
.
{{base-url}}/cards/{{publicToken}}/transactions
Note
Certain card status values will not allow you to load a balance onto a card. For more information on card status values, see Card Status.
Below are examples of a load and unload payload requests for the value of £10.00 GBP
{
"transactionType": "Load",
"amount": 10.00,
"currencyCode": "GBP",
"loadedBy": "System",
"description": "Card Top up for Lunch"
}
{
"transactionType": "Unload",
"amount": 10.00,
"currencyCode": "GBP",
"loadedBy": "System",
"description": "Moving of funds"
}
{
"transactionType": "BalanceAdjustment",
"amount": 5.23,
"currencyCode": "GBP",
"loadedBy": "System",
"description": "Credit Adjustment"
}
A successful response will return a 200 with the card's load transaction and the updated balance in the response.
{
"transaction": [
{
"transactionType": "Load",
"transactionId": 6157564898,
"amount": 1000,
"currencyCode": "GBP",
"publicToken": "103169969"
}
],
"balance": {
"currencyCode": "GBP",
"cardBalance": 1000,
"pendingAmount": 0,
"availableBalance": 1000
}
}
API Explorer
See the Load / Unload card & adjust balance endpoint for more information.
Balance Transfers
The TransferFunds transaction type enables you to transfer funds from the card specified in the Transaction endpoint, to a card specified in the body of the request. This enables users to transfer funds between cards in the Thredd system, and to facilitate loading cards from Master Virtual Cards.
{{base-url}}/cards/{{publicToken}}/transactions
The below is an example body for a transaction where the TransactionType has been set to TransferFunds.
{
"TransactionType": "TransferFunds",
"Amount": 10.00,
"CurrencyCode": "GBP",
"ToPublicToken": "987654321",
"User": "string",
"Description": "string"
}
If successful, A 200 response is returned with details on the transaction. In this example, a transfer of £10 has been made from the publicToken 123456789 (indicated by the Unload transactionType nest) to the 987654321 publicToken (indicated by the Load transactionType nest).
{
"balance": {
"currencyCode": "GBP",
"actualBalance": 10.00,
"blockedAmount": 0.00,
"availableBalance": 10.00
},
"transaction":[
{
"publicToken": 123456789,
"transactionID": "string",
"transactionType":"Unload",
"amount": 10.00,
"currencyCode":"GBP"
},
{
"publicToken": 987654321,
"transactionID": "string",
"transactionType":"Load",
"amount": 10.00,
"currencyCode":"GBP"
}
]
}
Balance Adjustment
You can use the transactions endpoint to adjust the balance of the card. This is done by using the Load and Unload transaction types to add and subtract from the card balance respectively.
The below example shows an endpoint request to adjust the balance a positive amount using the Load
transaction type.
{
"transaction": [
{
"transactionType": "Load",
"transactionId": 6157564898,
"amount": 1000,
"currencyCode": "GBP",
"publicToken": "103169969"
}
],
"balance": {
"currencyCode": "GBP",
"cardBalance": 1000,
"pendingAmount": 0,
"availableBalance": 1000
}
The below example shows an endpoint request to adjust the balance a negative amount using the Unload
transaction type.
{
"transaction": [
{
"transactionType": "Unload",
"transactionId": 6157564898,
"amount": 500,
"currencyCode": "GBP",
"publicToken": "103169969"
}
],
"balance": {
"currencyCode": "GBP",
"cardBalance": 500,
"pendingAmount": 0,
"availableBalance": 500
}
API Explorer
See the Load / Unload card & adjust balance endpoint for more information.
Updated 9 months ago