HubSpot + Acumatica integration
Acumatica runs orders, shipments and invoices beside a CRM of its own. Two syncs already cover the CRM records; this page covers the ERP documents.
Connects by APIScope this integration Book a scoping call Estimate the cost
- Into HubSpot
Is there an official Acumatica + HubSpot integration?
Yes. HubSpot publishes an Acumatica CRM app in the HubSpot App Marketplace as of September 2026, and it keeps business accounts, contacts and leads in step both ways, as Acumatica's own HubSpot connector also does. Neither carries sales orders, shipments or invoices. Reaching those takes a custom API integration over the contract-based REST API and push notifications, which we scope at 70 to 150 build hours.
- Recommended route
- Custom API integration
- Build effort
- 70 to 150 hours
- In the HubSpot App Marketplace?
- Yes, Acumatica CRM by HubSpot
- Typical elapsed time
- 4 to 8 weeks
Marketplace checked September 2026.
Why teams connect Acumatica to HubSpot
Acumatica sells one system for most of a small or mid-sized business: financials, distribution, manufacturing, project accounting, and a CRM that Acumatica describes as unified with the ERP. Its own documentation notes that many of its users run HubSpot for marketing, so a company running both has two places an account lives. The friction shows up as questions nobody in sales can answer. Has the last order shipped? Is the account on credit hold? Which invoice is still open before the renewal call?
Acumatica’s design makes the account question sharper than on most ERPs. A prospect starts as a business account and is extended into a customer, which Acumatica does automatically when a sales order is created from an opportunity or a sales quote. The account keeps one status list throughout, from Prospect through Credit Hold to Inactive. So the ERP already holds the account HubSpot is chasing, and the two systems start to disagree the moment either side edits it.
HubSpot and Acumatica each publish an answer for that CRM half: HubSpot’s Acumatica CRM app, and a HubSpot connector built into Acumatica itself. Both move accounts, contacts and leads. What they leave out is everything after the order, and that is where the questions above live: open orders on the company record, shipment status beside the deal, an overdue invoice flagged before a seller quotes again.
What syncs
The build carries five objects, all one way. Customers become HubSpot companies, sales orders become deals, shipments and invoices land on custom objects associated to their orders, and stock items become products. Accounts, contacts and leads stay with whichever CRM-level sync you already run, and the build writes only the ERP fields, so the two never fight over a property.
Keys come from Acumatica’s own key fields, the ones its REST API puts in the URL. A customer keys on its customer ID. A sales order keys on its order type plus its order number, never the number alone, because Acumatica addresses an order by the pair. An invoice keys on its document type plus its reference number, the two key boxes on the Invoices and Memos form, and the type also keeps a credit memo from being read as an invoice. A shipment keys on its shipment number and associates to every order it covers, since one shipment can ship several sales orders.
Acumatica owns the order, the shipment and the invoice, and a sales tool that edits a released document creates work for finance. Where a write back is wanted, the usual first one is a closed won deal creating the sales order, and we hold it behind a review step.
| | | Direction | Match key | Notes |
|---|---|---|---|---|
| Customer | Company | Into HubSpot | Customer ID held in a custom HubSpot property | Carries the account status, Credit Hold included, which sellers need before they quote. |
| Sales order | Deal | Into HubSpot | Order type plus order number, held in a custom HubSpot property | Acumatica addresses an order by the pair, as in SO and 000123. |
| Shipment | Custom object | Into HubSpot | Shipment number, associated to every order it covers | One shipment can ship several sales orders. |
| Invoice | Custom object | Into HubSpot | Document type plus reference number | The type also tells an invoice from a credit memo or a debit memo. |
| Stock item | Product | Into HubSpot | Inventory ID |
Architecture
The shape is a webhook queue with a sweep behind it, and Acumatica supplies both halves. For each object, a generic inquiry lists the fields worth watching, and a push notification points that inquiry at our HTTPS endpoint, with a header value we check on arrival. When a transaction changes the inquiry’s results, Acumatica posts JSON holding the inserted and deleted rows, the tenant, a transaction id and a timestamp.
The endpoint acknowledges at once and queues the notification by transaction id, which Acumatica provides so a consumer can drop duplicates. A worker reads the full record by its key fields through the contract-based REST API, pinned to one endpoint version such as Default/25.200.001, and upserts HubSpot in batches keyed on the Acumatica key. A separate pass associates shipments and invoices to their orders, so replaying a batch changes nothing.
Behind the queue, a scheduled sweep asks each entity for records whose LastModified value is later than the stored watermark, which catches whatever a failed notification lost. The service signs in as an OAuth 2.0 connected application, never with a user name and password.
What the API allows
- API style
- REST
- Authentication
- OAuth 2.0
- Webhooks
- Yes
- Changed-since filter
- Yes
- Sandbox
- Yes
- Rate limit
- Set by the licence: a maximum number of API users, concurrent requests and requests per minute, shown on the License Monitoring Console
Developer documentation beacon.acumatica.com
Three ways to connect
What decides the route on Acumatica is how far past the account record the question goes. If sellers need accounts, contacts and leads to agree and nothing more, two packaged options already exist. HubSpot’s Acumatica CRM app runs inside HubSpot, connects through a connected application registered in Acumatica, and syncs business accounts, contacts and leads both ways. Acumatica’s own connector runs inside Acumatica on import and export scenarios and adds marketing lists, with one HubSpot account per Acumatica instance. We run one of them, never both, because each writes the same records.
Once orders, shipments or invoices are in scope, the choice is a custom API integration or an iPaaS. An iPaaS signs in as one more API user, and the licence caps API users, concurrent requests and requests per minute across every integration on the instance. A dedicated service spends that allowance deliberately, and it is the route we recommend.
-
Custom API integration
RecommendedAcumatica pushes a notification when a watched inquiry's results change and filters any entity on LastModified, so a keyed service can carry orders, shipments and invoices as they change and sweep behind itself.
-
Marketplace app
PossibleHubSpot's own Acumatica CRM app keeps business accounts, contacts and leads in step both ways with no service to host, which suits a team whose question stops at the account.
-
iPaaS
AvoidAn iPaaS signs in as one more API user, and the Acumatica licence caps API users, concurrent requests and requests per minute across every integration, so the platform competes with the rest for one allowance.
What breaks and how we prevent it
Updates sent as delete and insert
Acumatica reports a change to a watched row as the old row under Deleted and the new row under Inserted, and leaves the consumer to pair them. A service that deletes on every Deleted row removes live orders from HubSpot. We pair rows on their key within each notification, treat a pair as an update, and delete only when a later read confirms the record is gone.
Five attempts, then two days
Acumatica makes at most five attempts to deliver a notification, then lists it on the Process Push Notifications form, where it can be resent for two days before it is removed. A notification that fails before it is sent never appears there at all. Our LastModified sweep closes both gaps, and we alert when it finds anything the queue did not.
Sessions left signed in
Every licence caps API users, and a client that never signs out keeps its session and can lock other integrations out. Acumatica also plans to retire direct sign-in with a user name and password. We register the service as an OAuth 2.0 connected application and close every session it opens.
Half the minute’s budget
Each licence sets a ceiling of requests per minute, and once the past minute reaches half of it, Acumatica delays requests in an internal queue. It declines a request outright, with a 429, when more than twenty are waiting or one has waited ten minutes. We pace the sweep well under the licence’s figure, fetch an order and its lines in one request, and treat a 429 as a signal to slow the whole service.
Our approach
- Scope. We settle which CRM-level sync owns accounts, contacts and leads, then list the order, shipment and invoice fields sellers use.
- Architect. We fix the keys, the generic inquiry per object, the endpoint version and the LastModified watermark, and write them down.
- Build. The service is built against a test tenant with its own connected application and a portal allowlist from the first commit.
- Validate. We replay a day of notifications, run the sweep, and reconcile order and invoice counts against an Acumatica report.
- Operate. Cutover is a credential swap. After that we watch failed notifications, the sweep’s findings and the licence statistics, and retest on each Acumatica release.
Common questions
Does HubSpot's Acumatica CRM app sync sales orders or invoices?
No. HubSpot's listing says plainly that the app syncs Acumatica's CRM, not its ERP. Its default mappings pair business accounts with HubSpot companies, and both contacts and leads with HubSpot contacts, in both directions. Custom field mappings need Data Hub Starter or above and run only from Acumatica toward HubSpot. Orders, shipments and invoices need a custom API integration.
What does Acumatica's own HubSpot connector cover?
Contacts, leads, business accounts and marketing lists. Acumatica builds it into the product as the HubSpot Enhanced Provider, which authorizes against HubSpot with OAuth or a private app token and moves records through import and export scenarios, run on automation schedules or as real-time synchronization. It links one HubSpot account to each Acumatica instance, and like HubSpot's app it stops at the CRM.
How quickly does an Acumatica sales order appear in HubSpot?
With a custom API integration, the service acts on the push notification Acumatica sends when the order changes a watched inquiry, rather than waiting for a schedule, and a sweep on LastModified runs behind it for anything missed. HubSpot's data sync apps, by comparison, sync a record within 10 minutes of a change once the first full sync has finished, and that app does not carry orders.
What happens to an Acumatica push notification our endpoint rejects?
Acumatica sends it again. It makes at most five attempts, then logs the notification on the Process Push Notifications form, where it can be resent for two days before it is deleted. Replying with an error after processing causes a second delivery, so we acknowledge first, deduplicate on the transaction id in the payload, and let the sweep recover anything older.
How many API requests does an Acumatica licence allow?
It depends on the licence. Each one sets a maximum number of API users, concurrent requests and requests per minute, visible on the License Monitoring Console, and a trial licence allows two API users with no other limit. Once half the per-minute figure is used, Acumatica delays requests, and it declines them with a 429 when more than twenty are waiting or one has waited ten minutes.
Should an Acumatica integration sign in with a user name and password?
No. Acumatica's documentation says direct sign-in with a user name and password will be discontinued in a future version, and it recommends OAuth 2.0 or OpenID Connect instead. That sign-in also bypasses two-factor authentication on the account. We register the service as a connected application, which an administrator can revoke on one form without touching anyone's login.
Can we build an Acumatica integration without touching live data?
Yes. Acumatica describes two options: a SaaS sandbox, a separate instance whose refresh from the latest backup is a manual process that is charged, and test tenants inside your production environment, whose data is isolated but easy to copy from production. We build against a test tenant and a HubSpot sandbox, then cut over by swapping the connected application's credentials.
How many hours does an Acumatica and HubSpot integration take?
Plan on 10 to 20 hours of discovery and 70 to 150 hours of build for customers, orders, shipments, invoices and items moving one way, with push notifications, a LastModified sweep and reconciliation endpoints. Discovery settles which CRM-level sync owns the account record and which generic inquiries to watch, and that is most of the conversation.
Also in ERP and accounting
Related reading
Partnerships and accreditations
HubSpot accreditations
Industry specializations
Partnerships
Trust and compliance
We design integrations to support the security and privacy rules your business works under, and we build them on independently audited platforms.
-
SOC 2
We build to support SOC 2 security controls, on platforms that hold SOC 2 reports of their own.
-
ISO/IEC 27001:2022
We build to support your information security program under ISO/IEC 27001:2022.
-
HIPAA
We scope BAA needs in discovery, then design builds around them for covered entities and their business associates.
-
GDPR
We scope data-processing needs in discovery and design builds to support your GDPR duties.
About the GDPR at the European Commission (opens in a new tab)
-
PIPEDA
We design builds to support your accountability for personal information as it moves between systems.
-
CASL
We can build consent capture and sync that support your CASL consent records.
Our builds run on
How we build
- Sandbox first. We build and test in a sandbox before anything reaches production.
- Fail-closed allowlists. An integration runs only against the HubSpot accounts it is approved for.
- Least-privilege access. Each integration gets only the API scopes it needs.
- Secrets in a vault. Keys and tokens live in a secrets vault, never in plain text.
- Sensitive data scoped early. Discovery covers sensitive data, access controls and any BAA or data-processing needs.
- A compliance package for regulated industries: audit logging, field-level encryption and sensitive-data handling.
Scope a Acumatica integration
Send the systems, the direction and the record volume. We reply with a scope and an effort band within one business day.
Thanks, we will reply within one business day
Prash or Sean reads every one of these and comes back with a scope, or with the one question we need answered first.
Sources
- Acumatica CRM - ERP App for HubSpot | HubSpot ecosystem.hubspot.com
- Authenticate your apps for HubSpot data sync knowledge.hubspot.com
- Connect and use HubSpot data sync knowledge.hubspot.com
- Integration with HubSpot beacon.acumatica.com
- HubSpot Sync beacon.acumatica.com
- Acumatica for HubSpot Connector | Acumatica Cloud ERP acumatica.com
- Business Accounts: Extension of a Business Account as a Customer or Vendor beacon.acumatica.com
- Configuring Push Notifications for Real-Time Monitoring beacon.acumatica.com
- Push Notifications: Destinations beacon.acumatica.com
- Push Notifications: Format beacon.acumatica.com
- Push Notifications: Failed Notifications beacon.acumatica.com
- Limiting Connections of Integrated Applications beacon.acumatica.com
- Parameters for Retrieving Records beacon.acumatica.com
- Retrieve a Record by Key Fields beacon.acumatica.com
- Shipment beacon.acumatica.com
- Invoices and Memos beacon.acumatica.com
- Sign In to the Service beacon.acumatica.com
- Authorizing Client Applications to Work with Acumatica ERP beacon.acumatica.com
- FAQ | Acumatica Cloud ERP acumatica.com