# Connecting Wave

## Prerequisites

- An active Wave account with **Wave Pro** or **Wave Advisors** subscription: required for the
  business you are connecting. If you are a developer testing your own application against your
  own account, you do not need a paid subscription for that testing.
- At least one business set up in Wave
- **US or Canada only**: Wave is exclusively available to businesses in the United States and Canada since November 2020

## Steps

1. Click **Authorize** to start the OAuth flow
2. Log in to your Wave account (if not already logged in)
3. Grant access to the requested scopes
4. You'll be redirected back: the connection will show as **Connected**
5. Enter your **Business ID** in the settings:
   - Log in to Wave at [app.waveapps.com](https://app.waveapps.com)
   - Open the business you want to connect: its URL looks like
     `https://app.waveapps.com/businesses/{business_id}`
   - Copy the `{business_id}` segment (a base64-encoded string, e.g. `QnVzaW5lc3M6...`)
6. Paste it into the **Business ID** field and click **Save**

## Settings

| Setting | Required | Description |
|---------|----------|-------------|
| Business ID | Yes | The ID of your Wave business, the base64 segment of your Wave app URL, `https://app.waveapps.com/businesses/{business_id}` |

## Supported Features

| Feature | Support |
|---------|---------|
| Customers | Read, Create, Update, Delete |
| Suppliers/Vendors | Read only |
| Invoices | Read, Create, Delete (no Update) |
| Invoice Items | Read, Create, Update |
| Ledger Accounts (Chart of Accounts) | Read, Create |
| Tax Rates | Read only |
| Company Info | Read only |
| Bank Accounts | Read only |
| Bank Feed Statements | Read only |
| Balance Sheet | Read only (computed) |
| Profit & Loss | Read only (computed) |

## Limitations

- **Geographic restriction**: Wave only supports businesses in the US and Canada.
- **Paid plan required for connecting businesses**: the Wave business you connect must have an active Wave Pro or Wave Advisors subscription. This does not apply if you are only testing your own application against your own account.
- **No bills, bill payments, or journal entries**: Wave's API does not expose these as resources at all.
- **Invoices cannot be updated**: invoices support create and delete, but not update, once posted.
- **Invoice line items**: not returned. `line_items` is always empty on Wave invoices, for both list and single-invoice reads: fetching an invoice individually does not surface them.
- **Suppliers, tax rates, company info, bank accounts, bank feed statements, balance sheet, and profit and loss are read-only.**

## Troubleshooting

| Issue | Solution |
|-------|----------|
| "Not Connected" after authorization | Ensure the connecting business has an active Wave Pro or Wave Advisors subscription |
| Connection stops working after previously working | If the connected business's Wave Pro or Advisors subscription has lapsed, the next token refresh returns a 403 error and the connection stops working. Reactivate the subscription to restore it. |
| "No data returned" | Verify the Business ID is correct |
| "Unauthorized" error | Re-authorize: your token may have expired |
| Can't find Business ID | Open the business in Wave and copy the ID segment from the URL: `https://app.waveapps.com/businesses/{business_id}` |
