> ## Documentation Index
> Fetch the complete documentation index at: https://agents.nanonets.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# QuickBooks Create Customer

> Creates a customer in QuickBooks Online and returns its id, so later steps can tag deposits or invoices to that client.

Creates one customer record in the connected QuickBooks Online company with a single `POST /v3/company/{realmId}/customer` and returns the new customer's id. Display name **"QuickBooks Create Customer"**. Off by default.

Use it after QuickBooks Lookup (`quickbooks_lookup_entity`) with `entity_type: Customer` finds no match and the user wants the client added. The returned id feeds [QuickBooks Update Deposit Received From](/docs/tools/quickbooks_update_deposit_received_from) or any other tool that takes a customer.

## Authentication and enablement

Enable the tool on the agent and connect a **QuickBooks Online** integration (OAuth). The access token and company (`realm_id`) are injected from the connection. With several companies connected, the per-company toggles on the tool decide which ones it may write to.

## Inputs

* `display_name`: **required.** The name shown in QuickBooks, up to 500 characters. Must be unique across every customer, vendor and employee in the company.
* `company_name`: legal company name, if different from the display name.
* `given_name`, `family_name`: when the customer is a person.
* `email`, `phone`: primary contact details.
* `billing_address`: `line1`, `line2`, `city`, `state` (sent as QuickBooks `CountrySubDivisionCode`), `postal_code`, `country`.
* `notes`: free text stored on the customer.

Blank optional fields are left out of the request.

## Output

`id`, `display_name`, `company_name`, `active`, `entity_type: "Customer"`, `full_details` (the fields QuickBooks returned) and `completed_at`.

## Limits and side effects

* Creates exactly one customer per successful call. It never updates, merges or deactivates a record.
* No lookup runs first: QuickBooks itself rejects a duplicate name, which costs nothing, while a pre-check read is a metered Intuit API call.

## Expected errors

* `QuickBooks already has a customer, vendor or employee named "…"`: QuickBooks fault 6240. Nothing was created. Find the existing record with QuickBooks Lookup and use its id. A customer marked inactive does not show in lookups, so check QuickBooks if the lookup still finds nothing.
* `display_name cannot be empty` / `display_name is longer than 500 characters` / `email "…" is not a valid email address`: validation, before any call.
* `access_token is required…`: no QuickBooks connection is bound to the agent.
* `failed to create customer: quickbooks api error (HTTP …)`: any other QuickBooks fault, passed through verbatim.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.