Accounting · Beta
Acumatica
API integration
Ship Accounting features without building the integration. Full Acumatica API access via Proxy and 10+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Acumatica
Common scenarios for SaaS companies building Acumatica integrations for their customers.
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
Ship these features with Truto + Acumatica
Concrete product features your team can ship faster by leveraging Truto’s Acumatica integration instead of building from scratch.
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.
SuperAI
Acumatica AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
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.
Why Truto
Why use Truto’s MCP server for Acumatica
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Acumatica in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Acumatica account
Use Truto’s frontend SDK to connect your customer’s Acumatica account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Acumatica
Truto’s Proxy API is a 1-to-1 mapping of the Acumatica API. You call us, we call Acumatica, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Acumatica’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Acumatica on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
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.
Acumatica
Get Acumatica integrated into your app
Our team understands what it takes to make a Acumatica integration successful. A short, crisp 30 minute call with folks who understand the problem.