Fund your Issued Cards
Make funds available for card usage, based on how your cards are configured.
Once a card is issued, it must have access to funds before it can be used for transactions.
How funding works depends on the card type:
Transactions draw funds directly from the linked account balance in real time. Ensure the account has sufficient funds before usage.
Cards must be pre-funded before use. Funds are loaded onto the card and deducted from the source account.
Issue a virtual card already loaded with a balance to a saved contact. The amount is sent as a
VIRTUAL_CARDtransaction and the card is delivered to the contact's email.
Scenarios
Card funding follows the path that matches the card type. Prepaid cards are loaded and unloaded with a BOOK transfer between an account and the card. Debit cards draw from their linked account, so you fund that account with a BOOK transfer. Virtual cards are issued already loaded with a balance using a VIRTUAL_CARD transaction to a saved contact.
sequenceDiagram
participant App as Your Application
participant PCE as PCE
participant Src as Source (Account or Card)
participant Dest as Destination (Account or Card)
App->>PCE: POST /v1/customer/id/{id}/transaction (method: BOOK)
PCE->>PCE: Validate balances and status
PCE->>Src: Debit source
PCE->>Dest: Credit destination
PCE-->>App: 201 (Transaction created)
PCE-->>App: Webhook (COMPLETED)
Note over Dest: Balance updated, funds available
Before you begin (all scenarios)
- Source (account or card) has sufficient balance.
- Destination (account or card) is in
ACTIVEstatus. - Customer has completed KYC verification.
Scenario 1: Load funds to a Prepaid card
Use this scenario to add funds to a prepaid card before the cardholder can use it for purchases.
Business Context: A business issues prepaid cards to its employees. Before an employee can use their card for a business trip, the finance team loads $1,500.00 for estimated travel expenses.
You'll also need: Prepaid card is issued and in ACTIVE status, source account has sufficient balance.
Request
POST /v1/customer/id/48201/transaction
{
"externalId": "load-exp-card-2026-001",
"method": "BOOK",
"amount": "1500.00",
"purpose": "Employee travel expense allocation - Q3 2026",
"source": {
"account": {
"id": "88712"
}
},
"destination": {
"card": {
"id": "55903"
}
}
}The prepaid card balance is now $1,500.00 and the employee can make purchases up to that amount.
Scenario 2: Unload funds from a Prepaid card
Use this scenario to move unused funds back from a prepaid card to the source account, typically before cancelling the card or when an employee returns from a trip with unspent funds.
Business Context: An employee returns from a business trip with $372.50 unspent on their prepaid expense card. The finance team unloads the remaining balance back to the corporate operating account.
You'll also need: Card has sufficient balance to unload, destination account is ACTIVE, card is not frozen.
Request
POST /v1/customer/id/48201/transaction
{
"externalId": "unload-exp-card-2026-001",
"method": "BOOK",
"amount": "372.50",
"purpose": "Return unused travel funds - John Smith Q3 trip",
"source": {
"card": {
"id": "55903"
}
},
"destination": {
"account": {
"id": "88712"
}
}
}The $372.50 is removed from the prepaid card and returned to the company's account.
Scenario 3: Fund an account for Debit card usage
Use this scenario to transfer funds to the account linked to a debit card, ensuring the cardholder has available balance for transactions.
Business Context: A business needs to ensure an employee's debit card has sufficient funds for a business trip. It transfers $5,000 from the company's operating account to the employee's linked account.
You'll also need: Source account has sufficient balance, destination account is ACTIVE and linked to a debit card.
Request
POST /v1/customer/id/{customerId}/transaction
{
"externalId": "fund-account-001",
"method": "BOOK",
"amount": "1000.00",
"purpose": "Fund debit card account",
"source": {
"account": {
"id": "4011850"
}
},
"destination": {
"account": {
"id": "4011856"
}
}
}The employee's debit card can now authorize transactions up to the available account balance.
Scenario 4: Fund a Virtual Card for a Contact
Use this scenario to issue a virtual card that is already loaded with a balance and delivered to a saved contact's email. Unlike prepaid load/unload, this uses the VIRTUAL_CARD method: the card is created, funded, and delivered in a single transaction.
Business Context: A platform issues a $50.00 virtual card to a contractor saved as a contact so they can cover a specific expense. The card is emailed to the contractor preloaded with the amount, ready to spend.
You'll also need: the payee saved as a contact with an email, and the cardProgram.id for your virtual-card program.
Request
POST /v1/customer/id/48201/transaction
{
"externalId": "vcard-load-2026-001",
"method": "VIRTUAL_CARD",
"type": "REGULAR",
"amount": "50.00",
"purpose": "Contractor expense - virtual card",
"source": {
"account": {
"id": "88712"
}
},
"destination": {
"contact": {
"id": "4013552"
}
},
"processingDetail": {
"virtualCard": {
"cardProgram": {
"id": "2590"
}
}
}
}The virtual card is issued with a $50.00 balance and delivered to the contact's email.
Funding Debit cards
Debit cards do not require a separate funding step at the card level. Instead, you need to ensure that the linked account has sufficient balance.
Move funds between entities within the platform using the BOOK method. This is typically used to:
- Allocate funds across accounts
- Instantly make funds available for debit card usage
Use the POST /v1/customer/id/{id}/transaction API to add funds to the account linked to the card.
| Parameter | Required | Value |
|---|---|---|
method | ✓ | BOOK |
source.account.id | ✓ | Account to be debited |
destination.account.id | ✓ | Account to be credited |
amount | ✓ | Amount to be transferred |
Funding Prepaid cards
Prepaid cards require explicit funding before they can be used. You manage the card balance using two operations:
Load funds to a Prepaid card
Add funds to a prepaid card using the POST /v1/customer/id/{id}/transaction API, along with following key parameters:
| Parameter | Required | Value |
|---|---|---|
method | ✓ | BOOK |
source.account.id | ✓ | Account to be debited |
destination.card.id | ✓ | Card to be credited |
amount | ✓ | Amount to load |
Funds are deducted from the account and made available on the card.
Unload funds from a card
Move unused funds back to the account using the POST /v1/customer/id/{id}/transaction API, along with following key parameters:
| Parameter | Required | Value |
|---|---|---|
method | ✓ | BOOK |
source.card.id | ✓ | Card to be debited |
destination.account.id | ✓ | Account to be credited |
amount | ✓ | Amount to unload |
Funds are removed from the card and returned to the account.
Funding Virtual cards
Virtual cards are funded at the moment of issuance. A VIRTUAL_CARD transaction debits your Passport Account and issues a virtual card, preloaded with amount, to a saved contact. The card is delivered to the contact's email, so the contact must be saved with a valid email first (see Save a payee's email for virtual cards).
Use the POST /v1/customer/id/{id}/transaction API with the following key parameters:
| Parameter | Required | Value |
|---|---|---|
method | ✓ | VIRTUAL_CARD |
amount | ✓ | Amount to load onto the virtual card |
source.account.id | ✓ | Passport Account to be debited |
destination.contact.id | ✓ | Saved contact (must have an email) who receives the card |
processingDetail.virtualCard.cardProgram.id | ✓ | Virtual-card program the card is issued under |
processingDetail.location.id | Optional | Location to associate with the transaction |
The contact must have a valid
Next steps
See also
- Issuing a Card: issue the card before funding it
- Save Payees as Contacts: save the email a Virtual Card is delivered to
- Monitor Ledger & Transactions: reconcile funding entries
Updated 7 days ago
