ml-connector
Oracle PeopleSoftSPS Commerce

Oracle PeopleSoft and SPS Commerce integration

Oracle PeopleSoft powers procurement and order fulfillment. SPS Commerce connects you to retail trading partners like Walmart, Target, and Amazon via a unified EDI network. Connecting the two keeps your supply chain orders and acknowledgments flowing without manual re-entry or file drops. Inbound purchase orders from SPS Commerce populate PeopleSoft requisitions, and outbound invoices and advance ship notices from PeopleSoft move back through SPS Commerce to your retail partners on their schedule.

How Oracle PeopleSoft works

Oracle PeopleSoft exposes purchase orders, requisitions, invoices, vendor information, and fulfillment status through REST and SOAP services accessed via a PeopleSoft-specific URL pattern with HTTP Basic Auth (OPRID and password) or OAuth2 Bearer token where PeopleTools 8.58 or later is deployed. The REST API is primarily read-only inquiry operations; write operations require SOAP Component Interface calls or asynchronous Integration Broker messages. No webhooks are published, so integrations must poll with date-range filters to retrieve updated records. Each customer maintains their own on-premise or Oracle Cloud infrastructure with a unique hostname, port, and node name.

How SPS Commerce works

SPS Commerce exposes purchase orders, acknowledgments, invoices, advance ship notices, and inventory transactions through a REST API at https://api.spscommerce.com, with all documents wrapped in RSX JSON envelope format version 7.7.7. Authentication uses OAuth 2.0 client credentials flow with a separate token endpoint at https://api.spscommerce.net. Documents are polled via cursor-based pagination and pushed to SPS Commerce immediately when generated in PeopleSoft. SPS is a pass-through intermediary; trading partner identities are provisioned during onboarding and are not discoverable via API. The webhook framework is still in development, so polling is the recommended pattern.

What moves between them

Inbound purchase orders and acknowledgments flow from SPS Commerce into PeopleSoft on a configurable polling schedule (typically 5 to 15 minutes). Outbound invoices and advance ship notices are pushed from PeopleSoft to SPS Commerce immediately when created or marked ready-to-ship, ensuring retail partners receive acknowledgments and shipping notifications in real time. Catalog and vendor data are pulled from PeopleSoft on a periodic refresh to validate trading partner and item mappings within SPS.

How ml-connector handles it

ml-connector maintains separate credential sets for PeopleSoft HTTP Basic Auth (or OAuth2 token for 8.58+) and SPS Commerce OAuth2 client credentials, refreshing both tokens before expiry. On the inbound side, it polls SPS Commerce's purchase order endpoint with cursor-based pagination every 5 to 15 minutes, extracts each RSX-wrapped document, parses the purchase order line items, and creates or updates matching PeopleSoft requisitions via SOAP Component Interface calls, using the trading partner ID and purchase order number as the natural key. On the outbound side, it monitors PeopleSoft for newly created invoices and ready-to-ship items, wraps them in RSX envelopes with the correct trading partner identifier, and POSTs them to SPS Commerce's invoice and fulfillment endpoints. Because SPS defines no idempotency key at the API level, ml-connector deduplicates using purchase order and invoice numbers. Rate limits on SPS are not publicly documented, so ml-connector implements exponential backoff with jitter on HTTP 429 responses. PeopleSoft polling is filtered by date range to avoid retrieving the entire dataset on each run. The integration maintains a full audit trail of every translated document, raw request and response payload, and any parsing errors, so failed orders can be replayed once the upstream issue is resolved.

A real-world example

A mid-sized consumer goods supplier operates Oracle PeopleSoft for procurement and order fulfillment and ships to multiple major retail chains through SPS Commerce. Before the integration, the supply chain team manually downloaded purchase orders from SPS Commerce every morning, entered line items into PeopleSoft requisitions, and later exported invoices from PeopleSoft to upload to SPS Commerce as text files. This multi-step manual process was error-prone and delayed acknowledgment of orders to retail partners by 24 hours. With PeopleSoft and SPS Commerce connected, inbound purchase orders automatically create PeopleSoft requisitions, and outbound invoices flow back to SPS Commerce immediately, eliminating the file drop step and reducing order-to-acknowledgment time from one day to minutes.

What you can do

  • Poll SPS Commerce for inbound purchase orders and translate RSX-wrapped documents into PeopleSoft requisitions with automatic line-item mapping.
  • Push outbound invoices and advance ship notices from PeopleSoft back to SPS Commerce in real time, wrapped in the correct RSX envelope format for each retail partner.
  • Authenticate PeopleSoft with HTTP Basic Auth or OAuth2 (8.58+) and SPS Commerce with OAuth2 client credentials, managing token refresh before expiry.
  • Deduplicate purchase orders and invoices using document-level identifiers and handle SPS Commerce rate limits with exponential backoff and jitter.
  • Maintain a complete audit trail of every translated document, raw payloads, and parsing errors, enabling replay of failed orders once upstream issues are resolved.

Questions

How does ml-connector handle the RSX JSON envelope format that SPS Commerce requires?
SPS Commerce wraps all documents in RSX (Rosettanet eXtensible) JSON envelope version 7.7.7. ml-connector parses the outer RSX structure to extract trading partner ID, document type, and line items, then translates the inner payload into PeopleSoft requisition fields. Outbound invoices and ASNs from PeopleSoft are wrapped in the same RSX format before posting back to SPS Commerce.
Why does the integration poll rather than use webhooks?
SPS Commerce has a webhook framework in development but the producer standards are not yet finalized, making polling the only stable approach. ml-connector polls the SPS Commerce purchase order endpoint at a configurable interval (5-15 minutes, typically aligned with your peak order windows) and filters PeopleSoft by date range to keep load manageable on both systems.
How are PeopleSoft and SPS Commerce credentials stored and refreshed?
ml-connector stores both credential sets encrypted in its database. It maintains a cached OAuth2 token for both systems and refreshes each token before expiry to avoid failed API calls. For PeopleSoft 8.57 and earlier, HTTP Basic Auth (OPRID and password) is used; for 8.58+, OAuth2 is preferred. SPS Commerce always uses OAuth2 client credentials against its separate token endpoint.

Related integrations

Connect Oracle PeopleSoft and SPS Commerce

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

Get started