ml-connector
Oracle E-Business SuiteSquare

Oracle E-Business Suite and Square integration

Oracle E-Business Suite runs your accounts payable, procurement, and general ledger. Square processes your payments and invoicing. Connecting the two keeps your vendor master aligned and your payment receipts in sync. Invoices created in EBS flow to Square where they can be invoiced to customers or used as vendor references, and when Square records a payment, ml-connector posts the receipt back into EBS without re-entry. You control the sync schedule and can replay any record if a downstream step fails.

How Oracle E-Business Suite works

Oracle E-Business Suite (R12.2) exposes vendors, purchase orders, invoices, AP checks, and GL accounts through the Integrated SOA Gateway, a database-level REST API gateway deployed on a customer-hosted machine. Authentication uses HTTP Basic auth (username and password) or a session token obtained by calling the login endpoint; every request must include application context headers that specify responsibility, organization, security group, and language. EBS has no webhook system, so records are read by polling the open interface views filtered by LAST_UPDATE_DATE. Write operations often queue into interface tables where concurrent programs import them asynchronously into the base tables, and the process may take minutes to hours. Session tokens expire based on EBS session timeout (typically 30 to 60 minutes), and the connector must re-authenticate on a 401 response. AP payments are read-only; creating payments requires running Oracle Payments concurrent programs directly, not the REST API.

How Square works

Square exposes payments, invoices, orders, vendors, and inventory through a versioned REST API at https://connect.squareup.com/v2, with a sandbox at https://connect.squareupsandbox.com/v2. Authentication uses OAuth 2.0 bearer tokens, obtained via the Authorization Code flow for multi-seller integrations or a Personal Access Token for single-account access. Access tokens expire after 30 days and must be refreshed using the refresh token, which does not expire. Square supports webhooks for real-time push notifications on payment creation, payment updates, refunds, invoices, and orders, each signed with an HMAC-SHA256 signature for verification. The Vendors API is in beta, and the Orders API update endpoint is also in beta. Square is a commerce-layer platform and has no GL Accounts or Chart of Accounts API, so financial records must be mapped to an external accounting system.

What moves between them

The main flow runs from Oracle E-Business Suite into Square. ml-connector polls EBS on a schedule for new and updated vendor records and unpaid invoices, maps them to Square vendors and orders, and creates or updates them in Square. The reverse flow is event-driven: Square webhooks notify ml-connector of payment completions and refunds, which are then posted into EBS as AP receipts or deductions, matched to the original invoice. Reference data such as vendor names, addresses, and tax IDs flow both directions to keep the two systems aligned.

How ml-connector handles it

ml-connector stores EBS Basic auth credentials encrypted and generates a session token on each poll cycle, re-authenticating on a 401 response if the session has expired. It includes the required application context headers on every EBS request. For Square, ml-connector stores the OAuth refresh token encrypted and refreshes the access token before it expires at the 30-day mark, detecting expiry via timestamp rather than waiting for a 401. ml-connector polls EBS for vendors and invoices filtered by LAST_UPDATE_DATE with limit and offset pagination to handle large datasets. When creating vendors or invoices in Square, it maps EBS fields (vendor name, invoice number, amount, due date) to Square equivalents and stores the mapping so incoming Square payment notifications can be routed back to the correct EBS invoice. Square webhooks are registered per-customer and verified by computing the HMAC-SHA256 signature of the request body with the webhook signing key. When a payment webhook arrives, ml-connector looks up the original EBS invoice, posts an AP receipt in EBS, and marks the Square invoice as paid. Retries use exponential backoff with jitter on network timeouts and 429 rate-limit responses. The audit log captures every poll, every record created or updated, and every webhook received, so any record can be replayed if an EBS concurrent program fails to import it.

A real-world example

A mid-sized wholesale distributor runs Oracle E-Business Suite for procurement and accounts payable and uses Square for invoicing and payment processing with their SMB customers. Before the integration, the AP team manually entered vendor information into Square, created invoices by hand, and then had to track Square payment receipts and manually post them into EBS as AP checks. With Oracle E-Business Suite and Square connected, new vendor records created in EBS appear in Square automatically, and invoices pulled from EBS can be sent to customers through Square. When a customer pays a Square invoice, the payment flows back into EBS as an AP receipt, eliminating the manual data entry and reducing reconciliation time at month-end close.

What you can do

  • Poll Oracle E-Business Suite for vendor and invoice records on a schedule, map them to Square, and keep both systems aligned.
  • Receive Square payment and refund webhooks, post them into EBS as AP receipts, and maintain the invoice-to-payment mapping across both systems.
  • Handle Oracle E-Business Suite session token refresh on expiry and Square OAuth token refresh before the 30-day expiry, retrying on network and rate-limit failures.
  • Encrypt both credential sets and store them securely, with full audit logging of every poll, sync, and webhook received.
  • Replay failed records and resolve discrepancies without re-polling, using the audit trail as the source of truth.

Questions

Which direction does data move between Oracle E-Business Suite and Square?
Vendors and invoices move from Oracle E-Business Suite to Square on a polling schedule you control. Payment confirmations and refunds flow from Square back to EBS as AP receipts via webhooks. Reference data such as vendor names and addresses are synced both directions so the two systems stay aligned.
How does ml-connector handle Oracle E-Business Suite's session token expiry and Square's 30-day OAuth token refresh?
ml-connector generates a new EBS session token on each poll cycle and detects a 401 response to know when the session has expired. For Square, ml-connector tracks the OAuth token expiry timestamp and refreshes the token before it expires at the 30-day mark, so you do not have to monitor expiry manually. Both credential sets are stored encrypted.
What happens if an invoice fails to import into Oracle E-Business Suite after ml-connector posts it?
Every record movement is logged in the audit trail with its EBS and Square IDs. If an EBS concurrent program fails to import a vendor or invoice, you can replay the record from the audit log without re-polling EBS. If a Square payment webhook fails to post into EBS, the webhook is stored and can be retried once the downstream issue is resolved.

Related integrations

Connect Oracle E-Business Suite and Square

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

Get started