ml-connector
SAP Business OneServiceNow

SAP Business One and ServiceNow integration

SAP Business One runs purchasing and invoicing for small-to-midsize manufacturers and distributors. ServiceNow runs procurement and accounts payable for enterprises. Connecting them keeps your purchase orders and supplier invoices synchronized between your ERP and your shared service platform. Purchase orders initiated in SAP Business One appear in ServiceNow for approval and processing, and invoices flow into the Accounts Payable module without manual re-entry. ml-connector handles the on-premise nature of SAP Business One and ServiceNow's role-based access control.

How SAP Business One works

SAP Business One exposes purchase orders, purchase invoice lines, incoming payments, suppliers (BusinessPartners), chart of accounts, and profit centers through OData v4 REST at a customer-provided Service Layer URL. Authentication uses a 30-minute session token obtained via POST /Login that returns a B1SESSION cookie, or OAuth 2.0 if the customer has enabled their IAM integration. SAP Business One is deployed on-premise or partner-hosted, so each customer provides their own base URL and may use self-signed TLS certificates. Webhooks are available in SAP Business One v10.0 FP 2602 and later if the Webhook Messenger Service is activated, but polling with OData filters is the standard pattern.

How ServiceNow works

ServiceNow exposes purchase orders, invoice records, vendors, cost centers, and chart of accounts through a cloud REST API at a customer-supplied instance URL. Authentication uses OAuth 2.0 client credentials, which is the recommended approach for machine-to-machine integrations and requires the customer to enable the client credentials grant type and install the required plugins. The Accounts Payable and Procurement modules are part of the Source-to-Pay Operations suite, a licensed add-on. ServiceNow does not provide native outbound webhooks, so ml-connector polls on a customer-defined schedule using the sys_updated_on timestamp field to fetch only records that have changed since the last run.

What moves between them

Purchase orders and supplier invoices created in SAP Business One flow into ServiceNow on a daily schedule (configurable per customer). Supplier information and cost centers are aligned in both directions so invoice lines reference valid procurement dimensions. Payment records from SAP Business One are read and matched against ServiceNow invoices to prevent duplicate processing. The flow is primarily source-to-target; ServiceNow records are not written back to SAP Business One.

How ml-connector handles it

ml-connector stores the SAP Business One Service Layer URL per customer and reuses the session token for the duration of its lifespan to avoid the 5-second cold-start latency of each login. When a token approaches its 30-minute inactivity limit, ml-connector refreshes it before the next poll cycle. On the ServiceNow side, ml-connector uses OAuth 2.0 client credentials to obtain a bearer token valid for 30 minutes and checks that the service account has the required roles for both the Procurement module and the Accounts Payable module. Because ServiceNow is pull-only, ml-connector polls both systems on a fixed schedule and deduplicates using the document number in SAP Business One and the sys_id in ServiceNow. Purchase order items are expanded inline using OData $expand to avoid N+1 calls. The integration validates that all suppliers and cost centers referenced in SAP Business One purchase orders exist in ServiceNow before syncing, and logs a failure if a dimension is missing so the customer can align the master data.

A real-world example

A mid-sized distributor runs SAP Business One on-premise for purchasing and invoicing across regional warehouses, and uses ServiceNow for enterprise procurement governance and expense management. Before the integration, the procurement team manually keyed supplier invoices from SAP Business One into ServiceNow's Accounts Payable module, a process that took 4-6 hours daily and introduced data entry errors. Purchase order approvals in ServiceNow were disconnected from the actual PO in the ERP, so approvers had to cross-reference two systems. With SAP Business One and ServiceNow connected, purchase orders are automatically populated in ServiceNow on creation, and invoices flow through Accounts Payable without re-keying. The procurement team spends less time on data entry and can focus on supplier management and payment policy compliance.

What you can do

  • Sync purchase orders from SAP Business One into ServiceNow procurement on a daily schedule, mapped to the correct vendors and cost centers.
  • Flow supplier invoices from SAP Business One into ServiceNow Accounts Payable staging tables for approval and processing.
  • Reuse SAP Business One session tokens to avoid auth latency and refresh them before timeout.
  • Authenticate ServiceNow using OAuth 2.0 client credentials and validate the service account has the required Procurement and Accounts Payable roles.
  • Deduplicate records using document numbers and system IDs, and align supplier and cost center master data before syncing to prevent downstream failures.

Questions

Which direction does data move between SAP Business One and ServiceNow?
Purchase orders and supplier invoices move from SAP Business One into ServiceNow. Supplier information and cost centers are aligned in both directions to ensure all invoice lines reference valid procurement dimensions in ServiceNow. Payment records from SAP Business One are matched against ServiceNow invoices to prevent duplicate processing.
How does ml-connector handle SAP Business One session token expiry and ServiceNow role-based access?
ml-connector reuses the SAP Business One B1SESSION token for its entire lifespan and refreshes it 5 minutes before the 30-minute inactivity timeout to avoid losing the session mid-sync. On ServiceNow, ml-connector obtains an OAuth 2.0 bearer token and verifies that the service account has the Procurement and Accounts Payable module roles before attempting any data operations.
Why does ml-connector validate suppliers and cost centers before syncing?
SAP Business One purchase orders reference suppliers (BusinessPartners) and profit centers that must exist in ServiceNow before an invoice can be processed. ml-connector performs this validation upfront and logs a detailed error if a dimension is missing, so the customer can align master data and retry without creating orphaned records in ServiceNow.

Related integrations

Connect SAP Business One and ServiceNow

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

Get started