ml-connector
Sage X3Airbase

Sage X3 and Airbase integration

Sage X3 powers procurement and finance across mid-market operations. Airbase handles accounts payable and spend authorization. Connecting them keeps purchase orders and vendor records in sync across both systems without manual re-entry. Suppliers created in Sage X3 become vendors in Airbase, and approved purchase requests in Airbase reflect back into Sage X3 purchase orders. The integration uses Sage X3's poll-based delta detection and Airbase's webhook events to stay current and catches changes in both directions.

How Sage X3 works

Sage X3 runs on-premise and cloud deployments and exposes purchase orders, suppliers, GL accounts, and other entities through REST api1 with HTTP Basic Authentication or GraphQL with OAuth2 bearer tokens. The service is accessed via customer-specific server URLs and folders with no central hostname; access tokens expire in 5 minutes but refresh tokens remain valid for 30 days. Sage X3 has no native webhook support, so records are discovered by polling with delta detection using updatedDate and modifiedDateTime fields.

How Airbase works

Airbase is a cloud REST API for spend management and accounts payable. It authenticates with a static bearer token generated in the Airbase portal and supports webhook notifications for purchase request approvals and other events. GL Accounts and Subsidiaries in Airbase are read-only and sourced from connected ERPs, while bills, purchase orders, vendors, and payments are writable. Webhook payloads include record ID, object type, creation date, and the event data.

What moves between them

The integration flows in both directions. Sage X3 suppliers are read on a schedule and written to Airbase as vendors. Sage X3 purchase orders are read and synced to Airbase as purchase requests. When Airbase purchase requests are approved, the integration reads those approvals via webhook notification and writes the corresponding purchase order updates back into Sage X3. GL account mappings are established once so expense allocations land on the correct Sage X3 accounts.

How ml-connector handles it

ml-connector stores both credential sets encrypted and uses OAuth2 refresh token handling for Sage X3 to manage the 5-minute access token expiry. For Airbase, the static bearer token is stored securely and refreshed if needed. Because Sage X3 has no webhooks, ml-connector polls suppliers and purchase orders on a configurable schedule using delta detection against updatedDate fields to minimize data transfer. Airbase purchase request approval events are received via webhook, allowing near-real-time feedback into Sage X3. Supplier and purchase order mappings between the two systems are maintained in the connector state, and every sync action is tracked with full audit data for replay and reconciliation if a call fails.

A real-world example

A mid-market distributor uses Sage X3 for procurement, inventory, and finance across three regional warehouses, and runs Airbase for accounts payable and expense management. Before the integration, the procurement team created purchase orders in Sage X3 and then manually entered the same orders into Airbase for approvals and coding. When a purchase request was approved in Airbase, the approval had to be communicated back to Sage X3 by email and phone. With Sage X3 and Airbase connected, new purchase orders in Sage X3 automatically appear in Airbase for review, approvals flow directly back into Sage X3, and the accounting team sees consistent purchase orders across both systems. Purchase order creation time is cut in half, and approvals no longer depend on manual handoffs.

What you can do

  • Read suppliers from Sage X3 and sync them to Airbase as vendors, keeping vendor lists in agreement across systems.
  • Read purchase orders from Sage X3 and create corresponding purchase requests in Airbase for approval workflows.
  • Receive approved purchase requests from Airbase via webhook and update the matching Sage X3 purchase orders with approval status.
  • Manage OAuth2 refresh token expiry for Sage X3 and static bearer token rotation for Airbase, with retries on 429 and other transient errors.
  • Maintain a full audit trail on all supplier and purchase order records, with replay and reconciliation support if any sync step fails.

Questions

What records move between Sage X3 and Airbase?
Suppliers in Sage X3 become vendors in Airbase, and purchase orders in Sage X3 become purchase requests in Airbase for approval. When a purchase request is approved in Airbase, the approval status is written back to the matching Sage X3 purchase order. GL account mappings ensure expense allocations land on the correct Sage X3 accounts.
How does the integration handle Sage X3's lack of webhooks and its short token expiry?
ml-connector polls Sage X3 suppliers and purchase orders on a schedule using delta detection via updatedDate fields, so it captures changes without continuous polling. For the 5-minute access token expiry, ml-connector uses Sage X3's refresh token (valid 30 days) to obtain new access tokens automatically, so outages from token expiry are prevented.
How are approvals communicated from Airbase back to Sage X3?
Airbase sends webhook notifications when a purchase request is approved. ml-connector listens for these webhooks and immediately reads the approval from Airbase, then updates the corresponding Sage X3 purchase order with the approval status and any metadata from Airbase, eliminating manual notification delays.

Related integrations

Connect Sage X3 and Airbase

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

Get started