Prerequisites
- Complete the Getting started with the Findity API guide — this walks you through obtaining your API credentials and choosing your environment.
- Configure an API report recipient in Findity Admin > Settings > Expense management > Integrations. Optionally, enter a webhook URL where Findity will send a notification when a new export is ready for download. If you cannot receive webhooks, your integration can poll the list exports endpoint on a schedule instead — see Common integration patterns for details.
- Read the Voucher structure guide to understand how expense data is grouped into vouchers.
Export lifecycle overview
The export flow follows this sequence:- An employee submits an expense report
- An approver approves the report — the expenses move by default to “Transfer” status
- An admin triggers a bulk send, which generates an export package
- Findity sends a webhook notification to your configured URL
- Your integration fetches the export and its voucher data via the API
- After processing, your integration updates the export status to confirm receipt
Step 1: List unprocessed exports
After an admin has approved and sent expenses, call the list exports endpoint to retrieve exports that have not yet been processed by your integration.
The response returns an array of export objects. Each export includes an
id that you use in subsequent steps to fetch voucher data and update the status.
→ See the List exports API reference for full request and response details.
Step 2: Fetch export details
Use the exportid from Step 1 to retrieve metadata about a specific export.
This returns details about the export, including the recipient configuration and status.
→ See the Get export API reference for full request and response details.
Step 3: Download the voucher data
This is the core step — fetch the actual financial data (vouchers and voucher rows) that your bookkeeping or payment system needs.ownerId— the user who owns the expenseexpenseReportId— the parent reportvoucherRows— line items withamount,taxAmount,account,dimension,text, andexpenseRecordId
To download a PDF with booking data and receipt images, use the
basisUrl from each voucher node and append ?format=pdf to the URL.verificationListsType configured on the recipient. Common formats include:
→ See the Voucher structure guide for a full explanation of all eight output formats.
→ See the Get export vouchers API reference for full request and response details.
Step 4: Update the export status
After your system has processed the voucher data, update the export status to confirm receipt. This prevents the export from appearing as unprocessed in future list calls. Use thevoucherId returned by the Get export vouchers response as input when calling the process export procedure.
Optional: Update export content
If you need to attach a custom file (e.g., a transformed accounting file) back to the export, use the content endpoints:Common integration patterns
Webhook-driven vs polling
Webhook-driven vs polling
Webhook-driven (recommended): Configure a webhook URL on the API recipient. Findity sends a notification when a new export is ready, and your integration fetches and processes it immediately. This minimizes latency and avoids unnecessary API calls.Polling: If you cannot receive webhooks, poll the list exports endpoint on a schedule (e.g., every 15 minutes) to check for new unprocessed exports. Filter by unprocessed status to avoid re-fetching completed exports.
Idempotent processing
Idempotent processing
Design your integration to handle the same export being fetched more than once. Use the
exportId as a unique key in your system to detect and skip duplicates. This protects against network retries or webhook redeliveries.PDF receipt archival
PDF receipt archival
For each voucher, append
?format=pdf to the basisUrl to download a PDF containing the booking data and receipt images. Store these alongside the voucher data in your system for audit purposes.
