Skip to main content
Technical Preview

Overview

QAD Adaptive ERP (QAD Adaptive Applications) runs items, inventory, production, purchasing, sales and quality for many manufacturers. It is built on the QAD Enterprise Platform (QEP), which serves REST APIs under the web application context, usually /clouderp. Connecting QAD to the broker lets the shop floor read work orders, on-hand inventory, BOMs and routings when a line needs them, check supplier and item certifications, and report production through the business services your environment exposes. QAD has no single public API catalog. The platform has three kinds of REST API:
  • Business components (api/qracore/be/<URI>): read a record by its domain and key fields. QAD names each component with a URI such as urn:be:com.qad.base.item.IItem.
  • Business documents: complete documents with Query REST APIs (filtering, sorting, paging). Each environment documents its own under Business Document API Documentation (Swagger).
  • Business services: non-CRUD methods exposed as REST with GET (query parameters) or POST (body). Each environment lists them under Business Service API Documentation.
The template has one client-mode connector, QadAdaptiveErp, with 36 events under erp/qad/. Each event publishes the reply on <topic>/response. 4 events write (business document submits and business service POSTs). The business component events only read, and there is no DELETE event.

Prerequisites

  • A QAD Adaptive ERP environment (QAD cloud or on-premises) reachable over HTTPS from the broker. Note its host and web application context: /clouderp on QAD cloud; some on-premises installs use /qad-central.
  • A Client ID for the broker, generated in Client IDs (Adaptive UX) or Client ID Maintenance (36.3.12). Use one Client ID per integration.
  • An API user who can sign in with a password (not single sign-on only), with the webui_user role, Read on each business component or browse you call, and Execute on each business service (Role Permissions > Not In Menu > Integration > External Business Services).
  • The domain code you work in, and the key field names of each component (Business Components > Fields, or the component’s Swagger).
  • For business documents and business services: the REST path and body schema from Business Document API Documentation or Business Service API Documentation in your environment.

Connection and security

QAD’s API authentication is OAuth 2 (password grant) or HTTP Basic. QAD recommends OAuth 2. Store the credentials as broker secrets and build the token form with GET SECRET: GetToken posts client_id=<Client ID>&grant_type=password&username=<user>&password=<password> as application/x-www-form-urlencoded to /clouderp/oauth/token. No client secret is sent. The reply carries access_token and refresh_token. Send "authorization": "Bearer <access_token>" on every other event. A Basic value (Basic <base64 user:password>) also works in the same field, but QAD discourages it. When a component has an active e-signature configuration, a write without a token fails with APIModeRequiredException or ESignatureRequiredException. Call GetEsignatureToken with {"password", "reasonCode", "remarks"} and use the *Esig events, which send the token in the X-QAD-Esig-Token header. If your environment uses /qad-central (or another context), replace /clouderp/ in every endpoint before you deploy, and change BASE_ADDRESS to your host.

Payload

Publish JSON on the event’s source topic. The broker fills the {value.json.<field>} placeholders:
  • authorization: on every event except GetToken and RefreshToken.
  • query: URL-encoded query string, for example domainCode=<domain>&itemCode=<item>. Use "" for none.
  • form: the URL-encoded token form on GetToken and RefreshToken.
  • body: JSON on POST events.
  • path: the REST path from the API documentation screen (starts with /clouderp/api/...) on the business document and business service events.
  • beUri: the business component URI on GetBusinessComponent.
  • browseId: the browse URI (urn:browse:<type>:<id>) on BrowseQuery.
  • esig_token: the e-signature token on the *Esig events.
Values are not URL-encoded by the connector, so encode query and form before you publish.

Pacing and errors

QAD publishes no rate limit or token lifetime. Read expires_in from the token reply and refresh before it runs out. Business document queries support paging; ask for small pages from the shop floor. Errors come back with the HTTP status and QAD’s envelope:
A bad or expired bearer returns 401 with {"error": "invalid_token"}. A token request with an unknown Client ID returns 401 The client is not authenticated.

Example actions

Connector template

Not packaged

  • Create, update or delete through api/qracore/be (not in QAD’s public guides), and any DELETE event.
  • QXtend (SOAP) inbound and outbound.
  • Business Events: QAD publishes them to an event streaming platform through the Integration Platform, not to HTTP callbacks, so there is no receiver connector.
  • QAD Integration Platform flows, analytics and composer admin APIs, and the Java extension framework.
  • Fixed events for single business documents or business services: their paths and schemas differ per environment, so use the generic events with the path from your API documentation screen.

Testing

Static checks 252/252 (structure, auth headers, write flags, and every business component URI checked against QAD’s Security Administration Guide), a local mock QAD server 36/36 (password grant, then every event with its method, path, bearer, e-signature header and body), controls 8/8 (wrong password, bad bearer, no credentials, HTTP Basic, missing e-signature token, e-signature token, missing payload field, non-JSON body) and live probes 10/10 passed. The probes checked QAD’s public guides and called QAD’s own hosted sign-in environment with fake credentials only: the token endpoint and the API both answer as the template expects. QAD Adaptive runs per customer with no public sandbox, so no authenticated call has run. See TEST.md in the package.

Suggested branches

  • feat/rest-api-route-qad-adaptive-erp (broker template)
  • feat/docs-rest-api-qad-adaptive-erp (this page)
Last modified on October 21, 2026