Overview
Expense reports collect one or more expense records into a single submission unit. Users typically create a report, add eligible expenses, review totals and required fields, then submit the report for approval.Report lifecycle
Expense reports move through a lifecycle as users submit them and approvers process them:
Use
processStatus to query broad lifecycle groups:
API endpoints
Step 1: List reports
List reports for an organization byprocessStatus:
bash
include values:
Step 2: Initialize report fields
Use the report fields endpoint when your application renders the report form dynamically:bash
bash
Step 3: Add expenses to a report
A report groups expense records by ID. In a Fields-based UI, users typically select expenses through theexpenseRecords field. In JSON format, you provide the expense record IDs directly.
To list expenses that can be added to a report, use the canBeAddedToReport filter:
bash
JSON example
bash
Fields example
bash
Step 4: Manage report lifecycle
Usemeta.capabilities to decide which actions to show in your UI. Capabilities may change based on report status, organization settings, and whether the report contains validation errors.
Common capabilities include:
Update a report
Using Fields:bash
bash
Delete a draft report
bash
Step 5: Submit for approval
Submit the report when it is complete:bash
APPROVAL, and approvers can review, approve, or reject the included expenses.
Check
meta.capabilities.canBeSentIn before showing a submit button. If submission fails, the API may return validation errors that explain which expense or report field must be corrected.Retract a submitted report
If the workflow state allows it, retract a submitted report from approval:bash
meta.capabilities.canBeRetracted is true. Retracting a report returns it from the approval flow so the user can make changes before submitting it again.
Best practices
Prefer Fields for report forms
Prefer Fields for report forms
Use Dynamic Fields when users create or edit reports in your application. Report-level custom dimensions, recipient fields, and expense selection rules can vary by organization, and Fields keeps your UI aligned with those settings.
Use meta.abbreviation for list views
Use meta.abbreviation for list views
meta.abbreviation contains formatted values for dates, amounts, and labels. Use these values in report lists to match Findity’s formatting and localization.Handle rejected reports clearly
Handle rejected reports clearly
When a report is rejected, show the rejection reason and let the user edit the report or included expenses if capabilities allow it. Re-fetch the report fields before editing so you display the latest validation state.

