# Wave — Accounting API: overview

> Canonical URL: https://developers.apideck.com/apis/accounting/wave/overview

Free accounting and invoicing software for small businesses. Includes invoicing, accounting, receipt scanning, and financial reporting.
- Status: beta
- Authentication: oauth2

- **account type required:** A Wave business in the US or Canada with an active Pro or Advisors subscription. Testing your own app against your own account needs neither.
- **supported resource categories:**   - **name:** Core Financial
  - **resources:** ledger-accounts
tax-rates
company-info
balance-sheet
profit-and-loss
  - **resources:** invoices
invoice-items
customers
  - **name:** Accounts Receivable
  - **resources:** suppliers
  - **name:** Accounts Payable
  - **name:** Banking
  - **resources:** bank-accounts
bank-feed-statements
- **environment notes:**   - **description:** Testing and production share one Wave host and one credential shape, because Wave runs no sandbox. To test: create a free Wave account and add as many test Businesses as you need — a Starter account exposes the same API surface as Pro — or request Apideck temporary shared test credentials at https://help.apideck.com/en/articles/7774658.
  - **environment:** Single environment
  - **description:** Set a VPN to the US or Canada and use an email address you have not tried before, then create the business as US-based with USD as its currency. Getting this wrong on the first attempt tags the address permanently, and no later attempt from that address succeeds. If you are already blocked, Wave can unblock addresses manually on request.
  - **environment:** Signing up from outside North America
  - **description:** A test Business sits in the same Wave account as any real books you keep there, and the Business ID is the only thing separating them at connection time. Check which one you have connected before writing.
  - **environment:** Caution
- **apideck credentials available:** false
- **difficulty reason:** Self-Service OAuth App + Wave Approval Required to Distribute
- **authentication note:** Authorization Code flow. Wave's API is GraphQL-only, and each connection also needs the consumer's Wave Business ID.
- **partnership required:** false
- **difficulty:** moderate
- **beta:** true
- **rate limits:** Wave publishes no rate limits; its documented error codes include no throttling or rate-limit code.
- **sandbox available:** false
- **sandbox note:** A free Starter account is a sufficient test environment and exposes the same API surface as Pro; Wave runs no sandbox.
- **apideck credentials note:** Register your own Wave application and add its Client ID and Secret to Apideck.
- **webhooks:** No webhooks — none surfaced by this connector, so poll for changes.
- **costs:** Wave charges no API access fees and commits to advance notice before introducing any. The subscription requirement sits on the connecting business, not you.
- **consumer access level:** Any user with access to the business can authorise the connection; Wave publishes no role requirement.
- **important to know:** A live connection can break with nothing changing on your side. If a connected business's Wave Pro or Advisors subscription lapses, the next token refresh returns 403 and the integration stops working until the subscription is reactivated.
Distributing your integration to other Wave businesses requires Wave's approval. Creating the application and testing it against your own account is self-service, but Wave's Permitted Use policy covers any integration that is not direct-to-your-own-business.
Wave serves the US and Canada only, and signup from elsewhere is geo-blocked. The block sticks to the email address on the first failed attempt, so a European team cannot simply retry behind a VPN.
Connecting is not purely one-click. Alongside the OAuth authorisation, each consumer must supply their Wave Business ID — a base64 string taken from the business's Wave app URL — so your onboarding needs a step that tells them where to find it.
- **responsibility matrix:**   - **customer:** ✓
  - **area:** Create a Wave account
  - **customer:** ✓
  - **apideck:** Docs provided
  - **area:** Register the Wave application
  - **area:** Obtain Wave's approval to distribute
  - **customer:** ✓
  - **area:** Add Client ID and Secret to Apideck
  - **customer:** ✓
  - **area:** Maintain the Pro or Advisors subscription
  - **consumer:** ✓
  - **area:** Authorise the connection
  - **consumer:** ✓ (and supply the Business ID)
  - **apideck:** Handles the OAuth flow
  - **area:** Refresh tokens
  - **apideck:** ✓ Automatic
  - **apideck:** Maintains connector
  - **area:** Build via the Unified API
  - **customer:** ✓
  - **customer:** ✓ Via Dashboard
  - **apideck:** Logs & alerts
  - **consumer:** ✓ Can revoke anytime
  - **area:** Monitor connections

## Supported resources

[Accounting data model](/guides/accounting-data-model.md)

- **downstream id:** customers
- **id:** customers
- **downstream name:** Customers
- **custom field support:** true
- **status:** live
- **name:** Customers
- **downstream id:** vendors
- **custom field support:** true
- **downstream name:** Vendors
- **id:** suppliers
- **status:** live
- **name:** Suppliers
- **downstream name:** Invoices
- **status:** live
- **id:** invoices
- **custom field support:** true
- **downstream id:** invoices
- **name:** Invoices
- **id:** ledger-accounts
- **downstream name:** Accounts
- **custom field support:** true
- **name:** Ledger Accounts
- **status:** live
- **downstream id:** accounts
- **status:** live
- **custom field support:** true
- **downstream id:** products
- **downstream name:** Products
- **name:** Invoice Items
- **id:** invoice-items
- **downstream name:** Sales Taxes
- **name:** Tax Rates
- **downstream id:** sales-taxes
- **id:** tax-rates
- **custom field support:** false
- **status:** live
- **downstream name:** Businesses
- **custom field support:** true
- **status:** live
- **downstream id:** businesses
- **id:** company-info
- **name:** Company Info
- **downstream id:** balance-sheet
- **id:** balance-sheet
- **name:** BalanceSheet
- **downstream name:** Balance Sheet
- **status:** live
- **custom field support:** false
- **id:** profit-and-loss
- **downstream name:** Profit And Loss
- **downstream id:** profit-and-loss
- **status:** live
- **custom field support:** false
- **name:** ProfitAndLoss
- **downstream id:** bank-accounts
- **id:** bank-accounts
- **status:** beta
- **name:** Bank Accounts
- **downstream name:** Bank Accounts
- **custom field support:** false
- **status:** beta
- **custom field support:** false
- **downstream name:** Transactions
- **name:** Bank Feed Statements
- **id:** bank-feed-statements
- **downstream id:** transactions

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

[API reference](https://developers.apideck.com/apis/accounting/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/accounting/coverage)
