ml-connector
Oracle PeopleSoftTaxJar

Oracle PeopleSoft and TaxJar integration

Oracle PeopleSoft runs your finance and HR operations on your own servers or in Oracle Cloud. TaxJar keeps your sales tax reporting current and accurate across all states and nexus regions. Connecting the two means every completed sale in PeopleSoft flows to TaxJar immediately for real-time tax calculation, and your customer records stay aligned across both systems. No manual entry of transactions into a separate tax tool, and no missing nexus or exemptions when compliance deadlines arrive.

How Oracle PeopleSoft works

Oracle PeopleSoft exposes employees, customers, sales orders, invoices, and general ledger entries through REST listening connectors and SOAP component interfaces. Each customer runs their own instance on their own servers or via Oracle Cloud Infrastructure, so the base URL is unique per deployment. Authentication uses HTTP Basic Auth (OPRID and password) for all PeopleTools versions, or OAuth2 Bearer token for PeopleTools 8.58 and later. PeopleSoft has no webhook push system, so integrations must poll using date-range filters or rely on asynchronous Integration Broker messages to external HTTP endpoints, which require customer configuration. Polling is the recommended approach for compliance-critical workflows.

How TaxJar works

TaxJar exposes tax rate calculations, transaction reporting, customer exemption management, and nexus region tracking through REST APIs at https://api.taxjar.com/v2/. Authentication uses a single API token issued from the TaxJar app (no OAuth2 or client credentials required). The token is sent as a Bearer token in the Authorization header or as a Token header with the format Token token="<API_TOKEN>". TaxJar offers a stateless sandbox environment for testing, available on the Professional plan and above. Posting transactions and retrieving tax rates require real-time REST calls; TaxJar has no webhooks or event subscriptions, so all integration traffic is poll-based or merchant-initiated POST/PUT.

What moves between them

Sales transactions and customer records flow from Oracle PeopleSoft into TaxJar. When a sale completes in PeopleSoft, ml-connector reads the order and customer details using PeopleSoft's REST APIs (with date-range filters to keep polling efficient), validates the delivery address through TaxJar's address validation endpoint, and then posts the transaction to TaxJar for tax calculation and state reporting. Customer exemption records from PeopleSoft are synchronized to TaxJar's customer endpoint so that exemptions are honored in real-time tax calculations. New nexus regions activated in TaxJar are read periodically and synced back to PeopleSoft for reference. Data flows are unidirectional for transactions (PeopleSoft to TaxJar) and bidirectional for reference data (customers and nexus regions).

How ml-connector handles it

ml-connector stores both the PeopleSoft user credentials (OPRID and password or OAuth2 token) and the TaxJar API token encrypted at rest. Because Oracle PeopleSoft has no webhooks, ml-connector polls PeopleSoft at a frequency you control (typically every 15 to 60 minutes) using date-range filters on the order creation timestamp to retrieve only new records since the last poll. The self-hosted nature of PeopleSoft means each customer provides their own hostname, port, and node name in the connection configuration; ml-connector constructs the REST listening connector URL dynamically for each request. When a new order is found, ml-connector retrieves the full order and customer details, validates the ship-to address through TaxJar's /addresses/validate endpoint (if validation fails, the record is flagged and replayed on the next cycle), calculates the tax using TaxJar's /taxes endpoint, and then posts the completed transaction using /transactions/orders. Customer exemption status is pulled from PeopleSoft and synced to TaxJar's customer endpoint. If TaxJar returns a 422 (transaction already exists), ml-connector falls back to PUT to update the record; if PUT returns 404, it reverts to POST, ensuring no duplicate reporting to tax authorities. All polling, transformations, and API calls are logged with full audit trails so any transaction can be replayed if a downstream call fails.

A real-world example

A mid-sized e-commerce business runs Oracle PeopleSoft for order management, invoicing, and general ledger accounting. Their finance team manually exports completed orders from PeopleSoft each week, looks up tax rates by state and locality, and enters the transactions into TaxJar before the state reporting deadline. The process is error-prone, nexus regions are sometimes missed, and customer exemptions are not always applied. With Oracle PeopleSoft and TaxJar connected, every order that ships in PeopleSoft automatically syncs to TaxJar with the correct address validated, tax calculated in real-time, and customer exemption status applied. The finance team spends no time on data entry, and the company never misses a nexus or exemption again.

What you can do

  • Sync completed sales orders and customer records from Oracle PeopleSoft to TaxJar in real-time for immediate tax calculation.
  • Validate all delivery addresses through TaxJar before posting to ensure accurate tax rate assignment and compliance.
  • Store customer exemption status in TaxJar and apply it to all transactions for that customer without re-keying.
  • Poll PeopleSoft on a schedule you control, with date-range filtering to keep API traffic efficient and avoid duplicate reporting.
  • Encrypt both PeopleSoft credentials and the TaxJar API token at rest, with full audit trails on every transaction.

Questions

How does ml-connector handle Oracle PeopleSoft's lack of webhooks?
ml-connector polls PeopleSoft at a frequency you define (typically 15 to 60 minutes) using date-range filters on the order creation timestamp to retrieve only new transactions since the last poll. Because PeopleSoft is self-hosted, each customer provides their unique hostname, port, and node name; ml-connector constructs the REST listening connector URL dynamically on each request.
What happens if address validation fails for a transaction?
If TaxJar's address validation endpoint rejects an address, ml-connector flags the transaction with the validation error and holds it for replay on the next polling cycle. This prevents incomplete or misaligned addresses from reaching the tax calculation endpoint, so compliance reports are always accurate.
Does ml-connector handle customer exemptions across both systems?
Yes. ml-connector reads exemption status from Oracle PeopleSoft and syncs it to TaxJar's customer endpoint so that exemptions are honored in real-time tax calculations. If a customer is marked tax-exempt in PeopleSoft, all their transactions in TaxJar are calculated with exemption applied, and any change to exemption status is synchronized automatically.

Related integrations

Connect Oracle PeopleSoft and TaxJar

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

Get started