---
title: Acumatica API Integration on Truto
slug: acumatica
category: Accounting
canonical: "https://truto.one/integrations/detail/acumatica/"
---

# Acumatica API Integration on Truto



**Category:** Accounting  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 13 tools for Acumatica that AI agents can call directly.

- **acumatica_instance_get_version** — Get the Acumatica ERP version of the connected instance — one of the three instance-level methods of the contract-based REST API (alongside Sign in and Sign out). Returns: version. Takes no parameters.
- **list_all_acumatica_records** — List records of an Acumatica entity. Returns records with id, rowNumber, note, custom, and entity-specific fields. Required: endpoint_name, endpoint_version, entity. Supports $filter, $select, $expand, and $custom to shape results.
- **update_a_acumatica_record_by_id** — Update an Acumatica record by id. Returns the updated record with id, rowNumber, note, custom, and entity-specific fields. Required: endpoint_name, endpoint_version, entity, id.
- **delete_a_acumatica_record_by_id** — Delete an Acumatica record by id. Returns an empty 204 response on success. Required: endpoint_name, endpoint_version, entity, id.
- **get_single_acumatica_record_by_id** — Get a single Acumatica record by id. Returns the record with id, rowNumber, note, custom, and entity-specific fields. Required: endpoint_name, endpoint_version, entity, id.
- **acumatica_actions_execute_action** — Invoke an action on a top-level entity in Acumatica's contract-based REST API. The request body carries the JSON representation of the entity and the action's parameters. Returns 202 Accepted with a Location header for polling the async status. Required: endpoint_name, endpoint_version, entity, action.
- **list_all_acumatica_attachments** — List the files attached to a specific Acumatica record, addressed by its data view and field. Returns the attachment metadata: id, filename, href, and comment. Required: endpoint_name, endpoint_version, view, field, record_id.
- **get_single_acumatica_attachment_by_id** — Get the binary content of a file attached to an Acumatica record, addressed by view, field, record id, and filename. Returns the attached file's raw binary content (not a JSON object). Required: endpoint_name, endpoint_version, view, field, record_id, filename.
- **create_a_acumatica_attachment** — Attach a file to an Acumatica record by uploading its binary content to the given view, field, and record. Returns the attachment metadata: id, filename, href, and comment. Required: view, field, record_id, filename, content.
- **acumatica_attachments_list_files** — List the files attached to an Acumatica record, addressed by entity and the record's id or key values. Returns the attachment metadata: id, filename, href, and comment. Required: endpoint_name, endpoint_version, entity, id_or_keys.
- **acumatica_instance_swagger_get_swagger** — Get the swagger.json OpenAPI 3.0 specification of the Acumatica ERP instance-level contract-based REST API. Returns the OpenAPI 3.0 document, whose contents are specific to the Acumatica instance and describe its available methods (sign in, sign out, get version).
- **create_a_acumatica_entity_record** — Create a record for an Acumatica ERP entity by sending its JSON representation to the entity's collection path. Returns the created record, including system fields id, rowNumber, and note, the entity's contract fields in {value: ...} format, and any custom fields. Required: endpoint_name, endpoint_version, entity. Acumatica uses PUT rather than POST for creates; the JSON body needs only the…
- **acumatica_report_get_report** — Download a generated Acumatica report file by request id, polling the Location URL returned when the report was requested. Returns the report file binary in the requested format (PDF, HTML, or XLSX) once generation is complete — file content, not a JSON object. Required: endpoint_name, endpoint_version, report_entity, format, request_id.

## How it works

1. **Link your customer's Acumatica account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Acumatica.** The Proxy API is a 1-to-1 mapping of the Acumatica API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate AP bills and vendor sync** — AP automation platforms can pull vendor and PO records from Acumatica, then push matched bills and journal entries back as the system of record. This eliminates manual re-keying for finance teams running mid-market ERP.
- **Push eCommerce orders into the ERP** — Commerce and OMS platforms can treat Acumatica as the inventory and order source of truth, syncing items and creating sales orders on checkout. End users get real-time stock accuracy without building ERP plumbing in-house.
- **Close the loop between CRM and finance** — CRMs can provision customers and sales orders in Acumatica when deals close, and trigger downstream actions like invoicing. Sales and finance stay aligned without CSV handoffs.
- **Field service job costing and invoicing** — Dispatch and field service apps can convert completed jobs into Acumatica sales orders, invoke invoice creation actions, and fetch the generated PDF for on-site signature. This turns ERP data entry into a one-tap workflow for technicians.
- **Expense capture with receipt attachments** — Expense management tools can log expense receipts into Acumatica and attach the original receipt image directly to the record. Controllers get audit-ready documentation without chasing employees for paperwork.

## What you can build

- **Two-way record sync for any Acumatica entity** — Use the generic list, get, create, update, and delete record tools to sync customers, vendors, sales orders, invoices, or any contract-based entity in both directions.
- **Action-triggered ERP workflows** — Invoke Acumatica state-machine actions like ReleaseDocument, InvoiceOrder, or CreateInvoice from your product to drive multi-step financial workflows without manual ERP clicks.
- **Document and receipt attachment pipeline** — Upload PDFs, images, or signed documents directly to Acumatica records and list or retrieve existing attachments to display source documents inside your own UI.
- **On-demand report generation** — Trigger Acumatica's internal reporting engine to generate PDFs or XLSX files like customer statements or tax reports, then surface them inside your app for end users to download.
- **Dynamic schema discovery per tenant** — Pull each customer's Acumatica Swagger definition and instance version to adapt your integration to their specific endpoints, custom fields, and ERP release automatically.
- **Create new entity records with validation** — Push new sales orders, bills, expense receipts, or custom entities into Acumatica while inheriting all native business logic, approval rules, and field validation.

## FAQs

### How does authentication work with Acumatica tenants?

Acumatica uses OAuth 2.0 against each customer's tenant URL. Truto handles the end-user auth flow, token refresh, and tenant routing so you don't manage credentials or endpoints per customer.

### Can we query specific records with filters instead of pulling everything?

Yes. The list records tool supports Acumatica's contract-based API query syntax including $filter, $select, and $expand, so you can fetch narrow result sets and expand related entities like sales order lines in a single call.

### How do we create records if Acumatica uses PUT instead of POST?

Truto's create record tools abstract this behavior — you send the entity payload and Truto issues the correct PUT upsert to Acumatica, returning the created record with system-assigned fields like id and rowNumber.

### How do long-running Acumatica actions behave through the API?

Actions like InvoiceOrder or ReleaseDocument are asynchronous. The execute action tool initiates the action and returns the location to poll, so your integration can wait for completion before advancing the workflow.

### Does the integration support custom fields and custom entities?

Yes. Because Acumatica's contract-based API exposes extensions and custom endpoints, you can read and write custom fields on standard entities and interact with custom entities. Use the Swagger retrieval tool to discover each tenant's exact schema.

### Can we attach files like signed PDFs or receipt images to Acumatica records?

Yes. Dedicated attachment tools let you upload binary files to a specific record, list existing attachments, and fetch attachment metadata or file contents for display in your own product.

### How do we get reports or generated documents like invoices out of Acumatica?

The report tool triggers Acumatica's internal reporting engine and returns the generated PDF or XLSX binary, which you can render or forward to end users without screen-scraping the ERP UI.
