Card Management
Overview
Company Cards can be created for customers and employees alike. Once ordered, Cards are delivered within 3 - 5 working days. After the Card is activated, simply load the balance in the currency of choice, and it's ready to make purchases. Alternatively, the Card may be activated by the Main Account holder without having to wait for the physical Card to arrive.
Scope
In this guide, we explore some of the key concepts required to formulate the understanding of Card products.
Create a Card
To create a Card you must first Create a Wallet. Once you have generated the WalletId
, you can proceed with the steps below:
- Call the
POST - Create a Card
endpoint. - Enter the
WalletId
in the path parameters. - Enter the corresponding details for the Card Holder, as shown in the request body parameters table below.
- A successful response returns a
CardId
.
REQUEST BODY PARAMS
Name | Description | Type | Required/Optional |
---|---|---|---|
FirstName | The Card Holder's First Name. | string | Required |
LastName | The Card Holder's Last Name. | string | Required |
Gender | The Card Holder's gender. Must be Male or Female. | string | Required |
Email | Email is not a compulsory value and if not set, the Card can be activated but does not provide the Card Holder with platform access to view balances and recent transactions. Conversely, if the email value is set, the Card Holder receives an email with Sign-up details, that enables them to create an account and gain access to the aforementioned features. | string | Optional |
DateOfBirth | The Card Holder's date of birth, as per RFC3339 date format yyyy-mm-dd. | string | Required |
RESPONSE
A successful response is shown below, note the CardId
created on line four.
{
"Content": {
"Model": {
"CardId": "12345678",
"ApiStatusCode": 100,
"ApiStatus": "IsValid",
"ApiStatusDescription": "Valid Operation"
},
}
}
Assign a Card
If the email address is not assigned when creating a Card, the Card Holder won't have platform access to view balances and recent transactions.
However, calling the POST - Assign a Card to a User
endpoint and entering an email address in the request, sends an email to the Card Holder with the instructions to create credentials and access these features.
Activate Card
There are two available methods to activate a Card:
Method 1. Card Holder Activates the Card.
Method 2. Activate the Card via the Main Account.
1. Card Holder Activates the Card.
This option consists of a two-step process, whereby the Card Holder carries out the activation.
Step 1
- Call the
Get - Activate Card - Step One
endpoint. - When the request is carried out successfully, a
CardActivationToken
is created, which expires after five minutes. A successful response, also returns the corresponding Index numbers to the digits on the Card which must be entered to activate the Card. These are fixed for 7, 8, 9, 10, 11 and 12.
REQUEST
Name | Description |
---|---|
WalletId | The WalletId for the Wallet where the Card is being stored. |
CardId | The CardId for the Card being activated. |
SequenceNumber | Must be set to 0 for new Cards. Each time the Card is renewed, the number is updated sequentially. E.g., The Card is renewed for the first time, the value is set to 1. If it was renewed for the second time, the value would be set to 2, and so on. |
RESPONSE
{
"Content": {
"Model": {
"CardActivationToken": "<cardactivationtoken>",
"Index5": 11,
"Index6": 12,
"WalletId": 123456,
"Name": "Wallet 19",
"Card": {
"CardId": 12345678,
"MaskedPan": "5173-5200-5445-3490",
"Expiry": "2611",
"Last4Digits": "3490",
"CardState": "Inactive",
"CardHolderName": "John Doe",
"CardHolderEmail": "[email protected]",
"CardSequenceNumber": "0",
"IsRenewed": false,
"CanBeRenewed": false,
"ReissueBlocked": false,
"ReissueFailure": false,
"IsExpired": false,
"DateIssued": "2023-11-22T15:24:07.3333333",
"IsExpiring": false,
"IsBlockedByClient": false,
"IsContactless": true,
"MobileNumber": "",
"PanTypeCode": 4,
"BasePanTypeCode": 4,
"IsPrimaryPan": false,
"GpsToken": "731851671",
"CanBeAssigned": false,
"ApiStatusCode": 100,
"ApiStatus": "IsValid",
"ApiStatusDescription": "Valid Operation"
},
"Index1": 7,
"Index2": 8,
"Index3": 9,
"Index4": 10,
"TokenDurationMinutes": 5,
"ApiStatusCode": 100,
"ApiStatus": "IsValid",
"ApiStatusDescription": "Valid Operation"
},
}
}
Step 2
- Call
POST - Activate Card - Step Two
- Enter the
CardActivationToken
created in Step 1, and the missing Card digits as required.
REQUEST
{
"CardActivationToken":"<cardactivationtoken>",
"Digit1":"0",
"Digit2":"0",
"Digit3":"5",
"Digit4":"4",
"Digit5":"4",
"Digit6":"5",
"Index1":"7",
"Index2":"8",
"Index3":"9",
"Index4":"10",
"Index5":"11",
"Index6":"12"
}
RESPONSE
{
"Content": {
"Model": {
"ApiStatusCode": 100,
"ApiStatus": "IsValid",
"ApiStatusDescription": "Valid Operation"
},
"ExpectedResponses": [
"IsValid"
]
},
"AuthorisedClientModel": {
"ClientId": "<clientid>",
"ClientRef": "<clientref>",
"ApiStatusCode": 100,
"ApiStatus": "IsValid",
"ApiStatusDescription": "Valid Operation"
},
"AuthorisedUserModel": {
"UserId": "<userid>",
"AppVersion": null,
"TokenStartDate": "2023-11-01T00:00:00",
"TokenEndDate": "2023-12-01T00:00:00",
"LoginTimestamp": "2023-11-21T11:07:05.7411671",
"ApiLoginType": 0,
"ApiStatusCode": 100,
"ApiStatus": "IsValid",
"ApiStatusDescription": "Valid Operation"
}
}
2. Activate the Card via the Main Account.
Activating the Card via this method means purchases are enabled much sooner. To do this, call the POST - Activate Card by Owner
endpoint.
REQUEST
Name | Description |
---|---|
WalletId | The WalletId for the Wallet where the Card is being stored. |
CardId | The CardId for the Card being activated. |
SequenceNumber | Mustbe set to 0 for new Cards. Each time the Card is renewed, the number is updated sequentially. E.g., The Card is renewed for the first time, the value is set to 1. If it was renewed for the second time, the value would be set to 2, and so on. |
RESPONSE
{
"Content": {
"Model": {
"ApiStatusCode": 100,
"ApiStatus": "IsValid",
"ApiStatusDescription": "Valid Operation"
},
"ExpectedResponses": [
"IsValid"
]
},
"AuthorisedClientModel": {
"ClientId": "<clientid>",
"ClientRef": "<clientref>",
"ApiStatusCode": 100,
"ApiStatus": "IsValid",
"ApiStatusDescription": "Valid Operation"
},
"AuthorisedUserModel": {
"UserId": "<userid>",
"AppVersion": null,
"TokenStartDate": "2023-11-01T00:00:00",
"TokenEndDate": "2023-12-01T00:00:00",
"LoginTimestamp": "2023-11-21T11:07:05.7411671",
"ApiLoginType": 0,
"ApiStatusCode": 100,
"ApiStatus": "IsValid",
"ApiStatusDescription": "Valid Operation"
}
}
View PIN
When a Card is activated, this endpoint shows the corresponding PIN number for that Card. To
- Call the
GET - View PIN
endpoint. - A successful response returns a URL showing an image of the PIN number - when clicked.
Block/Unblock a Card
Cards may need to be blocked or unblocked, the following endpoints are available:
BLOCK - PUT - Block Card
. This endpoint blocks a specified Card. Once blocked, transactions are disabled and prevented from being carried out.
UNBLOCK - PUT - Unblock Card
. This endpoint unblocks a specified Card. Once unblocked, transactions are enabled to be carried out.
Lost or Stolen Card
In the event a Card is lost or stolen, the following endpoints are available. Cards become inactive once they are marked as lost or stolen, preventing any transactions from being carried out:
LOST PUT - Card Lost. This endpoint marks a specified Card as Lost, and assigns it the corresponding 'Lost' status.
STOLEN PUT - Card Stolen. This endpoint marks a specified Card as Stolen, and assigns it the corresponding 'Stolen' status.
List All Cards
To find all Cards within a Wallet:
- Call
GET - List Cards
. - Enter the
WalletId
.
Move a Card
To move a Card to a different Wallet:
POST - Move a Card
- Enter the
WalletId
where the Card to be moved is located. - Enter the
CardId
for the corresponding Card to move. - Enter the
WalletId
for the Wallet the Card is to be moved to.
Lookup Card Transactions
To identify Card transactions in a Pending or Settled state, call any of the endpoints listed in this section. When the value IsAuthorisation
is set to true
, the transaction is Pending and an AuthorizationNumber
is displayed. Conversely, if the value IsTransaction
is set to true
, the transaction is Settled and a ValitorTransactionId
is displayed.
1. Using CardId and WalletId
To search transactions for a specific Card within a Wallet:
- Call
POST - Lookup Card Transactions by CardId and WalletId
. - Enter the
WalletId
. - Enter the
CardId
. - Enter the
DateFrom
andDateTo
, to query a particular date range - The
TransactionHistoryTypeFilter
allows you to search for transactions that are pending using the "Transaction" filter, transactions that are settled using the "Authorisation" filter, or both using the "Both" filter. - The
TransactionTypeFilter
allows you to query a particular transaction. For more information, see Transaction Types.
2. Using CardId and Currency
A Card may have various transactions in different currencies, to search for transactions made in a specific currency:
- Call
POST - Lookup Card Transactions by CardId and Currency
. - Enter the
WalletId
. - Enter the
CardId
. - Enter a value for the number of
transactions
to retrieve. i.e. to show the four most recent transactions, enter "4". - Enter the
ccy
. This is the corresponding currency code as per ISO 4217. - Enter the
DateFrom
andDateTo
, to query a particular date range. - The
TransactionHistoryTypeFilter
allows you to search for transactions that are pending using the "Transaction" filter, transactions that are settled using the "Authorisation" filter, or both using the "Both" filter. - The
TransactionTypeFilter
allows you to query a particular transaction. For more information, see Transaction Types.
3. List Recent Card Transactions
To show recent transactions for a given Card:
- Call
POST - List Recent Card Transactions
. - Enter the
WalletId
. - Enter the
CardId
. - Enter a value for the number of
transactions
to retrieve. i.e. to show the four most recent transactions, enter "4". - Enter the
DateFrom
andDateTo
, to query a particular date range. - The
TransactionHistoryTypeFilter
allows you to search for transactions that are pending using the "Transaction" filter, transactions that are settled using the "Authorisation" filter, or both using the "Both" filter. - The
TransactionTypeFilter
allows you to query a particular transaction. For more information, see Transaction Types.
4. Receive an SMS
To keep track of purchases, an SMS can be sent out to the Card Holder. To do so, call the PUT - 3DS endpoint.
Filter Card Transactions
The following table outlines the various Transaction Types available to query any particular transactions. Each Type has an assigned value which is used to filter.
Value | Name | Description |
---|---|---|
1 | CardGroupLoads | Deposits made to the Wallet. |
2 | AtmWithdrawals | Withdrawals made via cash machine. |
3 | PosTransactions | Transactions carried out using a POS (Point of Sale). |
4 | Redemptions | Card balances that are transferred to the Main Balance. |
5 | Reversals | Refunded and/or reversed transactions by Merchant. |
6 | Fees | Describes any fees charged while using the Card. |
7 | BalanceAdjustment | Caxton fees. |
8 | SwitchBalance | Balances moved from one currency to another. |
Updated 22 days ago