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 withamountand optionallygl_account_no,description,location_id,department_id. Pass"none"forlocation_idordepartment_idto send no such dimension.bill_date— WHENCREATED,YYYY-MM-DDorMM/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 uniqueVI<MMDDYY><unix seconds>number is generated.custom_fields— header custom fields as[{field_id, value}].field_idis 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
Withoutstrict, 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. Setentity_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 structuredvendor_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_billsfirst 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_idorline_itemsmissing.- A date not in
YYYY-MM-DDorMM/DD/YYYY(bill_date,due_date,when_posted). - Invalid, duplicate or standard-field
custom_fieldsids. - 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.