Wave Accounting and Tradeshift integration
Small businesses using Wave Accounting for invoicing and accounting need to share those invoices with suppliers and partners on the Tradeshift B2B network. Manually re-entering or re-exporting invoice data from Wave into Tradeshift creates errors and delays, especially as invoice volume grows. Wave and Tradeshift connected through ml-connector keeps your invoicing system and your B2B network synchronized, so new invoices and customer records created in Wave automatically reach your Tradeshift trading partners in the format they expect.
What moves between them
Invoices and customers flow from Wave into Tradeshift. When an invoice is created, updated, or paid in Wave, ml-connector captures the webhook event, retrieves the full invoice and customer details from Wave's GraphQL endpoint, maps the Wave invoice structure to UBL 2.0 format, and posts it to Tradeshift's API under your tenant. Customer records created or updated in Wave are also synced to Tradeshift as company profiles. The sync is near-real-time when webhooks fire; if webhooks are unavailable, ml-connector can poll Wave's API on a schedule. Tradeshift does not send invoice updates back to Wave, so the flow is unidirectional.
How ml-connector handles it
ml-connector handles the OAuth 2.0 flow on the Wave side, storing the refresh token encrypted and automatically refreshing the access token when it expires. It listens for Wave webhook events and verifies the HMAC-SHA256 signature in the x-wave-signature header before accepting them. On receipt of an invoice event, it queries Wave's GraphQL API to fetch the complete invoice, customer, and product details. It then maps Wave customer records to Tradeshift company profiles and Wave invoice line items to UBL line elements, preserving amounts and tax codes. The integration posts the UBL-formatted invoice to Tradeshift with the X-Tradeshift-TenantId header and OAuth 1.0a signature. If Wave webhooks are unreliable or you prefer polling, ml-connector can fetch invoices from Wave on a schedule. All records carry an audit trail, so failed Tradeshift posts can be retried. Wave Pro subscription is required for the connected business.
A real-world example
A small design studio based in the United States invoices about 20 clients per month through Wave Accounting and sells design services to enterprise clients in Europe and Asia. Those enterprise clients require invoices to flow through Tradeshift for procurement approval and AP automation. Before the integration, the studio's finance person exported invoices from Wave each week and manually recreated them in Tradeshift, a 30-minute task prone to typos in amounts or line descriptions. After Wave and Tradeshift are connected, each invoice created in Wave automatically posts to Tradeshift in UBL format within seconds, the studio's customers see them in their AP systems immediately, and the manual re-entry task disappears.
What you can do
- Sync Wave invoices to Tradeshift in UBL 2.0 format when they are created, updated, or paid.
- Map Wave customers to Tradeshift company profiles and keep them aligned when customer data changes.
- Authenticate Wave with OAuth 2.0 including access token refresh, and Tradeshift with OAuth 1.0a with tenant ID.
- Verify Wave webhook signatures (HMAC-SHA256) before processing events, and retry Tradeshift posts on failure with full audit trail.
- Optionally poll Wave's GraphQL endpoint on a schedule if webhooks are not available or preferred.
Questions
- Which direction does data flow between Wave and Tradeshift?
- The main flow is Wave into Tradeshift. Invoices created, updated, or paid in Wave are synced to Tradeshift in UBL format, and customer records are mapped to Tradeshift company profiles. Tradeshift does not send invoice updates back to Wave; the sync is unidirectional from Wave outbound.
- Does Wave's GraphQL API expose purchase orders and bills?
- No. Wave's GraphQL API does not expose bills, accounts payable, or purchase orders. The integration can sync invoices, customers, products, and transactions from Wave to Tradeshift, but not inbound supplier documents. If you need to pull supplier invoices from Tradeshift back into Wave, that flow is not supported by Wave's API.
- How does the integration handle Wave's invoice lifecycle and UBL format mapping?
- Wave invoices follow a strict state machine (created, approved, sent, deleted) and do not support patch operations. ml-connector captures these state changes via webhook, retrieves the full invoice details from Wave's GraphQL API, and maps the invoice amount, tax, line items, and customer to UBL 2.0 format for Tradeshift. The mapping preserves all financial data and uses the Wave customer record to populate the ship-to and bill-to company profiles in UBL.
Related integrations
More Wave Accounting integrations
Other systems that connect to Tradeshift
Connect Wave Accounting and Tradeshift
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started