Treasury API
The Treasury API enables merchants and partners to seamlessly manage treasury operations, fund movements, and card issuance, all through secure and real-time API interactions. It offers a complete toolkit for embedded treasury management and financial services delivery.
With the Treasury API, users can:
- Verify Ledger Balance and Activity
Instantly retrieve current ledger balances and review ledger activity, card loads and card debits to ensure real-time visibility over funds. - Create and Manage Debit Cards
Issue, load, debit, suspend, and reactivate virtual or physical debit cards tied to treasury accounts. - Get Transaction Reporting
Access detailed transaction reports for fees, cards, transfers, and other treasury operations to support reconciliation and compliance.
The Treasury API is built for flexibility and control, empowering programs to manage funds, support cardholders, and maintain operational transparency across treasury services.
Key Features:
- Real-time ledger balance checks and fund movement tracking
- Debit card issuance and lifecycle management
- Detailed treasury transaction reporting
- Secure, scalable, and PCI-compliant treasury operations
Ledger
The Ledger is used to facilitate the movement of money on your debit cards and payouts. When pre-funding, once a deposit has been received, it is credited to your ledger and can be used to load the cards in your program. Ledger history can be viewed when logged in the dashboard. Contact your Relationship Manager for instructions on how to fund the ledger.
Ledger Balance
The Ledger Balance API allows merchants to retrieve the current available balance in their ledger account.
The Ledger is used to manage the movement of funds related to debit cards and payouts in the program.
Main Details
| Topic | Details |
|---|---|
| Purpose | View the available balance in the treasury ledger. |
| When Used | To verify funds available before loading debit cards or issuing payouts. |
| Ledger Activation | The ledger must be set up and activated by Administration before use. |
| Funding the Ledger | Funds must be deposited into the ledger to enable usage. Contact your Relationship Manager for funding instructions. |
Endpoint Structure
- Method: GET
- Endpoint:
/v1/treasury/ledger-balance/{ledgerUuid}
Path Parameter
| Type | Description |
|---|---|
| ledgerUuid | String (UUID) Unique identifier of the merchant’s ledger account. Required to retrieve balance. |
Notes:
- Only authorized users can retrieve ledger balances.
- Ensure that the ledger has been activated by Administration before attempting API operations.
- The available balance will reflect any deposits, withdrawals, or transfers already applied to the ledger.
Debit Cards
Create Debit Card
The Create Debit Card API allows issuing a debit card linked to a treasury account and ledger.
There are two types of debit cards that can be issued:
- Virtual Cards: Created instantly and available for immediate use.
- Physical Cards: Requires prior setup of the physical card program (contact administration to enable).
Rules:
- The card must be linked to an active ledger (ledgerUuid required).
- Only Treasury Accounts are eligible to issue debit cards.
- Virtual card issuance is immediate. Physical cards require separate processing.
Endpoint Structure
- Method: POST
- Endpoint:
/v1/treasury/{treasuryAccountUuid}/issue-card
Path Parameter
| Type | Description |
|---|---|
| treasuryAccountUuid | String (UUID) Unique identifier of the Treasury Account to which the new debit card will be issued. |
Request Body Schema
| Field | Type | Description | Required? |
|---|---|---|---|
| ledgerUuid | String (UUID) | Unique identifier of the active ledger account that will fund the card. | Required |
| label | String | Friendly name or label for the issued card (e.g., “Main Expense Card”). | Optional but recommended |
Notes:
- Virtual Cards are active immediately after issuance.
- Physical Cards require additional setup, printing, and shipping. Contact your Relationship Manager or Implementation Team to complete program setup.
- You must provide a valid, activated ledgerUuid; otherwise, the request will fail.
- Cards are tied directly to Treasury accounts, not to Payments accounts.
Suspend Debit Card
The Suspend/Unsuspend Debit Card API allows merchants to block (suspend) or unblock (unsuspend) a debit card associated with their Treasury Account.
Rules:
- You can suspend or unsuspend a card.
- You can only perform one cycle (suspend and then unsuspend or vice-versa) once per card every 24 hours.
- Suspending a card temporarily blocks all transactions.
- Unsuspending a card reactivates it for transactions.
Endpoint Structure
- Method: POST
- Endpoint:
/v1/treasury/{accountUuid}/suspend-card/{cardUuid}
Path Parameter
| Type | Description |
|---|---|
| accountUuid | String (UUID) Unique identifier of the merchant’s Treasury Account. |
| cardUuid | String (UUID) Unique identifier of the debit card to suspend or unsuspend. |
Request Body Schema
| Field | Type | Description | Required? |
|---|---|---|---|
| suspend | Boolean | true to suspend (block) the card, false to unsuspend (unblock) the card. | Required |
Notes:
- You can only suspend or unsuspend once every 24 hours for a given card.
- Suspending a card stops all purchases and withdrawals immediately.
- Unsuspending a card restores its ability to make purchases and withdrawals.
- Authorization header is required for all operations.
Load Debit Card
The Load Card API allows merchants to transfer funds from their treasury ledger directly onto an issued debit card.
Rules:
- The funds must come from the ledger balance.
- The card must already exist and be active.
- The ledger must have sufficient funds to cover the requested load amount.
Endpoint Structure
- Method: POST
- Endpoint:
/v1/treasury/{accountUuid}/load-card/{cardUuid}
Path Parameter
| Type | Description |
|---|---|
| accountUuid | String (UUID) Unique identifier of the Treasury Account that owns the ledger. |
| cardUuid | String (UUID) Unique identifier of the debit card to which funds will be loaded. |
Request Body Schema
| Field | Type | Description | Required? |
|---|---|---|---|
| amount | Number | Amount to load onto the debit card. Must be greater than 0. | Required |
| description | String | Optional description or reference note for the transaction. (e.g., "Monthly allowance", "Expense top-up") | Optional but recommended |
Notes:
- Amount must be greater than zero; otherwise, the load request will fail.
- The available ledger balance must be sufficient to cover the load.
- Authorization is required (Bearer Token in the header).
- Description helps in reconciliation but is not mandatory.
Debit From Card
The Debit from Card API allows to debit (pull back) funds from an issued debit card and return the funds to their ledger balance.
Rules:
- Only available funds on the card can be debited.
- Debited funds will be immediately credited back to the ledger.
- Debit is not a refund to the customer; it is an internal transfer between the card and the ledger.
Endpoint Structure
- Method: POST
- Endpoint:
/v1/treasury/{accountUuid}/debit-card/{cardUuid}
Path Parameter
| Type | Description |
|---|---|
| accountUuid | String (UUID) Unique identifier of the Treasury Account that owns the ledger and the card. |
| cardUuid | String (UUID) Unique identifier of the debit card from which funds will be pulled. |
Request Body Schema
| Field | Type | Description | Required? |
|---|---|---|---|
| amount | Number | Amount to debit from the debit card. Must be greater than 0. | Required |
| description | String | Optional description for the debit transaction (e.g., "Return of unused funds"). | Optional but recommended |
Notes:
- Amount must be a positive value greater than zero.
- The debit amount must not exceed the current available balance on the card.
- Authorization is required (Bearer Token in the header).
- Description helps in reconciliation and tracking but is not mandatory.
Reporting
Transactions
Overview - List Treasury Transactions
These requests allow you to retrieve information about:
- All treasury transactions associated with a treasury account, or
- A specific treasury transaction by UUID.
Rules:
- You can filter the list of transactions using optional query parameters like dates, entry type (Debit/Credit), or transaction type.
- Useful for reporting, auditing, reconciliation, and transaction history tracking.
Methods and Endpoints
List All Treasury Transactions
- Method: GET
- Endpoint:
/v1/treasury/{accountUuid}/transactions
Specific Treasury Transaction
- Method: GET
- Endpoint:
/v1/treasury/{accountUuid}/transactions/{transactionUuid}
Path Parameter
| Path Parameter | Type | Description |
|---|---|---|
| accountUuid | String (UUID) | Unique identifier of the treasury account. |
| transactionUuid | String (UUID) | Unique identifier of the treasury transaction (for single transaction retrieval). |
Query Parameters for Listing Transactions
| Parameter | Type | Description |
|---|---|---|
| createdFrom | Date (YYYY-MM-DD) | Show transactions created on this date or after. |
| createdTo | Date (YYYY-MM-DD) | Show transactions created on this date or before. |
| entryType | String | Filter by "Debit" or "Credit". |
| transactionType | String | Filter by "ACH", "EFT", "Transfer", "Domestic Wire", "International Wire", "Debit Card", "Trade", "System". |
| transactionNumber | Integer | Filter by specific transaction number. |
| transactionUuid | String (UUID) | Filter by specific transaction UUID. |
Notes:
- Filtering with query parameters is optional but highly recommended for performance when listing transactions.
- If no filters are applied, all transactions for the treasury account are returned (subject to pagination if large volume).