Go-live checklist — Integrator API
Use against staging (or local Compose) before pointing production traffic.
- Optional first pass: use the public integrator sandbox workbench (
/developer/accountsignup → JWT in browser only) before wiring production credentials - Obtain Keycloak client credentials / user JWT for the target tenant (
client_adminorplatform_adminas required) - Confirm API base URL and TLS
-
GET /v1/healthandGET /v1/readyzsucceed -
POST /v1/intake/submitreturns201with submission id - Retry
POST /v1/intake/submitwith the sameIdempotency-Keyand body returns the same201(no second submission) - Same
Idempotency-Keywith a different body returns409IDEMPOTENCY_KEY_MISMATCH -
GET /v1/intake/submissions/{id}returns the submission -
POST /v1/webhooks/subscriptionswith HTTPS FQDN returns201and a one-timesecret - Persist
secretoffline; confirmGET /v1/webhooks/subscriptionsdoes not return secrets - Implement signature verification with
scripts/integrator/verify_webhook_signature.py(or equivalent) - Confirm 422 on
http://webhook URL and private IP targets - Confirm 401 without Bearer token
- Confirm 429 behavior under load (optional soak)
- OpenAPI subset still validates:
python3 scripts/qa/validate_integrator_openapi.py --live <staging>/openapi.json - Note P6-056 status before relying on live callback delivery
Production API must not require /docs — distribute integrator-openapi.json + these guides.