Adapter Development with Gateway API
Build a standalone channel adapter in any language using the Adapter Gateway REST API.
The Adapter Gateway exposes a REST API under /external/* that lets you build a channel adapter without the Adapter SDK: no Java requirement, no access to PDX infrastructure, no private Maven repository. Your adapter is a standalone service (or even a scheduled job) that talks HTTPS to the gateway.
The base URL follows the pattern:
https://{pdx-environment}/api/v1/adapter-gateway
For example, https://pdx-preprod.stibosystems.com/api/v1/adapter-gateway. All endpoints in this guide are relative to that base URL. The full endpoint reference is available in the Adapter Gateway API reference.
How a Gateway API adapter works
The adapter lifecycle is a loop:
- Register your channel and its datastandard —
POST /external/channelsandPOST /external/channels/{channelId}/datastandard. Registration is idempotent per version: check the current datastandard version first and only push when it changed. - Poll for events —
GET /external/events. Events tell you when a PDX user connects an account to your channel (authenticationEvent), submits products (submitEvent), or deletes the channel connection (clientChannelDeletedEvent). - Process the event — for a submission: fetch the submitted products, transform them into the target system's format, and deliver them.
- Report back —
POST /external/submit/statusandPOST /external/submit/itemsfor submissions,POST /external/authenticationfor authentication results. - Continue polling — events returned by a poll are acknowledged automatically by default (see Polling for Events).
The End-to-End Walkthrough shows the full loop with example requests.
Endpoint overview
| Area | Endpoints |
|---|---|
| Channel registration | POST /external/channels, GET /external/channels/{channelId} |
| Datastandard | POST /external/channels/{channelId}/datastandard, GET /external/channels/{channelId}/datastandard, GET/POST /external/channels/{channelId}/generatorInfo, POST /external/channels/{channelId}/businessRuleVersion |
| Events | GET /external/events, PUT /external/events/{eventId} |
| Authentication | POST /external/authentication |
| Submission data | GET /external/submission/{submissionId}, GET /external/submission/{submissionId}/familyIds, GET /external/submissions/{submissionId}/families/{familyId}/ids, POST /external/submission/{submissionId}/products, POST /external/submission/{submissionId}/products/channel |
| Packaging hierarchies | GET /external/submissions/{submissionId}/packagingHierarchies |
| Receivers | GET /external/channels/receivers/clients/{clientId}/channels/{channelId} |
| Status reporting | POST /external/submit/status, POST /external/submit/items |
Capabilities
The Gateway API covers the full adapter lifecycle: channel and datastandard registration, the authentication flow, submission processing (regular, family-based, and packaging-based), receiver-aware channels, and status reporting per submission and per item. It is the same API the Adapter SDK uses — see Adaptor Implementation for how the two approaches compare.
In this section
- Authentication and Tokens — how to get and use the API token every endpoint requires.
- Polling for Events — event types, acknowledgment, and how to poll reliably.
- Fetching Submission Data — the product fetch endpoints, the two product ID namespaces, families, and receiver-level data.
- End-to-End Walkthrough — a complete adapter flow with example requests.
Updated 30 days ago
