# 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`