Table of Contents

ProSpend's Open API allows integrated card providers to send card transactions directly into ProSpend, without a daily file feed. Once received, transactions appear in the Card Transactions page and can be imported as expenses and claims for cardholders. This guide walks through the full setup and flow - from configuring a Card Program to viewing imported transactions.
Before you begin
Two things need to be in place before any transactions can be sent or processed. Both are admin tasks done inside ProSpend.
A Card Program must exist
Card Programs define the source and configuration for a card feed. Every transaction sent via the API must reference a valid Card Program code.
Set one up in Step 1 below →
Bill Cycles must be configured
Bill Cycles define the statement periods your transactions will be grouped into. Transactions without a matching bill cycle cannot be correctly assigned to a period.
Set them up in Step 2 below →
Step 1 - Create a Card Program
A Card Program acts as the configuration anchor for your card feed. It tells ProSpend what type of card is being used, and - crucially for the API - what Card Program Code to expect on incoming transactions.
Where to find it
Go to Treasury > Card Program Setup in the navigation menu. From here you can view, create, and manage all card programs. Please reach out to your account manager for this to be enabled in your ProSpend instance.
Creating a new program
Click Add to open the creation form. Fill in all the mandatory field and save the changes. Once saved, the program will appear in the list with an Active status. You can deactivate or archive it later without losing data.
Full Card Programs documentation
Step 2 - Set up Bill Cycles
Bill Cycles define the billing periods for your Card Program - essentially the statement windows that transactions fall into. Each Card Program maintains its own independent set of bill cycles.
How to access Bill Cycle Management
From the Card Program list, click the Manage Bill Cycles. This opens the Bill Cycle Management page for that specific program.
Creating bill cycles
Click Add New Bill Cycle in the top right. You can create cycles one at a time or in bulk -
- Monthly - generates cycles based on a monthly date range. The system handles months with fewer days and weekend date adjustments automatically.
- Weekly - generates 7-day cycles from a chosen start date.
Before saving, use the Preview option to review the generated periods, check for date continuity, and catch any gaps or overlaps before they're committed.
Bill cycle statuses
Each cycle is tracked with one of three statuses -
- Open - the current active billing period
- Scheduled - future billing periods created in advance
- Closed - completed periods
Create bill cycles ahead of time for future periods. Bulk creation lets you generate several months at once - future cycles are automatically set to Scheduled status.
The system validates cycles as you go - blocking overlapping periods and flagging gaps with visible warnings. Only Open and Scheduled cycles can be edited after creation.
Full Bill Cycle Management documentation
Step 3 - Send transactions via the Open API
With the Card Program and bill cycles in place, your integration can begin posting transactions to ProSpend.
Endpoint
POST /beta/company/{id}/transaction
Key fields
The following fields are supported in the transaction payload -
| Field | Description | Optional |
| transactionId | Unique identifier of the transaction as provided by the external card or banking provider. It is used for duplicate checking for the transactions within the same card program. | |
| transactionDate | Date when the transaction occurred on the card/bank account (purchase date). | |
| postingDate | Date when the transaction was posted/settled by the card or banking provider. | |
| merchantName | Name of the merchant where the transaction occurred, as provided by the card or banking provider. | |
| mcc | Merchant Category Code associated with the transaction. | |
| transactionAmount | Monetary amount of the transaction in the billing (card) currency; includes sign (positive/negative). | |
| currencyCode | ISO 4217 currency code in which the transaction is billed (e.g. “AUD”, “USD”). | |
| foreignCurrencyAmount | Monetary amount of the transaction in the original purchase currency (if different from the billing currency). | Yes/Required if foreignCurrencyCode is present |
| foreignCurrencyCode | ISO 4217 currency code for the original transaction currency (e.g. “EUR” if the card is billed in AUD but the purchase was in EUR). | Yes/Required if foreignCurrencyAmount is present |
| cardHolderName | Name of the card holder associated with the card used for this transaction. | |
| cardId | Internal identifier of the card within ProSpend. | Yes |
| cardSuffix | Masked or partial card number (last 6 digits) identifying the specific card. | |
| externalCardId | Identifier of the card as provided by the external provider. | Yes |
| transactionStatus |
Status of the transaction in the external provider’s lifecycle. Valid statuses - COMPLETED |
|
| cardProgramCode | Code identifying the card program within ProSpend. Reach out to ProSpend for more information on this. | |
| cardProgramType | Type/category of the card program (e.g. “AMEX”, “”Visa", “MasterCard”, etc.), used to distinguish different provider/program behaviours. Reach out to ProSpend for more information on this. |
Duplicate detection - ProSpend deduplicates transactions using a combination of transactionId and cardProgramCode. This means the same transaction ID can safely exist across multiple card programs without conflict.
Validation errors - All required fields are validated on submission. Descriptive error responses are returned for missing or invalid data - review these in your integration logs to diagnose issues quickly.
Step 4 - View transactions in ProSpend
Transactions sent via the API are stored in the Card Transactions page (previously called Virtual Card Transactions). This page has been updated to support multiple card program types in a single view.
Where to find it
Navigate to the Card Transactions page from the main menu. If your site has multiple card program types configured, you'll see a Select Card Program Type dropdown at the top - select the relevant type to filter the transaction list. If only one type exists, it will be selected automatically.
What you'll see
Transactions sent via the Open API appear alongside any Wise Virtual Card transactions. The page currently shows Wise transactions and transactions imported via Open API. Filters and available actions adapt based on the selected card program type - for most API-sourced card programs, standard filters apply and the Export CSV action is available.
Filter values are retained when you switch between card program types, so you won't lose your search context when toggling views.
Card Transactions page details
Step 5 - Import transactions
Transactions in the Card Transactions page are automatically converted into card claims. The transaction import service processes the transactions and creates the corresponding card claims for cardholders to review and submit.
How importing works
Once transactions are visible in the Card Transactions page, the import service matches each transaction to a cardholder, links it to the correct bill cycle, and creates a card claim. The cardholder can then complete, code, and submit the claim through the normal expense workflow.
Bill cycles must cover the posting date (transaction date if posting date isn't present). If a transaction's date falls outside any configured bill cycle for the Card Program, it cannot be correctly assigned. Make sure bill cycles are created and current before transactions arrive.
Card Transactions Import Service details
Step 6 - Assign claims to cardholders
After transactions are imported, ProSpend attempts to match each card claim to a known cardholder. If a card has been seen before, it will be linked automatically. If the card is new to the system, the claim will remain unlinked until an admin assigns it.
Where to manage this
Go to Claims > Bill Cycle. The Bill Cycle list shows all statement periods, with the current period marked as Open and previous periods as Closed. Any period with unlinked claims will show an Unlinked Claims count - click into the relevant bill cycle to review them.
Assigning an unlinked claim
When a transaction arrives for a card ProSpend hasn't seen before, the system creates a claim but cannot determine who it belongs to. Inside the bill cycle, these claims appear with a Please Assign option. Click it to select the correct claimant from your user list.
Once a claim is assigned, ProSpend creates a card record for that claimant in their profile. All future transactions from the same card will be linked to them automatically - you only need to assign a card once.
New card email notifications
ProSpend can notify nominated payers or admins by email when a transaction arrives for an unrecognised card. To enable this, go to the relevant user's profile as an admin, scroll to the bottom of the screen, and tick Card Management Emails, then save.
Closing the bill cycle
Once all transactions for a statement period have been imported and all claims are assigned, close the bill cycle from the Bill Cycle page. Closing it sends an email to all claimants in that cycle, letting them know they can now complete coding and submit their claims for approval. Claimants can access and work on their claims at any time, but cannot submit until the bill cycle is closed.