Table of Contents

Card Programs
I. Overview
Card Programs is a new functionality in ProSpend that will eventually centralises all card feed ingestion, configuration, mapping, and transaction processing. Every card feed - regardless of the source - will eventually be linked to a Card Program that defines how transactions should be interpreted and how expenses/claims should be automatically created.
Each card program will have the below details -
- A financial institution or a card provider
- Connection details
- Statement periods
- Cardholders
- Transactions
II. High-Level Features
Feature |
Description |
|---|---|
Card Program List View |
A centralised view to easily track, search, and manage all card programs |
Create Card Program |
Setup a new card program with predefined configurations |
Edit Card Program |
Update details such as Type, Card Program Name and Code etc. |
Enable / Disable Program |
Control whether a program is active for use |
Archive / Restore Program |
Safely remove or reinstate programs without data loss |
Manage Bill Cycle |
Access and manage bill cycles directly from the selected card program via a dedicated Bill Cycle Management Page |
III. Feature Details
A. Card Program List View
- Accessible under Treasury > Card Program Setup in the navigation menu
- Displays all card programs in a table list view
- Search bar filters results in real time using keyword matching (e.g. name, account/card number)
- “Active Only” toggle filters the list to card programs with Active status
- Supports pagination with page size options 30, 60, 120
- When users navigate away and return, the view resets to default state (first page, all items, filters cleared)

B. Create / Edit Card Program
Card program details are managed via a form/modal opened from the list (e.g. Add or Edit actions)


- Type options are restricted to:
- AX - American Express
- MC - MasterCard
- OFX - Company Card
- VS - Visa
- WVC - Wise Virtual Card
- Regarding Card Program Code -
- For transactions received via daily feed (MasterCard, Visa and AMEX corporate cards), the card program code should match what’s present in the Reference column in the bill cycles section.

- For transactions received via open API, the card program code should match with what’s passed in the transaction payload.
- For transactions received via daily feed (MasterCard, Visa and AMEX corporate cards), the card program code should match what’s present in the Reference column in the bill cycles section.
- Validation prevents duplicate card programs per (Type + Card Program Code) combination
C. Activate / Deactivate Program
- From the Edit Modal, admins can Deactivate / Re-activate a card program.
- From the Actions menu, admins can Deactivate / Re-activate a card program.
- Deactivated programs are indicated via the Status column and remain visible in the list.
E. Archive / Restore Program
- From the Actions menu, admins can Archive / Restore a card program (for non-deleted, archived records).
- Archived card programs still appear in their dedicated/filtered view, allowing admins to restore if needed.
Card Programs - Bill Cycle Management
I. Overview
Bill Cycle Management allows users to define and manage billing periods for each Card Program. These billing cycles determine how transactions are grouped, reported, and processed within a specific time frame.
Each Card Program maintains its own set of bill cycles, ensuring accurate financial tracking and alignment with provider billing schedules.
How It Works (Simplified)
- User selects a Card Program
- Clicks Manage Bill Cycle action button
- System opens Bill Cycle Management page for that program
- User can -
- View existing cycles
- Add new cycles
- Edit future cycles
- System validates cycles for -
- Gaps
- Overlaps
- Invalid durations
II. High-Level Features
Feature |
Description |
Bill Cycle List View |
A centralised view to track all bill cycles for a selected card program |
Status Tracking |
View bill cycle status (Open, Closed, Scheduled) |
Create Bill Cycle |
Generate new billing periods based on defined frequency and dates |
Bulk Create Bill Cycles |
Automatically generate multiple bill cycles in sequence based on defined frequency |
Edit Bill Cycle |
Modify future or scheduled bill cycles |
Validation & Alerts |
Detect gaps, overlaps, and invalid bill cycle configurations |
III. Feature Details
A. Bill Cycle List View
The Bill Cycle List View provides a structured overview of all billing periods associated with a specific Card Program.

Key Capabilities
- Program-Specific View
- Displays bill cycles for the selected card program only
- At-a-Glance Information
Each row includes -- Bill Cycle Period (Start to End Date)
- Status
- 🟢 Open - Active billing period
- 🔵 Scheduled - Future billing period
- ⚪ Closed - Completed billing period
- Unlinked Claims
- Total Number of Claims
- Created Date
- Smart Default Date Filtering
- By default, the system displays bill cycles from -
- Previous 3 months
- Up to the next 3 months
- This ensures users can immediately see -
- Recent activity
- Current billing cycle
- Upcoming scheduled cycles
- By default, the system displays bill cycles from -
- Status Filtering
- Filter by -
- Open
- Closed
- Scheduled
- Filter by -
- Quick Actions
- Edit bill cycle (for eligible records)
B. Create and Bulk Create Bill Cycles
Users can create bill cycles for a selected Card Program by clicking the Add New Bill Cycle Button at the top right of the page.
Outcome -
- System will show preview of Bill Cycles
- System creates sequential billing periods
- Future bill cycles can be created in bulk and will be automatically set to “Scheduled” status.
1. Monthly Bill Cycle Creation


