# Documenter — F-023 Payments: provider interface + Stripe + webhooks ## Summary Payments module isolates Stripe logic in a single adapter. The webhook endpoint verifies signatures and idempotently records events; payments_transactions is the source of truth. ## Public API notes | Route | Access | Result | |---|---|---| | POST /payments/webhook | signature-protected | Persists event, transitions order when applicable | | GET /payments/orders/:orderId/transactions | authenticated | Lists transactions for the order | ## Errors - `INVALID_PAYMENT_SIGNATURE` — HTTP 400 ## Evidence - `work/artifacts/F-023/architect.md` - `work/artifacts/F-023/implementer.md` - `work/artifacts/F-023/reviewer.json` - `work/artifacts/F-023/security.json` - `work/artifacts/F-023/qa.json`