ml-connector
Oracle PeopleSoftCoupa

Oracle PeopleSoft and Coupa integration

Oracle PeopleSoft runs your finance and HR across vendors, invoices, and payments. Coupa runs your procurement and spend management. Connecting them keeps your procurement records fresh without manual export and re-entry. Vendors created in Oracle PeopleSoft flow into Coupa, invoices and payments sync automatically, and your spend platform is always current with your source of record.

How Oracle PeopleSoft works

Oracle PeopleSoft is a self-hosted on-premise ERP and HCM platform where each customer operates their own environment, either on-premise or on Oracle Cloud Infrastructure via PeopleSoft Cloud Manager. It exposes vendors, purchase orders, invoices, payments, and employee data through REST APIs via RESTListeningConnector or SOAP Component Interfaces, authenticated with HTTP Basic Auth (OPRID and password) or OAuth2 Bearer tokens for PeopleTools 8.58+. The base URL is customer-specific, no shared hostname. Oracle PeopleSoft has no public webhooks, so polling with date-range filters is the standard approach. Most REST endpoints are read-only inquiry operations, and write operations require SOAP calls or Integration Broker asynchronous messages.

How Coupa works

Coupa is a cloud-based procurement and business spend management platform that exposes suppliers, purchase orders, invoices, payments, and lookup values through REST APIs. It authenticates with OAuth2 client-credentials flow and uses X-Coupa-API-Version header pinning. Coupa supports webhooks for requisition, purchase order, invoice, supplier, expense report, and payment events, with HMAC-SHA256 signature verification. The API enforces rate limits on 429 and 5xx responses, with a 30-second request timeout and up to 3 retries with exponential backoff capped at 30 seconds. Webhook payloads are capped at 256KB.

What moves between them

The main flow runs from Oracle PeopleSoft into Coupa. Vendors from Oracle PeopleSoft (the VENDOR_CI component interface) are read and synced to Coupa as suppliers. Invoices and payments from Oracle PeopleSoft are read via the esfetchinvoiceinquiry and espaymentinquiry inquiry services and posted into Coupa as invoices and payments. This sync happens on a schedule you define, typically after invoice or payment processing runs in Oracle PeopleSoft.

How ml-connector handles it

ml-connector accepts your Oracle PeopleSoft hostname, port, node name, and authentication credentials (OPRID and password for HTTP Basic, or OAuth2 client credentials for PeopleTools 8.58+). It polls Oracle PeopleSoft inquiry services on your schedule, extracting vendors, invoices, and payments from the REST endpoints. Vendor names map to Coupa supplier names, and invoice and payment keys are tracked to prevent re-processing. On the Coupa side, ml-connector authenticates with OAuth2 and posts the records as suppliers, invoices, and payments. Coupa rate limits (429 responses) trigger exponential backoff and retry. Oracle PeopleSoft does not support idempotency keys at the API level, so ml-connector tracks processed invoice and payment IDs in the audit log to avoid duplicate submissions. Every record carries full metadata and can be replayed if a downstream call fails.

A real-world example

A mid-sized financial services firm runs Oracle PeopleSoft on-premise for accounting, procurement, and HR. They use Coupa for spend management and invoice approval across a distributed finance team. Before the integration, the accounts payable team manually exported vendor and invoice reports from Oracle PeopleSoft each day and re-entered new vendors and invoices into Coupa by hand, creating lag and reconciliation errors. With Oracle PeopleSoft and Coupa connected, vendors created in Oracle PeopleSoft flow into Coupa within hours, invoices appear in Coupa for approval without re-keying, and the AP team's manual work is eliminated. Month-end close is faster because invoice and payment records are already aligned.

What you can do

  • Sync Oracle PeopleSoft vendors to Coupa suppliers with automatic name and identifier mapping.
  • Read Oracle PeopleSoft invoices and payments via polling and post them into Coupa for approval and processing.
  • Authenticate Oracle PeopleSoft with HTTP Basic Auth or OAuth2 and Coupa with OAuth2, bridging the two credential sets.
  • Handle Oracle PeopleSoft's self-hosted URL and track processed invoices and payments by ID to prevent duplicates.
  • Poll on a schedule you control, with exponential backoff for Coupa rate limits and a full audit trail on every record.

Questions

Which direction does data move between Oracle PeopleSoft and Coupa?
The main flow is from Oracle PeopleSoft into Coupa. Vendors, invoices, and payments are read from Oracle PeopleSoft and synced into Coupa as suppliers, invoices, and payments. Write operations are one-way, so Coupa approval actions do not flow back into Oracle PeopleSoft; those remain your source of record for finance.
How does ml-connector handle Oracle PeopleSoft's self-hosted architecture?
Each Oracle PeopleSoft customer runs their own instance on their own servers or on Oracle Cloud Infrastructure. ml-connector accepts the full hostname, port, and node name per customer, along with your chosen authentication method (HTTP Basic or OAuth2). Because Oracle PeopleSoft has no webhooks, ml-connector polls on a schedule you define, typically after invoice and payment runs complete.
How does ml-connector prevent duplicate invoices or payments in Coupa?
Oracle PeopleSoft does not support idempotency keys at the API level, so ml-connector tracks the ID of each processed invoice and payment in its audit log. On each polling cycle, only new or updated records are synced, and previously processed IDs are skipped. If a record fails to post to Coupa, it is queued for replay and can be retried without creating duplicates.

Related integrations

Connect Oracle PeopleSoft and Coupa

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

Get started