> For the complete documentation index, see [llms.txt](https://docs.anedot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.anedot.com/integrations/ecommerce-financial-membership/quickbooks-online.md).

# QuickBooks Online

Connect Anedot to QuickBooks Online to sync donation data, including setup, fund mapping, data relays, and how donors appear in your accounting records.

> For the complete documentation index, see [llms.txt](https://anedot.gitbook.io/anedot-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anedot.gitbook.io/anedot-docs/integrations/ecommerce-financial-membership/quickbooks-online.md).

## QuickBooks Online

QuickBooks Online is a cloud-based accounting software that streamlines bookkeeping, donor management, and financial reporting for your organization.

### Connect Anedot to QuickBooks Online

1. Go to **Settings** → **Integrations** → **Directory** in your Anedot fundraising account.
2. Click the blue **+ New Connection** button in the top-right corner.
3. Select **QuickBooks** from the integration directory.
4. Choose which **Action Pages** you want to sync.
   1. By default, all Action Pages will be included.
   2. To exclude pages, enter a comma-separated list of Action Page IDs.
5. Optionally, restrict the sync to a specific **Team**.
6. Click **Save** to proceed.
7. **Authorize** the Connection
   1. You’ll be redirected to log in to your QuickBooks Online account.
   2. After login, select your **Company** and click **Next**.
   3. You’ll be redirected back to Anedot with a confirmation that the connection is complete.

> Note: You can update Action Pages and Teams at any time. To change the connected Company, you must create a new QuickBooks integration from scratch.

### Data Relays

* **Supported Pages**: Relays are sent only for **financial transactions** submitted through **Donation Pages** and **Event Pages**.

*Note: Non-financial submissions—such as free registrations on Event Pages or entries collected through Lead Pages—are not relayed.*

* **Included Data**: Only **donor contact details** and **donation amounts** are relayed. **Transfers and fees** are not included. **Custom field data** is not supported.
* **How It Works**:
  * Anedot performs a **“Find or Create User”** check before each relay.
    * If the donor exists in QuickBooks, the **Donation Submission** is relayed.
    * If not, Anedot first relays the necessary information to **create a new customer**, then relays the donation.
* **Where to View Donations in QuickBooks**:
  * **Sales → All Sales**: View relayed donations.
* **Accounting → Chart of Accounts → Undeposited Funds**: Donations appear here by default unless customized.

### View Donors in QuickBooks

To view relayed donors (as “Customers” in QuickBooks):

* Go to **Sales → Customers**,
* Or use the side menu and select **Customers & leads**.

### Field Mapping

The Anedot Fields match the Submission's Raw Data, and the QuickBooks fields match the Request Body relay.

#### Create User Fields

| Anedot Field                                                    | Quickbooks Field                                                                |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| title                                                           | Title                                                                           |
| suffix                                                          | Suffix                                                                          |
| address {city} {line1} {line2} {country} {postalCode} {region } | BillAddr {City} {Line1} {Line2} {Country} {PostalCode} {CountrySubDivisionCode} |
| firstName                                                       | GivenName                                                                       |
| lastName                                                        | FamilyName                                                                      |
| middleName                                                      | MiddleName                                                                      |
| "\[firstName] \[middleName] \[lastName] \[email]"               | DisplayName                                                                     |
| phone                                                           | PrimaryPhone {FreeFormNumber}                                                   |
| email                                                           | PrimaryEmailAddr {Address}                                                      |
| "firstName middleName lastName"                                 | PrintOnCheckName                                                                |

#### Donation Fields

| Anedot Field                                                | Quickbooks Field                  |
| ----------------------------------------------------------- | --------------------------------- |
| amount (x100)                                               | Amount                            |
| "SalesItemLineDetail"                                       | DetailType                        |
| "Anedot Donation \[Donation id]"                            | Description                       |
| created\_at (date only)                                     | SalesItemLineDetail {ServiceDate} |
| created\_at (date only)                                     | TxnDate                           |
| Customer {Id} (from Response Body - User Found/Create User) | CustomerRef {value}               |

*\*Custom Hidden Fields must be added to the Action Pages in order to be relayed.\*\*UTM Campaign can be added to the Page URL in the Action Page Builder.*

### Payload Data

#### **Request Headers**

```
{ }
```

#### **Request Body**

#### Find User

```json
{  "query": "select * from Customer where PrimaryEmailAddr = 'admin@anedot.com'"}
```

#### Create User

```json
{  "Title": null,  "Suffix": null,  "BillAddr": {    "City": "New Orleans",    "Line1": "1340 Poydras St",    "Line2": null,    "Country": "USA",    "PostalCode": "70112",    "CountrySubDivisionCode": "LA"  },  "GivenName": "Ann",  "FamilyName": "Dot",  "MiddleName": "E",  "DisplayName": "Ann E Dot admin@anedot.com",  "PrimaryPhone": {    "FreeFormNumber": "2255555555"  },  "PrimaryEmailAddr": {    "Address": "admin@anedot.com"  },  "PrintOnCheckName": "Ann E Dot"}
```

#### Donation Relay

```json
{  "Line": [{    "Amount": 123.0,    "DetailType": "SalesItemLineDetail",    "Description": "Anedot Donation d86691264b5db78fa59f9",    "SalesItemLineDetail": {      "ServiceDate": "2023-05-17"    }  }],  "TxnDate": "2023-05-17",  "CustomerRef": {    "value": "234"  }}
```

#### **Response Body**

#### User Not Found

```json
{  "time": "2023-05-17T16:05:31.157-07:00",  "QueryResponse": {}}
```

#### User Found

```json
{  "time": "2023-05-18T08:34:14.317-07:00",  "QueryResponse": {    "Customer": [{      "Id": "74",      "Job": false,      "Active": true,      "domain": "QBO",      "sparse": false,      "Balance": 0,      "Taxable": true,      "BillAddr": {        "Id": "208",        "City": "denham springs",        "Line1": "777 test st",        "Country": "USA",        "PostalCode": "99999",        "CountrySubDivisionCode": "LA"      },      "MetaData": {        "CreateTime": "2022-08-16T17:30:36-07:00",        "LastUpdatedTime": "2022-08-16T17:30:36-07:00"      },      "GivenName": "annie",      "IsProject": false,      "SyncToken": "0",      "FamilyName": "Dot",      "CurrencyRef": {        "name": "United States Dollar",        "value": "USD"      },      "DisplayName": "annie Dot admin@anedot.com",      "PrimaryPhone": {        "FreeFormNumber": "2252501301"      },      "V4IDPseudonym": "00209850ba6b576ae84a5fa61e6439aad0a74c",      "BillWithParent": false,      "ClientEntityId": "0",      "BalanceWithJobs": 0,      "PrimaryEmailAddr": {        "Address": "admin@anedot.com"      },      "PrintOnCheckName": "annie Dot",      "FullyQualifiedName": "annie Dot admin@anedot.com",      "PreferredDeliveryMethod": "Print"    }],    "maxResults": 1,    "startPosition": 1  }}
```

#### Create User

```json
{  "time": "2023-05-17T16:05:31.275-07:00",  "Customer": {    "Id": "234",    "Job": false,    "Active": true,    "domain": "QBO",    "sparse": false,    "Balance": 0,    "Taxable": true,    "BillAddr": {      "Id": "1234",      "City": "New Orleans",      "Line1": "1340 Poydras St",      "Country": "USA",      "PostalCode": "70112",      "CountrySubDivisionCode": "LA"    },    "MetaData": {      "CreateTime": "2023-05-17T16:05:31-07:00",      "LastUpdatedTime": "2023-05-17T16:05:31-07:00"    },    "GivenName": "Ann",    "IsProject": false,    "SyncToken": "0",    "FamilyName": "Dot",    "MiddleName": "E",    "CurrencyRef": {      "name": "United States Dollar",      "value": "USD"    },    "DisplayName": "Ann E Dot admin@anedot.com",    "PrimaryPhone": {      "FreeFormNumber": "2255555555"    },    "BillWithParent": false,    "BalanceWithJobs": 0,    "PrimaryEmailAddr": {      "Address": "admin@anedot.com"    },    "PrintOnCheckName": "Ann E Dot",    "DefaultTaxCodeRef": {      "value": "2"    },    "FullyQualifiedName": "Ann E Dot admin@anedot.com",    "PreferredDeliveryMethod": "Print"  }}
```

#### Donation Relay

```json
{  "time": "2023-05-17T16:05:31.470-07:00",  "SalesReceipt": {    "Id": "1386",    "Line": [{      "Id": "1",      "Amount": 123.0,      "LineNum": 1,      "DetailType": "SalesItemLineDetail",      "Description": "Anedot Donation d86691264b5db78fa59f9",      "SalesItemLineDetail": {        "ItemRef": {          "name": "Services",          "value": "1"        },        "TaxCodeRef": {          "value": "NON"        },        "ServiceDate": "2023-05-17",        "ItemAccountRef": {          "name": "Services",          "value": "1"        }      }    }, {      "Amount": 123.0,      "DetailType": "SubTotalLineDetail",      "SubTotalLineDetail": {}    }],    "domain": "QBO",    "sparse": false,    "Balance": 0,    "TxnDate": "2023-05-17",    "BillAddr": {      "Id": "1234",      "City": "New Orleans",      "Line1": "1340 Poydras St",      "Country": "USA",      "PostalCode": "70112",      "CountrySubDivisionCode": "LA"    },    "MetaData": {      "CreateTime": "2023-05-17T16:05:31-07:00",      "LastUpdatedTime": "2023-05-17T16:05:31-07:00"    },    "TotalAmt": 123.0,    "DocNumber": "2279",    "SyncToken": "0",    "CurrencyRef": {      "name": "United States Dollar",      "value": "USD"    },    "CustomField": [{      "Name": "Crew #",      "Type": "StringType",      "DefinitionId": "1"    }],    "CustomerRef": {      "name": "Ann E Dot admin@anedot.com",      "value": "234"    },    "EmailStatus": "NotSet",    "PrintStatus": "NeedToPrint",    "ShipFromAddr": {      "Id": "1513",      "Line1": "123 Sierra Way",      "Line2": "San Pablo, CA  87999 US"    },    "TxnTaxDetail": {      "TotalTax": 0    },    "DepositToAccountRef": {      "name": "Undeposited Funds",      "value": "4"    },    "ApplyTaxAfterDiscount": false  }}
```

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.anedot.com/integrations/ecommerce-financial-membership/quickbooks-online.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
