ml-connector
Oracle JD EdwardsSquare

Oracle JD Edwards and Square integration

Square handles your point-of-sale, payments, and invoicing. Oracle JD Edwards EnterpriseOne manages your financials and general ledger. Connecting the two brings Square transaction data directly into your Oracle JD Edwards revenue accounts, customer master, and journals without re-keying. Square payments, invoices, and customer records flow into Oracle JD Edwards mapped to your GL chart of accounts and cost centers, and the sync runs on a schedule you set.

How Oracle JD Edwards works

Oracle JD Edwards EnterpriseOne is an on-premises ERP suite exposing financials, procurement, manufacturing, distribution, and HR through REST APIs via the Application Interface Services (AIS) Server running at customer infrastructure. Authentication uses a session token obtained via POST to the customer AIS Server with username and password, passed in the jde-AIS-Auth header on all subsequent requests. Key entities include the Address Book (F0101), Account Master (F0901), Account Ledger (F0911), Invoice batch tables (F0413, F0414), and Item Master (F4101). Oracle JD Edwards has no native outbound webhooks, so records are read by polling with date filters on update timestamps, and the AIS Server URL is customer-provided because the product runs on-premises with no fixed public hostname.

How Square works

Square is a cloud payments and commerce platform exposing point-of-sale, payments, invoicing, orders, vendors, customers, and inventory through a versioned REST API at https://connect.squareup.com/v2. Authentication uses OAuth 2.0 bearer tokens obtained via Authorization Code flow or Personal Access Token. Access tokens expire after 30 days and must be refreshed via a non-expiring refresh token. Key entities include Payment, Refund, Invoice, Order, Vendor, Customer, Catalog, and Location. Square supports webhooks for payment, invoice, order, and customer events with HMAC-SHA256 signature verification, allowing push notifications when records are created or updated rather than requiring polling.

What moves between them

The main flow runs from Square into Oracle JD Edwards. ml-connector polls Square on a configurable schedule for payments, orders, invoices, and customer records. Payments and invoices become revenue transactions posted into Oracle JD Edwards Account Ledger (F0911) tables, allocated to the GL accounts and cost centers matched by Square location and transaction type. Square customer records are synchronized into Oracle JD Edwards Address Book (F0101) to keep the customer master current. Alternatively, ml-connector can receive Square webhooks for payment and order events and post them directly without polling, depending on your configuration.

How ml-connector handles it

ml-connector maintains encrypted credential storage for both systems: the Oracle JD Edwards AIS Server URL, service account username and password on the Oracle JD Edwards side; the Square OAuth2 access token and refresh token on the Square side. It obtains a session token from the customer's Oracle JD Edwards AIS Server by passing the encrypted credentials, then uses that token in the jde-AIS-Auth header on each request. On the Square side, it refreshes the OAuth2 bearer token when it expires (every 30 days) and handles Square's rate limiting with exponential backoff and retry. The integration maps Square transaction types and location IDs to Oracle JD Edwards GL accounts and cost centers through configurable rules, so each Square payment line item posts to the correct revenue or other GL account. Because Oracle JD Edwards AIS Server has a token lifetime of 30 to 60 minutes, ml-connector monitors token validity and re-authenticates silently on HTTP 444 (token invalid) without blocking the data flow. Square payments are marked with an idempotency key to prevent duplicate posting if a write succeeds but the confirmation is lost. Every record carries full audit trail and can be replayed if the Oracle JD Edwards post fails.

A real-world example

A multi-location retail operation runs Square for point-of-sale and payments across 12 stores, and Oracle JD Edwards EnterpriseOne on-premises for inventory, purchasing, and accounting. Before the integration, the finance team exported Square payment summaries every night and manually entered the daily sales totals and customer transactions into Oracle JD Edwards, a task that took three hours per day and was prone to rounding errors and missed transactions. With Square and Oracle JD Edwards connected, each Square payment posts automatically to the correct GL revenue account and cost center for that store location, and customers from Square are synced into the Address Book so the two systems agree on who the customers are. Daily revenue reconciliation now takes 15 minutes instead of three hours, and the finance team has confidence that Oracle JD Edwards revenue totals match Square's payment records.

What you can do

  • Post Square payments and invoices into Oracle JD Edwards GL accounts as revenue transactions, allocated to cost centers by location.
  • Sync Square customers into Oracle JD Edwards Address Book (F0101) so customer master is kept current.
  • Map Square transaction types and location IDs to Oracle JD Edwards GL accounts and cost centers via configurable rules.
  • Authenticate with Oracle JD Edwards session tokens and Square OAuth2 bearer tokens, with automatic refresh and re-auth on token expiry.
  • Poll Square on a schedule or receive payment and invoice webhooks, with full audit trail and replay capability on failure.

Questions

Which direction does data move between Oracle JD Edwards and Square?
The main flow is from Square into Oracle JD Edwards. Square payments, invoices, orders, and customer records move into Oracle JD Edwards revenue accounts, invoices, and the customer master. Oracle JD Edwards is the source of truth for GL accounts and cost centers, which are mapped into Square transactions to ensure proper categorization. ml-connector does not write financial records back from Oracle JD Edwards to Square.
How does ml-connector handle Oracle JD Edwards session tokens expiring every 30 to 60 minutes?
ml-connector monitors the token validity and detects HTTP 444 responses (invalid token) from the Oracle JD Edwards AIS Server. When a token expires, it silently re-authenticates with the stored credentials to obtain a fresh token and retries the request without blocking the data flow or requiring manual intervention.
Can I use Square webhooks instead of polling Oracle JD Edwards?
Yes. Square supports webhooks for payment, invoice, and order events with HMAC-SHA256 signature verification. ml-connector can be configured to receive those webhooks and post transactions directly into Oracle JD Edwards without polling, or use a hybrid approach where critical events flow via webhook and periodic reconciliation happens on a schedule.

Related integrations

Connect Oracle JD Edwards and Square

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

Get started