- The system generates bill cycles based on monthly date ranges
- Each cycle follows the selected start date pattern
- Example -
Start Date - 01 Mar 2026
Number of Bill Cycles - 3
Generated cycles include -- 01 Mar 2026 - 31 Mar 2026
- 01 Apr 2026 - 30 Apr 2026
- 01 May 2026 - May 31, 2026
- Handling Months with Fewer Days
If the selected start date falls on a day that does not exist in a given month (e.g., 29th, 30th, or 31st), the system will -- Automatically adjust to the next available valid date
- Continue generating cycles from the adjusted date onward
- Example
Start Date - 31 Jan 2026
If billing day falls on a weekend - Move to next business day (Monday)
Number of Bill Cycles - 4
Generated cycles may include -- 31 Jan 2026 - 02 Mar 2026 (adjusted as February has no 31st; 01 March 2026 is a Sunday)
- 03 Mar 2026 - 30 Mar 2026 (continues from adjusted date)
- 31 Mar 2026 - 30 April 2026 (adjusted as April has no 31st)
- 01 May 2026 - 01 Jun 2026 (30th of May is a Saturday, next business day is 01 Jun 2026)
2. Weekly Bill Cycle Creation

- System generates bill cycles in weekly intervals
- Each cycle covers a 7-day period based on the selected start date
- Weekend handling is not supported
- Example -
Start Date - 01 Mar 2026
Number of Bill Cycles - 4
Generated cycles include -- 01 Mar 2026 - 07 Mar 2026
- 08 Mar 2026 - 14 Mar 2026
- 15 Mar 2026 - 21 Mar 2026
- 22 Mar 2026 - 28 Mar 2026
3. Weekend handling
- Determines how bill cycle dates are adjusted when they fall on a weekend
- Example -
Start Date - 01 May 2026
Number of Bill Cycles - 3
Generated cycles include -- 01 May 2026 - 01 Jun 2026 (31 May 2026 is a Sunday)
- 02 Jun 2026 - 30 Jun 2026
- 01 Jul 2026 - 31 Jul 2026
4. Preview Before Creation
- Before bill cycles are created, users can select Preview to review the generated bill cycles.

- This allows users to -
- Confirm the generated periods
- Check date continuity
- Review weekend-adjusted dates before saving
- Review gaps and errors in validation (Please see Validation & Alerts for more details)
- After Creating the Bill Cycles
Once the user confirms creation -- Newly created bill cycles will -
- Immediately appear in the Bill Cycles List View
- Be highlighted in green to indicate newly created records
- Newly created bill cycles will -

C. Edit Bill Cycle
Users can update bill cycles directly from the Bill Cycle List View using the edit action

- Only the following bill cycles can be edited -
- 🟢 Open
- 🔵 Scheduled
- Validation on Edit
- When updating a bill cycle, the system validates -
- No overlapping periods with existing cycles
- Valid date range (start date must be before end date)
- When updating a bill cycle, the system validates -
- History Tracking
- Changes made to a bill cycle are recorded and available for review

D. Validation & Alerts
To help maintain accurate and continuous billing periods, the system automatically validates bill cycle data during creation and update. These checks are designed to help users identify potential issues early, while also providing visibility into any date adjustments made by the system.
Errors
1. Invalid Date Range (Start Date vs End Date)
- The system will block creation or update if -
- The start date is later than the end date, or
- The end date is earlier than the start date
Example -- Start Date - 01 Mar 2027
- End Date - 19 Feb 2027

2. Overlapping Periods
The system prevents creation or update of bill cycles that overlap with any other bill cycle periods. This validation ensures that each date belongs to only one bill cycle, maintaining accurate transaction grouping and reporting.

When users perform bulk creation, the system also validates overlaps within the preview of generated cycles before creating

Warnings
Warning alerts highlight potential issues in bill cycle configuration that do not prevent creation, but should be reviewed by the user.
1. Bill Cycle Exceeds Expected Duration (31 Days)
- The system checks whether a bill cycle exceeds the expected duration for a monthly cycle.
Trigger Condition -- A bill cycle is longer than 31 days
Example -
- A bill cycle is longer than 31 days

2. Gap in Bill Cycle Continuity
- The system checks whether there are gaps between consecutive bill cycles.
- A yellow dashed line is shown between the affected bill cycles
- Indicates a break in continuity
- Visible in -
- Preview Modal (Draft cycles)

Bill Cycle List View (Existing cycles)

Information
Info alerts provide visibility into automatic system adjustments as well as manual updates made by the user. These alerts are informational only and do not indicate errors. They help users understand how the final bill cycle dates were determined.
Examples of Info Scenarios
- Start date moved because the selected day does not exist in the month
- End date adjusted due to weekend handling
- User updates start date during edit
- User modifies end date to correct period coverage
- User adjusts generated dates after reviewing preview

