You receive
The member’s Keycloak subject (sub), session id (sid), display name and email, at sign-in.
The booking engine is where guests book and pay. Trident adds two things to it: members arrive already signed in, and paid bookings earn points. The booking engine keeps everything about bookings and payment; Trident keeps who the member is and their points.
flowchart LR classDef ours fill:#13686C,stroke:#0B4A4D,color:#ffffff classDef ext fill:#F3ECDF,stroke:#B9A88B,color:#12191B classDef person fill:#E9724C,stroke:#C55A37,color:#ffffff g(["Guest"]):::person app["FINNS app"]:::ours be["<b>Your booking engine</b><br/>website + backend"]:::ext kc["Keycloak<br/>FINNS accounts"]:::ext core["Trident core"]:::ours g --> app app -- "1 · opens /auth/handoff?code=…" --> be be -- "2 · peek + redeem code" --> core be -- "3 · OIDC sign-in<br/>(direct, silent, fresh)" --> kc be -- "4 · booking paid" --> core core -- "5 · guest signed out" --> be kc -- "5 · back-channel logout" --> be
You receive
The member’s Keycloak subject (sub), session id (sid), display name and email, at sign-in.
You send
One message per paid booking: {sub, bookingId, totalIdr}. Core turns it into points.
You host
POST /auth/revoke (from core) and a back-channel logout endpoint (from Keycloak).
You hold
Two secrets from FINNS: an API token (you → core) and a revoke token (core → you). Plus a Keycloak client registration.
Internal and confidential. Share partner sections only as partner builds (pnpm build:partner).