ml-connector
Sage IntacctOrderful

Sage Intacct and Orderful integration

Sage Intacct runs your accounting and ERP. Orderful translates and delivers EDI documents to trading partners. Connecting the two keeps your AP records aligned with EDI purchase order activity from your partners. Purchase order acknowledgments and invoices from Orderful flow into Sage Intacct as bills and expenses against the right GL accounts and vendors, without manual re-entry. ml-connector bridges the XML gateway on the Intacct side and the REST API on the Orderful side.

How Sage Intacct works

Sage Intacct is a cloud-based ERP and accounting system that exposes vendors (VENDOR), accounts payable bills (APBILL), payments (APPAYMENT), GL accounts (GLACCOUNT), and dimensions (DIMENSION) through a single XML gateway endpoint at https://api.intacct.com/ia/xml/xmlgw.phtml. Authentication is session-based: an initial getAPISession call exchanges partner and user credentials for a sessionid, which is cached and reused for 50 minutes. All API operations serialize through the single XML POST endpoint, and HTTP 200 responses may contain application-level error messages inside the XML body that must be parsed. Intacct does not offer webhooks, so all data flows are polling-driven or scheduled.

How Orderful works

Orderful is a cloud-based EDI integration platform that translates, routes, and delivers EDI documents (X12, EDIFACT) to trading partners via REST/JSON API. Base URLs are https://api.orderful.com (US) or https://api-eu.orderful.com (EU), with versioned endpoints: /v4 for create and inbox operations, and /v3 for list and retrieve operations. Authentication uses a static API key passed in the orderful-api-key header with no OAuth or token refresh. Orderful's keyEntities include purchase orders (850_PURCHASE_ORDER), purchase order acknowledgments (855_PURCHASE_ORDER_ACKNOWLEDGMENT), invoices (810_INVOICE), and payment remittance (820_PAYMENT_ORDER_REMITTANCE). Orderful can push incoming transactions via webhooks to your HTTP endpoint, or you can poll via GET /v3/polling-buckets for documents on a regular schedule.

What moves between them

The primary flow moves purchase order documents and invoices from Orderful into Sage Intacct. Incoming EDI 850 purchase order acknowledgments and 810 invoices from Orderful are translated and posted into Intacct as AP bills (APBILL) against the vendor and GL account dimension specified in the order header. Vendor reference data from Orderful is matched to existing Sage Intacct vendors (VENDOR) to ensure GL dimensions are valid. The integration polls Orderful on a configurable schedule (typically every 5 to 10 minutes via polling buckets or receives real-time push via webhooks) and posts changes to Intacct on the same cadence. Because Intacct is pull-only and has no webhooks, ml-connector uses scheduled polling to check Orderful for new documents.

How ml-connector handles it

ml-connector stores both credential sets encrypted: the Intacct partner ID, sender password, company ID, user ID, and password for XML gateway authentication, plus the Orderful API key for REST calls. On the Intacct side, ml-connector calls getAPISession to obtain a sessionid, caches it in-process for up to 50 minutes, and reuses it for all subsequent calls until expiry or error. When Intacct returns HTTP 200, ml-connector parses the XML response body for errormessage tags or status codes that indicate application-level failure, since HTTP level success does not guarantee API success. On the Orderful side, ml-connector polls /v3/polling-buckets or receives webhook POSTs, extracts EDI transaction details, and translates them into Intacct APBILL XML structures. Before posting, it validates that vendor GLDim codes and account codes match existing Intacct dimensions and GL accounts, falling back to a default AP liability account if no match is found. Retried operations use the Intacct control block uniqueid flag for server-side deduplication, preventing duplicate bills if ml-connector retries after a network timeout. Session tokens are cached per senderId, companyId, and userId, so multiple customer tenants maintain isolated sessions in-process. Forbidden XML control characters are stripped before escaping entity references to avoid XML parse failures. Every bill posted carries a full audit trail linking the originating Orderful transaction ID, the Intacct APBILL record, and the GL dimensions applied.

A real-world example

A mid-market distributor runs Sage Intacct for accounting and procurement, and uses Orderful to translate and deliver EDI orders to suppliers. Before the integration, the AP team received Orderful-routed invoices in a separate system, exported them to CSV, and manually entered each line into Intacct against the matching purchase order and vendor, a process that took 2 to 3 hours per week and introduced data-entry errors. With Sage Intacct and Orderful connected, invoices flow automatically into Intacct as AP bills, matched to the purchase order and vendor, and posted to the correct GL account and cost dimension. The AP team now reconciles Orderful activity to Intacct in minutes, and month-end close no longer includes a manual invoice re-keying step.

What you can do

  • Translate incoming EDI purchase order acknowledgments and invoices from Orderful into Sage Intacct AP bills, matched to vendors and GL accounts.
  • Validate Orderful vendor and dimension codes against existing Intacct GL dimensions and accounts before posting bills.
  • Manage Sage Intacct XML session authentication, caching sessionids for up to 50 minutes to reduce authentication overhead.
  • Poll Orderful on a configurable schedule or receive real-time push via webhooks, posting changes to Intacct on the same cadence.
  • Deduplicate retried AP bill posts using Sage Intacct's uniqueid control block flag and maintain a full audit trail linking Orderful transactions to Intacct bills.

Questions

Which direction does data move between Sage Intacct and Orderful?
The primary flow is from Orderful into Sage Intacct. EDI purchase order acknowledgments and invoices from Orderful are translated and posted into Intacct as AP bills. Vendor reference data may flow in both directions to ensure GL dimensions are valid in Intacct before posting.
How does the integration handle Sage Intacct's XML gateway and session-based authentication?
ml-connector calls Intacct's getAPISession endpoint with partner and user credentials to obtain a sessionid, then caches that session for up to 50 minutes and reuses it for all subsequent API calls. When a call fails or the cache expires, ml-connector automatically refreshes the session on the next operation. Because HTTP 200 does not guarantee API success in Intacct, ml-connector parses the XML response body for errormessage tags and application-level status codes.
What happens if Intacct GL accounts or vendor dimensions do not match Orderful data?
ml-connector validates that Orderful vendor codes and cost dimensions exist in Intacct before posting a bill. If a dimension is missing, ml-connector falls back to a default AP liability account configured per customer. The audit trail records the mismatch so the finance team can review and correct the mapping in Orderful or Intacct.

Related integrations

Connect Sage Intacct and Orderful

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started