Combination of Alerts (Priority Handling)
In some scenarios, multiple validation results may apply to the same bill cycle (e.g., error, warning, and info). To ensure clarity and avoid overwhelming users, alerts are displayed based on priority hierarchy, while still preserving full visibility through tooltips.
Alerts are displayed in the following order of importance -
- Error (Highest Priority)
- Warning
- Info (Lowest Priority)
Card Transactions Updates (Previously Virtual Card Transactions)
I. Overview
The Card Transactions Page is an enhanced and redesigned version of the existing Virtual Card Transactions page.
This update introduces -
- Support for multiple card program types
- Dynamic filtering behaviour based on card program type
II. High-Level Features
Feature |
Description |
|---|---|
| Re-designed Virtual Card Transactions Page | Improved version of the existing Virtual Card Transactions page with enhanced UI Design |
| Dynamic Filter Rendering | Filters dynamically adjust based on the selected card program type (e.g., WVC vs AMEX) |
Filter Persistence |
Retains applicable filter values when users switch between card program types |
Dynamic Action Buttons |
Displays relevant action buttons (Export, Import, Sync) depending on the selected card program |
III. Feature Details
1. Re-designed Virtual Card Transactions Page
This is the existing Virtual Card Transactions Page

This is the re-designed page -
- Virtual Card Transactions Header has been renamed to Card Transactions.
- Filter Layout and Pagination has also been updated.

2. Dynamic Filter Rendering
Card Program Type Selection
The Card Transactions Page supports multiple card program types, allowing users to switch between different transaction sources.
- When multiple card program types are available in a ProSpend site -
- The system displays a “Select Card Program Type” placeholder on loading the page -

- When only one card program type exists -
- The system automatically selects the available value
- The selected card program type drives -
- Available filters
- Visible actions
- Transaction results
The filter section dynamically adapts based on the selected card program type, ensuring users only see relevant fields.
When WVC (Wise Virtual Card) is selected -
Additional filters are displayed -
- Status
- Card Type
- Decline Reason

When other card program types are selected, only standard filters are displayed
Filter Persistence
The system maintains a smooth user experience by preserving filters where applicable.
- When users change the Card Program Type -
- The system retains applicable filter values
3. Dynamic Action Buttons
Actions available on the page depend on the selected card program type.
Standard Actions (All Card Programs) -
- Export CSV

WVC-Specific Actions -
- Sync Transactions
- Import Transactions

Note - this report currently shows only Wise transactions and transactions imported via Open API.
Card Transactions Import Service
I. Overview
The Card Transaction Processing Service is responsible for handling the import of card transactions as expenses within the system.
This service will eventually manage the importing, validation, processing, and transformation of transaction data received from multiple sources such as card providers, third-parties, and WVC (Wise Virtual Card) integrations.
Its core responsibilities include -
- Transaction data is validated, with checks to ensure received transactions are not duplicated under the same card program
- Assigning transactions to users
- Creating corresponding expense records
- Linking transactions to billing statements
- Managing transaction statuses and exceptions
II. High-Level Flow
- The service receives transaction data from configured sources such as card providers, external integrations, or Wise Virtual Card (WVC) platform.
- Each transaction is validated to ensure the required information is available for processing.
- The system attempts to identify and match the transaction to an existing card program.
- If a valid match is found, the transaction is processed into ProSpend as an expense record
- Where applicable, the transaction is aligned to a billing cycle
- If the transaction cannot be fully processed, it is flagged for manual resolution, allowing users to complete missing details.
- Once completed, the transaction becomes available for operational use, including expense management and reporting.
III. Email Notifications for Unsuccessful Processing
When a transaction cannot be successfully processed during import, the system triggers an automated email notification to inform relevant users and guide them on the required next steps.
Email Template -
Hi [First Name] [Last Name],
A transaction failed during the import process for (Claimant) [First Name] [Last Name]:
Card ID: XXXXX (if available)
Transaction ID: 874231
External Transaction ID: TXN-100234
Transaction Time: 15 MAR 2026 HH:mm timezone
Posting Date: 15 MAR 2026
Amount: 85.50 AUD[Failed reasons and required actions]
Regards,
ProSpend TeamNote: Do not reply to this email as this is from an automated email address which is not monitored.
Sample -

Failure Reason and Required Actions
1. Bill Cycle
Failure reason -
Bill cycle not found for posting/transaction date.
Required action -
Create the bill cycle for the period and retry the import.
2. Card Suffix
Failure reason -
Card suffix does not match the transaction.
Required action -
Please verify the card number matches the transaction’s card suffix.
3. Workflow
Failure reason -
No workflow configured for claimant.
Required action -
Configure the claimant’s workflow and retry the import.
4. Generic
Failure reason -
Unexpected backend processing error.
Required action -
Retry. If issue persists, contact support with Transaction ID.
Notification Type Preference
The “Card Transaction Import Error Emails” notification is available in Notification Type Preference Settings. Only users with the following roles can access and configure this -
- Admin
- Payer
Email notifications will be sent only to -
- Users with Admin or Payer roles, and
- Users who have opted in to receive this notification