Wave Accounting and Stampli integration
Wave Accounting handles invoicing and bookkeeping for small businesses. Stampli automates accounts payable from invoice capture through payment. Connecting the two lets you capture vendor invoices in Stampli, approve them through workflow, and have the approved transactions post automatically into Wave's general ledger without manual re-entry. Stampli's AI speeds up invoice processing and approval, while Wave stays the source of truth for your chart of accounts and financial reporting.
What moves between them
Approved invoices, vendor records, and purchase orders flow from Stampli into Wave Accounting. ml-connector polls Stampli's SFTP export directory every 15 minutes for new invoice files, parses them, and creates transactions in Wave's chart of accounts mapped to the corresponding expense accounts. Vendor records and GL account dimensions are synchronized to keep vendor data and account structures aligned. Payments exported from Stampli are recorded in Wave. Payment and invoice data flows one direction only, from Stampli into Wave, since Wave serves as the source of truth for financial reporting.
How ml-connector handles it
ml-connector maintains encrypted SFTP credentials for Stampli and OAuth tokens for Wave. It polls Stampli's outbound SFTP directory on a 15-minute interval, downloads CSV or XML files containing approved invoices and payments, and deduplicates records by comparing file names and transaction identifiers against prior syncs. Each invoice is mapped to the correct GL account in Wave based on the Stampli vendor and expense category, then inserted as a transaction via the GraphQL API using Wave's OAuth token. If the token expires, ml-connector refreshes it automatically. Vendor records and GL dimensions are synced first so that every invoice lands on a valid Wave account. Stampli's export files are retained for audit purposes. ml-connector retries failed SFTP or GraphQL calls with exponential backoff, tracks all records in its audit log, and surfaces sync errors through alerts so you know immediately if a file is waiting or a batch failed. Because Wave invoices do not support patch operations, corrections are handled as delete-and-reinsert via the GraphQL mutation, with full audit visibility.
A real-world example
A small business uses Wave Accounting for invoicing and general ledger, and adds Stampli to automate vendor invoice processing. Before the integration, the accounts payable clerk captured invoices manually into Wave and reconciled vendor statements by hand, a process that consumed hours each week. With Stampli and Wave connected, vendor invoices are captured in Stampli, approved through the configured workflow, and posted automatically to Wave's GL without re-keying. The AP clerk now focuses on vendor inquiry resolution and payment strategy rather than data entry, and month-end close starts with invoices already recorded and categorized.
What you can do
- Sync approved vendor invoices from Stampli into Wave as transactions, mapped to the correct expense accounts.
- Keep Wave's vendor master aligned with Stampli's vendor records.
- Automatically record Stampli payments as Wave transactions, categorized to the right GL accounts.
- Authenticate Wave with OAuth 2.0 and Stampli with SFTP, with automatic token refresh and full encryption of credentials.
- Poll Stampli on a 15-minute interval, deduplicate records, and maintain a complete audit trail of every invoice and payment posted.
Questions
- Which direction does data move between Wave and Stampli?
- Approved invoices, vendor records, and payments flow from Stampli into Wave Accounting. Wave serves as the source of truth for your general ledger and financial reporting, so ml-connector does not write changes back to Stampli. Corrections to invoices are handled as delete-and-reinsert in Wave with full audit visibility.
- Does Wave require an active subscription for the integration to work?
- Yes. The connected business must have an active Wave Pro subscription for API access. Wave publishes webhooks for invoice and payment events, but ml-connector uses those primarily for visibility. The main sync is triggered by the 15-minute polling interval from Stampli's SFTP export directory, so the integration does not depend on webhook delivery reliability.
- How does ml-connector handle deduplication and failed syncs?
- ml-connector deduplicates invoices and payments by comparing file names and transaction identifiers against prior sync records, and retries failed SFTP or GraphQL calls with exponential backoff. All records are tracked in the audit log, and sync errors surface through alerts so you are notified immediately if a batch fails or a file is waiting.
Related integrations
More Wave Accounting integrations
Other systems that connect to Stampli
Connect Wave Accounting and Stampli
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started