SAP Business One and UPS integration
SAP Business One runs your small-to-midsize business operations: orders, purchasing, inventory, and financial records. UPS moves your goods and provides visibility. Connecting the two keeps your shipping costs accurate and your orders tracked in real time. Sales orders flow from Business One to UPS for rating and shipment creation, tracking numbers and costs come back, and your ledger stays synchronized with what you actually shipped. ml-connector handles the authentication differences and the multi-step data choreography so you do not.
What moves between them
Sales orders in SAP Business One trigger a UPS shipment creation and rating workflow. Before shipment, address validation ensures both addresses resolve correctly. After a successful rating, the shipment cost and carrier are written back into Business One as line items on the associated purchase order or invoice, and the UPS tracking number is stored in a Business One reference field. Tracking updates flow from UPS into Business One on a daily or weekly schedule, and shipment status changes are recorded in Business One's audit trail.
How ml-connector handles it
ml-connector stores the SAP Business One Service Layer URL and session credentials encrypted, and refreshes the 30-minute session token before it expires so requests do not fail mid-flow. For UPS, it maintains the OAuth2 bearer token and refreshes it before the 4-hour limit, tracking the per-day token request quota to avoid hitting the rate limit. Address validation happens before rating so invalid addresses (shipping or billing) are caught and reported before any UPS charge is incurred. The rating response includes the shipment cost, which ml-connector writes to Business One as a calculated line item. Because SAP Business One has no published idempotency keys, ml-connector checks for duplicate shipments by DocNum before retry, preventing duplicate UPS charges. Tracking subscriptions are renewed before their 14-day expiry, and tracking events are fetched on a configurable daily or weekly schedule.
A real-world example
A small manufacturing business in the textile industry uses SAP Business One for order management and accounting, and ships most orders through UPS. Previously, the warehouse team created UPS shipments separately in the UPS portal and then manually entered the shipment cost and tracking number back into Business One, a process that took 10-15 minutes per order and often created data entry errors. With SAP Business One and UPS connected, each sales order routes to UPS automatically for rating and shipment creation, the cost flows back into the purchase order, and the tracking number is available in Business One for customer inquiries. The finance team no longer chases discrepancies between Business One shipping costs and actual UPS charges, and customer tracking requests can be answered in seconds by looking at the Business One order record.
What you can do
- Validate customer and shipping addresses against UPS data before creating a shipment.
- Rate and create a shipment in UPS when a sales order is confirmed in SAP Business One.
- Capture the UPS shipment cost and tracking number and write them back into Business One as order line items.
- Track shipments in UPS and update the order status and tracking information in Business One on a daily schedule.
- Refresh OAuth2 tokens before expiry and manage UPS Track Alert subscription renewals automatically.
Questions
- How does the integration handle SAP Business One's customer-specific Service Layer URL?
- ml-connector accepts the full Service Layer base URL per customer deployment, since SAP Business One publishes no global shared endpoint. Each customer must provide their base URL (https://<customer-server>:<port>/b1s/v2/) during setup. ml-connector reuses the authenticated session across multiple requests to avoid the 5-second startup penalty on every call.
- What happens if a UPS address is invalid?
- Address validation occurs before any shipment is created or rated. If either the shipping address or billing address fails UPS validation, ml-connector reports the error back to SAP Business One (stored in a reference field on the order) and does not proceed to shipment creation. This prevents invalid address charges and gives the sales team a chance to correct the address in Business One.
- Does ml-connector handle UPS token expiry and Track Alert subscription renewal?
- Yes. ml-connector monitors the OAuth2 bearer token (approximately 4-hour lifetime) and refreshes it before expiry, staying under the approximately 250 per-day limit. Track Alert subscriptions expire after 14 days and must be renewed; ml-connector tracks expiry and automatically renews before the deadline so tracking updates do not stop.
Related integrations
More SAP Business One integrations
Other systems that connect to UPS
Connect SAP Business One and UPS
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started