# 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. This includes the business you test your own app with.
- **apideck credentials available:** false
- **apideck credentials note:** Register your own Wave application and add its Client ID and Secret to Apideck.
- **authentication note:** Authorization Code flow. Wave's API is GraphQL-only, and each connection also needs the consumer's Wave Business ID.
- **beta:** true
- **consumer access level:** Any user with access to the business can authorise the connection; Wave publishes no role requirement.
- **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.
- **difficulty:** moderate
- **difficulty reason:** Self-Service OAuth App + Wave Approval Required to Distribute
- **environment notes:**   - **description:** Testing and production share one Wave host and one credential shape, because Wave runs no sandbox. To test: use a Wave business on the Pro plan or Wave Advisors, since Wave's authorization screen will not let you select a free Starter business, even your own; 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
- **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.
- **partnership required:** false
- **rate limits:** Wave publishes no rate limits; its documented error codes include no throttling or rate-limit code.
- **responsibility matrix:**   - **area:** Create a Wave account
  - **customer:** ✓
  - **apideck:** Docs provided
  - **area:** Register the Wave application
  - **customer:** ✓
  - **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:** ✓
  - **apideck:** Handles the OAuth flow
  - **area:** Authorise the connection
  - **consumer:** ✓ (and supply the Business ID)
  - **apideck:** ✓ Automatic
  - **area:** Refresh tokens
  - **apideck:** Maintains connector
  - **area:** Build via the Unified API
  - **customer:** ✓
  - **apideck:** Logs & alerts
  - **area:** Monitor connections
  - **consumer:** ✓ Can revoke anytime
  - **customer:** ✓ Via Dashboard
- **sandbox available:** false
- **sandbox note:** Test with a Wave Pro or Advisors business; Wave's authorization screen blocks Starter businesses, even the app owner's own.
- **supported resource categories:**   - **name:** Core Financial
  - **resources:** ledger-accounts
tax-rates
company-info
balance-sheet
profit-and-loss
  - **name:** Accounts Receivable
  - **resources:** invoices
invoice-items
customers
  - **name:** Accounts Payable
  - **resources:** suppliers
  - **name:** Banking
  - **resources:** bank-accounts
bank-feed-statements
- **webhooks:** No webhooks — none surfaced by this connector, so poll for changes.

## Supported resources

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

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

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)
