Connectors
How ShiftxPay speaks to PSPs.
A connector is ShiftxPay's integration with one payment service provider (PSP). ShiftxPay uses a single connector — Peach — for Mauritius. It is implemented behind a single driver interface, so the PSP is spoken to in normalized terms and the rest of the gateway — and your integration — does not change.
The driver abstraction
A driver speaks to its PSP in normalized terms only:
- Amounts in integer minor units and an ISO 4217 currency — never floats.
- Intent ids (the PSP's payment-intent / checkout reference) and payment-
method tokens (
pm_...) — never a raw PAN. - Card metadata is brand and last four digits only; the gateway never receives full card numbers.
This is the no-raw-card invariant in code: there is no path through any driver that accepts or returns raw card data. The card is always collected inside the PSP's own surface in the buyer's browser.
A driver also declares its checkout surfaces — the front-end mount points it supports (see Checkout surfaces) — and verifies its own inbound webhook signatures, mapping each PSP event into one normalized shape so webhook handling is connector-agnostic too.
The active connector is chosen for you
A merchant has a Peach connector configured and marked as the default
(primary) connector for an environment. When your server creates a checkout
session, ShiftxPay automatically resolves the merchant's default connector and
routes the operation to it — you never name a PSP in the request. If no active
connector is configured, the create call returns 409 no_connector.
Selecting a surface
A merchant selects which surface their connector advertises (and which connector is primary) with:
PATCH /v1/merchants/me/connectors/{cid}
Content-Type: application/json
{ "surface": "peach-embedded", "make_primary": true }The surface must be one the connector supports. The next session created carries the updated render hints, and the SDK mounts that surface automatically.
The connector
| Connector | Model | Surface | Webhook |
|---|---|---|---|
| Peach | Per-merchant | peach-embedded | Per-merchant endpoint at /v1/webhooks/peach/{mco_id}. |