SAP Business One and Airbase integration
SAP Business One runs financials, purchasing, and inventory. Airbase runs spend management: accounts payable, corporate cards, and expense reimbursements. Connecting the two means approved Airbase spend posts into SAP Business One as purchase invoices and journal entries without re-keying, and the GL accounts, cost centers, and vendor master stay in agreement across both systems. ml-connector handles the different APIs on each side and moves the data on a schedule you control. Because Airbase reads its chart of accounts from the connected ERP, the general ledger stays in SAP Business One where it belongs.
What moves between them
The main flow runs from Airbase into SAP Business One. ml-connector reads approved Airbase bills, corporate card transactions, and expense reimbursements and posts them into SAP Business One as purchase invoices and journal entries, mapped to the matching SAP GL accounts and cost centers. Vendor records flow the same direction so the SAP Business One BusinessPartners master reflects vendors onboarded in Airbase. SAP Business One GL accounts and cost centers are read so Airbase coding resolves to dimensions that already exist in the ERP. The general ledger lives in SAP Business One, so ml-connector posts financial entries one way and never writes ledger entries back into Airbase.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Airbase side it sends the portal-generated bearer token on every request and scopes calls to the tenant base URL. On the SAP Business One side it logs in once to get a B1SESSION cookie, reuses it across requests because a first login costs about five seconds, and catches the session-expiry error code minus 5002 to re-authenticate and replay the failed call. Because SAP Business One webhooks require the Webhook Messenger service and admin setup the connector cannot self-register, ml-connector polls Airbase for approved spend on a schedule rather than waiting for a push, and only acts on records that have cleared their approval chain so a draft bill is never posted. GL accounts and cost centers are read first, so every purchase invoice line and journal line references a chart-of-accounts code and dimension that already exists in SAP Business One. SAP Business One has no idempotency key, so ml-connector dedupes on the Airbase record id and a BullMQ jobId, and checks the DocNum before posting, which avoids double-booking a re-read bill. Where Airbase webhooks are enabled they can act as a trigger, and SAP Business One batch changesets let a multi-document post commit atomically. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized manufacturer with around 200 staff runs SAP Business One for purchasing and finance and adopted Airbase to give employees corporate cards and a faster bill-approval workflow. Before the integration, accounting exported approved bills and card statements from Airbase each week and keyed them into SAP Business One as purchase invoices by hand, which delayed vendor payments and left card spend uncoded until month-end. With SAP Business One and Airbase connected, each approved bill, card transaction, and reimbursement posts into SAP Business One within the polling window, coded to the correct expense account and cost center, and new vendors flow into the BusinessPartners master automatically. The re-keying step is gone and the expense accounts are reconciled before close begins.
What you can do
- Post approved Airbase bills, card transactions, and reimbursements into SAP Business One as purchase invoices and journal entries.
- Map Airbase GL coding and dimensions to SAP Business One chart-of-accounts codes and cost centers.
- Keep the SAP Business One BusinessPartners vendor master aligned with vendors onboarded in Airbase.
- Authenticate Airbase with its portal bearer token and SAP Business One with its session-cookie login on a customer-specific URL.
- Poll on a schedule with record-id and jobId dedup, retries, and a full audit trail on every record.
Questions
- Which direction does data move between SAP Business One and Airbase?
- The main flow is Airbase into SAP Business One. Approved bills, card transactions, expense reimbursements, and vendor records move from Airbase into SAP Business One, posted as purchase invoices and journal entries. Airbase reads its chart of accounts from the connected ERP, so the general ledger stays in SAP Business One and ml-connector never writes ledger entries back into Airbase.
- How does the integration handle the SAP Business One session login and lack of webhooks?
- ml-connector logs in once to obtain a B1SESSION cookie and reuses it across requests, since a first login costs about five seconds. When the session expires after inactivity the Service Layer returns error code minus 5002, which ml-connector catches to re-authenticate and replay the call. Because SAP Business One webhooks need server-side admin setup, it polls Airbase for approved spend on the schedule you set rather than relying on a push.
- Does ml-connector post bills that are still pending approval in Airbase?
- No. Airbase bills, purchase orders, and expenses run through configurable approval chains, and a created record is not necessarily approved or paid. ml-connector only posts records that have cleared their approval status, and it dedupes on the Airbase record id and the SAP Business One DocNum so a re-read bill is never booked twice.
Related integrations
More SAP Business One integrations
Other systems that connect to Airbase
Connect SAP Business One and Airbase
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started