ShiftxPay
Connectors

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

ConnectorModelSurfaceWebhook
PeachPer-merchantpeach-embeddedPer-merchant endpoint at /v1/webhooks/peach/{mco_id}.

On this page