SYSPRO and Stedi integration
SYSPRO runs procurement and finance for mid-market manufacturers and distributors. Stedi translates procurement documents into X12 EDI and routes them to suppliers via SFTP, FTPS, or AS2. Connecting the two lets you send purchase orders to suppliers as EDI without manual re-keying, and receive supplier invoices as EDI that flow automatically into SYSPRO without leaving data stranded in email or filing systems. ml-connector handles the authentication on both sides, polls SYSPRO on a schedule you control, translates documents to and from EDI, and keeps a full audit trail of every record.
What moves between them
The primary flow is SYSPRO into Stedi outbound. ml-connector polls SYSPRO purchase orders on a schedule, translates each into a Stedi 850 Purchase Order EDI document, and sends it outbound through your configured Stedi SFTP, FTPS, or AS2 connection to the supplier. Inbound, Stedi receives supplier 810 Invoices as EDI files and pushes them as JSON webhooks; ml-connector parses the webhook, translates the EDI into SYSPRO supplier invoice fields, and writes the invoice into SYSPRO ApInvoice via e.net Business Objects. Supplier master data such as ID, name, and address is aligned from SYSPRO into Stedi partnership and transaction settings so outbound EDI documents carry the correct partner identifiers.
How ml-connector handles it
ml-connector stores both SYSPRO credentials (server URL and OData operator code/password) and the Stedi API Key encrypted. On the SYSPRO side, it refreshes the e.net session token on every call by calling Utilities/Logon with the operator code and password to obtain a new UserId GUID, then passes that GUID on all subsequent OData and e.net calls. On the Stedi side, it includes the API Key in every request Authorization header and sends an Idempotency-Key (UUID) with each outbound write to prevent duplicates if a request is retried. ml-connector polls SYSPRO OData purchase order table on a schedule tied to your procurement cycle, filtering on PostDate to find new and changed orders, and translates field-by-field into a Stedi 850 request body using your configured partner code and supplier mapping. When Stedi webhooks arrive with inbound 810 invoices, ml-connector validates the webhook within the 5-second response window, parses the X12 into invoice line items and totals, maps Stedi partner identifiers back to SYSPRO ApSupplier, and posts the invoice into SYSPRO via e.net ApInvoice.Create. If the SYSPRO write fails, ml-connector retries on the next poll cycle. The audit log tracks every translated document, every webhook received, and every write into SYSPRO.
A real-world example
A mid-sized industrial distributor operates SYSPRO for purchasing and general ledger, and ships to 200 suppliers with a mix of EDI-capable and email-based vendors. Before the integration, the procurement team printed purchase orders from SYSPRO and emailed them to EDI-capable suppliers, then manually entered supplier invoices from PDF into SYSPRO at month-end, cross-checking totals against the originating POs and handling discrepancies by email. With SYSPRO and Stedi connected, new purchase orders flow automatically as 850 EDI documents through Stedi to suppliers that accept EDI, eliminating the manual email step. Supplier 810 invoices arrive inbound as JSON webhooks and post into SYSPRO ApInvoice with full line-item detail, tax, and freight cost allocation. The month-end invoice entry step is nearly gone; most invoices are auto-posted, and the team only handles exceptions. Invoice-to-PO matching in SYSPRO now finds matches on the day the vendor ships, not at month-end.
What you can do
- Poll SYSPRO purchase orders and suppliers and translate them to Stedi 850 Purchase Order EDI documents on a schedule you control.
- Receive inbound Stedi 810 Invoices as webhooks, parse them, and write them into SYSPRO ApInvoice with full line-item detail.
- Map SYSPRO suppliers to Stedi partners and transaction settings so outbound EDI carries the correct partner identifiers.
- Handle SYSPRO session token refresh on every call and manage the Stedi API Key on the Authorization header.
- Route EDI outbound through Stedi SFTP, FTPS, or AS2 connections with full deduplication and audit trail.
Questions
- Which direction does data move between SYSPRO and Stedi?
- The primary flow is SYSPRO outbound to Stedi. Purchase orders from SYSPRO are translated to 850 EDI documents and routed to suppliers. Inbound, supplier 810 invoices arrive from Stedi as webhooks and are written into SYSPRO ApInvoice. Supplier master data such as ID, name, and address is aligned in both directions so EDI documents carry correct identifiers.
- How does ml-connector handle SYSPRO's session token and Stedi's API Key?
- ml-connector calls SYSPRO Utilities/Logon on every request to obtain a fresh e.net session token (UserId GUID), then passes that GUID on all OData and e.net calls. On the Stedi side, it includes the API Key in the Authorization header on every REST call and sends an Idempotency-Key (UUID) with each outbound write to prevent duplicates if a request is retried.
- Does SYSPRO support webhooks, or does ml-connector have to poll?
- SYSPRO does not support outbound webhooks. ml-connector polls the SYSPRO OData purchase order and supplier tables on a schedule tied to your procurement cycle, filtering on PostDate to detect changes. Stedi does push webhooks for inbound EDI, so ml-connector receives and processes them within the 5-second response window.
Related integrations
More SYSPRO integrations
Other systems that connect to Stedi
Connect SYSPRO and Stedi
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started