ml-connector
SAP Business OnePayPal

SAP Business One and PayPal integration

SAP Business One runs your core financials, purchasing, and sales on-premise. PayPal handles your payments and invoicing online. Connecting them keeps your payment records in agreement across both systems. Incoming and outgoing payments recorded in SAP Business One sync with PayPal transactions and invoices so your cash position and receivables are accurate in real time. ml-connector handles the very different APIs on each side and moves the data on a schedule you control.

How SAP Business One works

SAP Business One exposes business partners, invoices, purchase invoices, purchase orders, incoming payments, outgoing payments, journal entries, and chart of accounts through OData v4 REST at a customer-specific Service Layer URL. Authentication uses a session token obtained via POST /Login that expires after 30 minutes of inactivity, with OAuth 2.0 available on v10.0 FP 2305 and later. SAP Business One supports webhooks on v10.0 FP 2602 and later, but polling is recommended as the default sync method. Each customer provides their own base URL; there is no shared global endpoint.

How PayPal works

PayPal exposes orders, authorizations, captures, refunds, invoices, transactions, subscriptions, and payouts through REST APIs at a global endpoint with v1 and v2 path prefixes. Authentication uses OAuth 2.0 Client Credentials with a Bearer token cached for approximately 8 hours. PayPal pushes webhook events via HTTPS POST with RSA-SHA256 signature verification, and retries up to 25 times over 3 days on non-2xx responses. PayPal has no native GL account objects, so reconciliation happens via transaction search limited to a 31-day window.

What moves between them

The main flow runs from SAP Business One into PayPal. ml-connector polls SAP Business One's IncomingPayments and OutgoingPayments entities on a schedule you define, maps each payment to a corresponding PayPal transaction or invoice, and tracks the sync state. Because SAP Business One is on-premise and has no webhook push to a cloud endpoint, polling with an UpdateDate filter is the primary method. PayPal transaction records are read-only in this direction, so ml-connector does not write transaction data back into PayPal from SAP Business One.

How ml-connector handles it

ml-connector maintains a persistent session with SAP Business One by reusing the B1SESSION token across multiple API calls within its 30-minute window, refreshing when needed. On the PayPal side it handles OAuth 2.0 token refresh automatically, caching the Bearer token to avoid redundant calls to the token endpoint. SAP Business One requires each payment to be matched by DocNum to prevent duplicate syncs on retry. Because SAP Business One is on-premise with a customer-specific Service Layer URL, ml-connector accepts the full base URL per customer and polls both IncomingPayments and OutgoingPayments with OData $filter=UpdateDate gt datetimeoffset(...). PayPal transaction search is limited to a 31-day window, so ml-connector maintains a sliding window of recent syncs and alerts when a transaction moves outside it. Every record carries a full audit trail and can be replayed if a downstream API call fails.

A real-world example

A small-to-midsize distribution company runs SAP Business One on-premise for core purchasing, sales, and general ledger operations, and uses PayPal for online payments and invoicing from web customers. Before the integration, the accounting team downloaded payment records from PayPal weekly and manually matched them to invoices and payments in SAP Business One, then posted the cash receipts and expenditures into the journal by hand. With SAP Business One and PayPal connected, each payment syncs automatically on a daily schedule, matched to the corresponding invoice or purchase order in SAP Business One, and the accounting team can reconcile cash and receivables without re-keying or manual matching.

What you can do

  • Poll SAP Business One for incoming and outgoing payments on a schedule you control, with automatic session token refresh and DocNum-based deduplication.
  • Map SAP Business One payments to PayPal transactions and invoices, keeping cash records aligned across both systems.
  • Handle OAuth 2.0 token refresh on the PayPal side and session token management on the SAP Business One side.
  • Store all payment attributes encrypted and maintain a complete audit trail of every record synced, with replay capability on failure.
  • Respect the 31-day transaction search window in PayPal and the 30-minute session timeout in SAP Business One.

Questions

How does ml-connector keep SAP Business One and PayPal payment records in sync?
ml-connector polls SAP Business One's IncomingPayments and OutgoingPayments entities on a schedule you define, using OData UpdateDate filters to find only new or changed records since the last run. Each payment is matched to a PayPal transaction or invoice using the payment amount and date, authenticated with SAP Business One's session token and PayPal's OAuth 2.0 Bearer token.
What happens if the SAP Business One session times out or a PayPal token expires?
ml-connector automatically refreshes the SAP Business One session token before it expires by reusing the existing B1SESSION cookie and obtaining a new one on timeout. PayPal Bearer tokens are cached and refreshed only when needed. Both systems' credentials are stored encrypted, and token refresh is transparent to the sync process.
Which direction does data move, and can ml-connector write payments back into either system?
Payments flow from SAP Business One into PayPal as read-only records for reconciliation. ml-connector matches and tracks the payments but does not write transaction data back into PayPal from SAP Business One. This keeps PayPal the system of record for payment details while SAP Business One remains the source of truth for your financial ledger.

Related integrations

Connect SAP Business One and PayPal

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

Get started