> ## 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.

# Sage Intacct Create Bill

> Creates an AP bill in Sage Intacct from a vendor ID and line items.

Creates one AP bill (APBILL) in Sage Intacct from direct input: a vendor ID and one or more lines. Display name follows the registry name. Off by default. This tool writes to the customer's ERP; put it after any human review step.

For bills raised against a purchase order, use `sage_intacct_create_bill_by_po`.

## Authentication and enablement

Requires a workspace Sage Intacct integration. `company_id`, `user_id`, and `user_password` are injected and not shown as per-run inputs. With several Intacct connections in one workspace, wrap the tool as a configured tool bound to the right connection; unbound, it uses the first active one.

## Inputs

* `vendor_id` (required) — the Intacct vendor ID (upper-cased before sending). The tool does not resolve names; look the vendor up first.
* `line_items` (required) — one or more lines, each with `amount` and optionally `gl_account_no`, `description`, `location_id`, `department_id`. Pass `"none"` for `location_id` or `department_id` to send no such dimension.
* `bill_date` — WHENCREATED, `YYYY-MM-DD` or `MM/DD/YYYY`. Default: today.
* `due_date` — WHENDUE. Some companies require it.
* `when_posted` — the GL posting date (WHENPOSTED), to post into a chosen accounting period. When omitted, Intacct applies its own default.
* `record_id` — the bill number (RECORDID), e.g. the vendor's invoice number. When omitted, a unique `VI<MMDDYY><unix seconds>` number is generated.
* `custom_fields` — header custom fields as `[{field_id, value}]`. `field_id` is the field's ID (integration name) on APBILL, not its label: letters, digits and underscore, starting with a letter. Blank values are not sent.
* `description`, `currency` — optional bill-level values.
* `entity_id` — see Entity scoping below.
* `strict` — configured-tool binding only (hidden from the model). See Defaults.

## Defaults

Without `strict`, a line that omits a value gets GL account `60310`, department `300`, and location `100` (or `entity_id` when set). These are real postings: a missing account books the amount to 60310. With `strict` bound to true, none of the three defaults apply, a line without `gl_account_no` rejects the whole bill before anything is sent, and a line's location comes only from `location_id` or `entity_id`.

## Entity scoping

In a multi-entity company, Intacct decides where a bill belongs from the entity the API session logs into. Set `entity_id` to post the bill into that entity (lines without `location_id` then use it as their location). Leave it empty to post at the top level.

## Output

A confirmation with the vendor, total and Intacct record number, plus structured `vendor_id`, `bill_number` (the RECORDID sent), `bill_date`, `when_posted` (as sent), `record_no`, `total_amount` and `entity_id`.

## Limits and side effects

* Creates a record in the customer's Sage Intacct company. It does not check for an existing bill with the same number; use `sage_intacct_get_bills` first when duplicates matter.
* No business retry: a rejected bill (for example a closed period) is returned as an error for the agent to handle.
* Only header custom fields; line-level custom fields and other line dimensions (class, project) are not sent.

## Expected errors

* Integration credentials missing.
* `vendor_id` or `line_items` missing.
* A date not in `YYYY-MM-DD` or `MM/DD/YYYY` (`bill_date`, `due_date`, `when_posted`).
* Invalid, duplicate or standard-field `custom_fields` ids.
* Strict mode: lines without `gl_account_no` (the message lists them).
* Sage Intacct API errors, e.g. an unknown vendor or account, a required due date, a closed period, or a custom field the company does not define.


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