ml-connector
IFS CloudAvidXchange

IFS Cloud and AvidXchange integration

IFS Cloud runs your manufacturing, finance, and procurement. AvidXchange automates your invoice processing and payments. Connecting the two keeps your supplier master and chart of accounts aligned between systems, routes incoming AvidXchange invoices to the correct GL accounts, and pulls completed payment data back into IFS without manual re-entry. ml-connector manages the different APIs and authentication models on each side.

How IFS Cloud works

IFS Cloud exposes suppliers, purchase orders, invoices, general ledger accounts, and vouchers through OData v4 REST APIs. Each customer accesses their tenant through a unique subdomain (https://<tenant>.ifs.cloud), and authentication uses OAuth2 Client Credentials with client_id and client_secret. IFS Cloud does not expose a self-registerable webhook API; instead, it relies on Event Actions for outbound notifications, which require manual per-customer configuration in the IFS admin UI. The recommended pattern is polling the OData API with filters on modified timestamps. Page size is limited to 5000 elements per request, and the rate limit is approximately 1000 requests per minute per tenant. Every mutation operation requires an ETag header for optimistic concurrency control.

How AvidXchange works

AvidXchange is an accounts payable automation platform accessed via the AvidConnect REST API, which uses token-based authentication with Company Token and User Token for customer integrations, or OAuth2 client credentials for Partner/ERP integrations. The API is hosted at apistore.avidxchange.net, though production and sandbox endpoints are disclosed after partner onboarding. AvidXchange exposes vendors, invoices, purchase orders, payments, GL accounts, and accounting dimensions. The platform supports scheduled pull/batch sync only; vendor and GL dimensions can be pushed to AvidXchange, while payment status and completed payment records are pulled on a schedule. Detailed endpoint documentation is gated behind the AvidXchange Partner Portal and requires a formal partner relationship.

What moves between them

IFS Cloud is the source of truth for supplier master data and purchase orders. ml-connector pulls suppliers and GL accounts from IFS on your configured schedule and pushes them to AvidXchange, ensuring incoming invoices match valid vendors and accounts in AvidXchange. Invoices created in AvidXchange are read and mapped back to IFS posting proposals, tagged with the GL account and supplier that originated them. After AvidXchange processes payments, ml-connector pulls payment status and completed payment records, updating the corresponding vouchers and payment proposals in IFS.

How ml-connector handles it

ml-connector stores both credential sets encrypted: IFS client_id and client_secret for OAuth2 bearer token generation, and AvidXchange partner credentials for token-based API calls. On the IFS side, it uses the tenant-specific subdomain URL and polls the OData API with filters on modified timestamps and status fields, respecting the 5000-element page limit and 1000-request-per-minute rate limit; when the rate limit returns HTTP 429, ml-connector backs off and retries with exponential jitter. Every IFS mutation (supplier update, posting proposal create) reads the record first to capture its ETag, then performs the PATCH or POST with that ETag to enforce optimistic concurrency. On the AvidXchange side, ml-connector calls the Partner API endpoints to push vendor master and GL dimensions, and polls payment completion endpoints on your schedule. Because IFS Cloud requires company code on financial entities, ml-connector prompts you to configure the company code during setup, and uses it on every GL account and voucher operation. Invoices flow in one direction (AvidXchange into IFS posting proposals); payments flow from AvidXchange back to IFS as voucher line items. Every record carries a complete audit trail, including the OData ETag for concurrent updates and the AvidXchange transaction ID for payment matching.

A real-world example

A mid-market electronics distributor runs IFS Cloud for inventory, purchasing, and finance across three regions. The procurement team receives 1000+ supplier invoices monthly through AvidXchange, where AP clerks approve them in workflow and schedule payments. Before the integration, the finance team manually coded each invoice to the right IFS supplier and GL account, then imported payment confirmations back into IFS at month end. With IFS and AvidXchange connected, suppliers and GL dimensions sync automatically from IFS to AvidXchange, so every invoice arriving in AvidXchange already routes to the correct account, and payment confirmations flow back to IFS without re-entry. The finance team now spends month end reconciling data instead of re-coding invoices.

What you can do

  • Sync suppliers and GL accounts from IFS Cloud to AvidXchange, ensuring all incoming invoices match valid vendors and GL codes.
  • Read invoices created in AvidXchange and post them as supplier invoices in IFS, tagged with the source GL account and supplier.
  • Pull purchase orders from IFS and reference them in AvidXchange invoice matching and approval workflows.
  • Authenticate against IFS Cloud with OAuth2 and tenant-specific URLs, and AvidXchange with partner token credentials, both encrypted end-to-end.
  • Poll on your schedule with automatic retries, ETag concurrency control, and full audit trails for every record.

Questions

How do suppliers and GL accounts sync between IFS Cloud and AvidXchange?
ml-connector pulls suppliers (SupplierSet) and GL accounts (AccountSet) from IFS Cloud on your configured schedule and pushes them to AvidXchange. This ensures that when a new invoice arrives in AvidXchange, the vendor and GL account are already present and valid, so the AP team can code it correctly without stepping out to look up account numbers.
Which direction do invoices and payments flow?
Invoices flow from AvidXchange into IFS as posting proposals, mapped to the suppliers and GL accounts that were synced from IFS. Payments flow from AvidXchange back to IFS as voucher line items after payment is completed in AvidXchange. IFS is the system of record for suppliers and accounts; AvidXchange is the AP processing hub.
How does ml-connector handle IFS OData rate limits and ETag concurrency?
IFS Cloud enforces a 1000-request-per-minute rate limit and requires ETag headers on mutations to prevent concurrent update conflicts. ml-connector tracks the rate limit (HTTP 429 response) and backs off with exponential jitter; on each record update, it reads the ETag from the current record, then includes that ETag in the PATCH request to satisfy IFS optimistic concurrency requirements.

Related integrations

Connect IFS Cloud and AvidXchange

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

Get started