# Delete an Account Source: https://docs.bookeeping.ai/api-reference/accounts/delete-an-account /api-reference/openapi.json delete /v1/accounts/{id} Delete an Account # Get Accounts Source: https://docs.bookeeping.ai/api-reference/accounts/get-accounts /api-reference/openapi.json get /v1/accounts Get Accounts # Get an Account by ID Source: https://docs.bookeeping.ai/api-reference/accounts/get-an-account-by-id /api-reference/openapi.json get /v1/accounts/{id} Get an Account by ID # Get the balance of an Account by ID Source: https://docs.bookeeping.ai/api-reference/accounts/get-the-balance-of-an-account-by-id /api-reference/openapi.json get /v1/accounts/{id}/balance Get the balance of an Account by ID # Create a Category Source: https://docs.bookeeping.ai/api-reference/categories/create-a-category /api-reference/openapi.json post /v1/categories Create a Category # Get a Category by ID Source: https://docs.bookeeping.ai/api-reference/categories/get-a-category-by-id /api-reference/openapi.json get /v1/categories/{id} Get a Category by ID # Get Categories Source: https://docs.bookeeping.ai/api-reference/categories/get-categories /api-reference/openapi.json get /v1/categories Get Categories # Update a Category Source: https://docs.bookeeping.ai/api-reference/categories/update-a-category /api-reference/openapi.json patch /v1/categories/{id} Update a Category # Get a Connection by ID Source: https://docs.bookeeping.ai/api-reference/connections/get-a-connection-by-id /api-reference/openapi.json get /v1/connections/{id} Get a Connection by ID # Get Connections Source: https://docs.bookeeping.ai/api-reference/connections/get-connections /api-reference/openapi.json get /v1/connections Get Connections # Create a Counterparty Source: https://docs.bookeeping.ai/api-reference/counterparties/create-a-counterparty /api-reference/openapi.json post /v1/counterparties Create a Counterparty # Delete a Counterparty Source: https://docs.bookeeping.ai/api-reference/counterparties/delete-a-counterparty /api-reference/openapi.json delete /v1/counterparties/{id} Delete a Counterparty # Get a Counterparty by ID Source: https://docs.bookeeping.ai/api-reference/counterparties/get-a-counterparty-by-id /api-reference/openapi.json get /v1/counterparties/{id} Get a Counterparty by ID # Get Counterparties Source: https://docs.bookeeping.ai/api-reference/counterparties/get-counterparties /api-reference/openapi.json get /v1/counterparties Get Counterparties # Update a Counterparty Source: https://docs.bookeeping.ai/api-reference/counterparties/update-a-counterparty /api-reference/openapi.json patch /v1/counterparties/{id} Update a Counterparty # Get Info About The API Source: https://docs.bookeeping.ai/api-reference/info/get-info-about-the-api /api-reference/openapi.json get /v1/info/api-key Get Info About The API # Cancel a Paid Invoice Source: https://docs.bookeeping.ai/api-reference/invoices/cancel-a-paid-invoice /api-reference/openapi.json post /v1/invoices/{id}/cancel-paid-invoice Only invoices in paid status can be cancelled. Invoices paid through Stripe must be refunded in Stripe first. Use action PLAN to preview what happens to the payment transaction without cancelling, then action CANCEL to cancel. # Cancel a sent/overdue invoice Source: https://docs.bookeeping.ai/api-reference/invoices/cancel-a-sentoverdue-invoice /api-reference/openapi.json post /v1/invoices/{id}/cancel Only invoices in sent/overdue status can be cancelled. To cancel a paid invoice, use Cancel a Paid Invoice instead. # Create an Invoice Source: https://docs.bookeeping.ai/api-reference/invoices/create-an-invoice /api-reference/openapi.json post /v1/invoices Create an Invoice # Delete an Invoice Source: https://docs.bookeeping.ai/api-reference/invoices/delete-an-invoice /api-reference/openapi.json delete /v1/invoices/{id} Only invoices in draft status can be deleted. # Get All Invoices Source: https://docs.bookeeping.ai/api-reference/invoices/get-all-invoices /api-reference/openapi.json get /v1/invoices Get All Invoices # Get an Invoice Source: https://docs.bookeeping.ai/api-reference/invoices/get-an-invoice /api-reference/openapi.json get /v1/invoices/{id} Get an Invoice # Mark an Invoice as Paid Source: https://docs.bookeeping.ai/api-reference/invoices/mark-an-invoice-as-paid /api-reference/openapi.json post /v1/invoices/{id}/mark-as-paid Mark an Invoice as Paid # Send an Invoice Source: https://docs.bookeeping.ai/api-reference/invoices/send-an-invoice /api-reference/openapi.json post /v1/invoices/{id}/send Only invoices in draft status can be sent. # Update an Invoice Source: https://docs.bookeeping.ai/api-reference/invoices/update-an-invoice /api-reference/openapi.json patch /v1/invoices/{id} Update an Invoice # Create a Transaction Source: https://docs.bookeeping.ai/api-reference/transactions/create-a-transaction /api-reference/openapi.json post /v1/transactions Create a Transaction # Delete a Transaction Source: https://docs.bookeeping.ai/api-reference/transactions/delete-a-transaction /api-reference/openapi.json delete /v1/transactions/{id} Delete a Transaction # Get a Transaction by ID Source: https://docs.bookeeping.ai/api-reference/transactions/get-a-transaction-by-id /api-reference/openapi.json get /v1/transactions/{id} Get a Transaction by ID # Get Transactions Source: https://docs.bookeeping.ai/api-reference/transactions/get-transactions /api-reference/openapi.json get /v1/transactions Get Transactions # Update a Transaction Source: https://docs.bookeeping.ai/api-reference/transactions/update-a-transaction /api-reference/openapi.json patch /v1/transactions/{id} Update a Transaction # Connect Your Custom Domain Source: https://docs.bookeeping.ai/connect-your-custom-domain Point your domain to your bookkeeping portal by adding a single DNS record at your DNS provider. # How Custom Domain Setup Works You can run your bookkeeping portal on your own domain — for example `books.yourcompany.com` or `portal.yourcompany.com`. To do this you add **one DNS record** at whoever manages your domain (GoDaddy, Namecheap, Cloudflare, etc.). This guide walks you through it for every major provider. The whole process takes about 5 minutes. After you add the record, it can take anywhere from a few minutes to a few hours for the change to take effect. *** ## What you'll add In almost all cases you'll create a **CNAME record**: | Field | Value | | ------------------------------ | --------------------------------------------------------- | | **Type** | `CNAME` | | **Name / Host** | the subdomain you want (e.g. `books`, `portal`, or `app`) | | **Value / Target / Points to** | `cname1.bookeeper.ai` | | **TTL** | Automatic / Default (or `3600`) | > **Tip:** A subdomain (like `books.yourcompany.com`) is the easiest and most reliable choice. If you want to use your *root* domain with no subdomain (e.g. `yourcompany.com` itself), skip to [Using a root domain](#using-a-root-domain). *** ## Choose your DNS provider Jump to your provider: * [GoDaddy](#godaddy) * [Namecheap](#namecheap) * [Cloudflare](#cloudflare) * [Squarespace / Google Domains](#squarespace--google-domains) * [Amazon Route 53](#amazon-route-53) * [Hostinger](#hostinger) * [Name.com](#namecom) * [IONOS / 1&1](#ionos--11) * [Bluehost](#bluehost) * [Wix](#wix) * [Other providers](#other-providers) *** ### GoDaddy 1. Sign in at [godaddy.com](https://godaddy.com) and open **My Products**. 2. Next to your domain, click **DNS** (or **Manage DNS**). 3. Under **Records**, click **Add**. 4. Fill in: * **Type:** `CNAME` * **Name:** `books` (or your chosen subdomain) * **Value:** `cname1.bookeeper.ai` * **TTL:** `1 Hour` 5. Click **Save**. *** ### Namecheap 1. Sign in at [namecheap.com](https://namecheap.com) and go to **Domain List**. 2. Click **Manage** next to your domain, then open the **Advanced DNS** tab. 3. Under **Host Records**, click **Add New Record**. 4. Fill in: * **Type:** `CNAME Record` * **Host:** `books` (or your chosen subdomain) * **Value:** `cname1.bookeeper.ai` * **TTL:** `Automatic` 5. Click the green **✓** checkmark to save. *** ### Cloudflare 1. Sign in at [dash.cloudflare.com](https://dash.cloudflare.com) and select your domain. 2. In the left sidebar, click **DNS → Records**. 3. Click **Add record**. 4. Fill in: * **Type:** `CNAME` * **Name:** `books` (or your chosen subdomain) * **Target:** `cname1.bookeeper.ai` * **Proxy status:** **DNS only** (click the orange cloud so it turns **grey**) 5. Click **Save**. > **Important:** The proxy must be set to **DNS only** (grey cloud). Leaving it proxied (orange cloud) will prevent your portal from loading correctly. *** ### Squarespace / Google Domains > Google Domains was acquired by Squarespace, so domains are now managed here. 1. Sign in at [account.squarespace.com](https://account.squarespace.com) and open **Domains**. 2. Select your domain, then click **DNS** → **DNS Settings**. 3. Under **Custom Records**, add a record: * **Host:** `books` (or your chosen subdomain) * **Type:** `CNAME` * **Data:** `cname1.bookeeper.ai` 4. Click **Add** / **Save**. *** ### Amazon Route 53 1. Open the [Route 53 console](https://console.aws.amazon.com/route53/). 2. Go to **Hosted zones** and select your domain. 3. Click **Create record**. 4. Fill in: * **Record name:** `books` (or your chosen subdomain) * **Record type:** `CNAME` * **Value:** `cname1.bookeeper.ai` * **TTL:** `300` 5. Click **Create records**. *** ### Hostinger 1. Sign in at [hpanel.hostinger.com](https://hpanel.hostinger.com). 2. Go to **Domains → DNS / Nameservers**. 3. Under **Manage DNS records**, add a record: * **Type:** `CNAME` * **Name:** `books` (or your chosen subdomain) * **Target / Points to:** `cname1.bookeeper.ai` * **TTL:** `14400` 4. Click **Add Record**. *** ### Name.com 1. Sign in at [name.com](https://name.com) and open **My Domains**. 2. Click your domain, then **DNS Records**. 3. Under **Add Record**, fill in: * **Type:** `CNAME` * **Host:** `books` (or your chosen subdomain) * **Answer:** `cname1.bookeeper.ai` * **TTL:** `300` 4. Click **Add Record**. *** ### IONOS / 1&1 1. Sign in at [ionos.com](https://ionos.com) and open **Domains & SSL**. 2. Click the gear/▾ next to your domain and choose **DNS**. 3. Click **Add Record** and choose **CNAME**. 4. Fill in: * **Host name:** `books` (or your chosen subdomain) * **Points to:** `cname1.bookeeper.ai` * **TTL:** `1 Hour` 5. Click **Save**. *** ### Bluehost 1. Sign in at [bluehost.com](https://bluehost.com) and go to **Domains**. 2. Select your domain and open **DNS** (or **Zone Editor**). 3. Add a record: * **Type:** `CNAME` * **Host Record / Name:** `books` (or your chosen subdomain) * **Points To:** `cname1.bookeeper.ai` * **TTL:** `4 Hours` 4. Click **Add Record** / **Save**. *** ### Wix 1. Sign in at [wix.com](https://wix.com) and go to your **Domains** dashboard. 2. Select your domain and click **Edit DNS** / **Manage DNS Records**. 3. Under **CNAME (Aliases)**, click **Add Record**: * **Host name:** `books` (or your chosen subdomain) * **Value / Points to:** `cname1.bookeeper.ai` * **TTL:** `1 Hour` 4. Click **Save**. *** ### Other providers Any DNS provider works — the steps are essentially the same. Find where you manage **DNS records** for your domain and add: | Field | Value | | ------------------ | ---------------------------------- | | **Type** | `CNAME` | | **Host / Name** | `books` (or your chosen subdomain) | | **Value / Target** | `cname1.bookeeper.ai` | *** ## Using a root domain Some people want their portal on the **bare/root domain** — `yourcompany.com` instead of `books.yourcompany.com`. Most DNS providers do **not** allow a plain `CNAME` on the root, so you have two options: 1. **Recommended — use a subdomain instead.** Point `books.yourcompany.com` (or `www`) at `cname1.bookeeper.ai` using the steps above. This is the most reliable setup. 2. **Use CNAME flattening / ALIAS / ANAME.** If your provider supports it, you can point the root at our target: * **Cloudflare:** add a `CNAME` on `@` with target `cname1.bookeeper.ai` (Cloudflare flattens it automatically). Set proxy to **DNS only**. * **Route 53:** create an **Alias** record on the root pointing to `cname1.bookeeper.ai`. * **Other providers:** look for a record type called **ALIAS**, **ANAME**, or **CNAME flattening** and use `cname1.bookeeper.ai` as the target. If you're unsure, go with a subdomain — it always works. *** ## After you add the record It will automatically generate a SSL certificate for your domain, and you can share your custom whitelabel URL with your clients. *** ## Troubleshooting **"This site can't be reached" / domain doesn't load** * DNS may still be propagating — wait a bit longer and try again. * Double-check the record **Type** is `CNAME` and the **Value** is exactly `cname1.bookeeper.ai` (no extra spaces or a trailing dot issue). **Verify your record is live** Run this from a terminal, replacing the hostname with yours: ```bash theme={null} dig CNAME books.yourcompany.com +short ``` You should see `cname1.bookeeper.ai` in the output. You can also check using a free tool like [dnschecker.org](https://dnschecker.org). **Still stuck?** Contact our support team with your domain name and we'll help you get connected.