Skip to content

Payments service runbook

Anything on this page that moved money the customer can see is also a communications problem. The incident communications policy says who tells them and when, and it is not this team’s call.

Payment stuck in processing

The local demonstration writes to events.ndjson. Check it for a payment.completed event with the payment id. A deployed adapter should check the configured Kafka topic, NATS subject, SQS queue, or equivalent destination.

No event within 5 minutes means the settle step or transport adapter died. Restart the failed module and replay from the last acknowledged event.

Reporter shows INVALID events

First remove any broker envelope and inspect the event payload. The payload is off-contract when JSON Schema validation still fails after unwrapping. pnpm run check in this repo will name a drifted schema; regenerate contracts and ship a versioned event instead.

Dashboard request fails

Regenerate the frontend client from contracts/openapi.json and run its typecheck. If the generated client compiles but the live request fails, compare the deployed microservice version with the OpenAPI artifact used by the frontend build.