# Phase 14.4 — Callback & Verification | Field | Value | | --- | --- | | Identifier | `payment-14.4` | | Implementation Priority | **HIGH** | | Status | Complete | | Service | `payment` | | Depends On | `payment-14.3` | > Full specification: [payment-roadmap.md](../../payment-roadmap.md#phase-14-4--callback--verification) ## Purpose Ingest PSP callbacks/webhooks, verify signatures, reconcile with PSP verify API, transition requests to paid/failed. ## Business Scope Trusted callback processing; admin reconcile retry; publish events for verticals to mark orders paid. ## Technical Scope Aggregates: PaymentCallbackLog, PaymentVerificationAttempt. Public callback routes per adapter. `verify_payment()`, `parse_callback()`. ## Dependencies `payment-14.3` ## Out of Scope Immutable ledger authority (14.5), refunds, Accounting posting. ## Capabilities `payment.callbacks`, `payment.verification`, `payment.webhooks` ## Permissions `payment.callbacks.view`, `payment.requests.reconcile|manage`; signature-gated public callbacks ## Events `payment.callback.received|verified|rejected`, `payment.request.paid|failed` ## API Contracts POST `/api/v1/callbacks/{provider_code}/{connection_id}`, POST `.../verify`, GET callback logs ## Data Ownership Payment owns callback logs; PSP transaction ids as external refs. ## Provider Ownership Webhook secrets in adapter layer. ## Integration Rules Never trust return URL alone; always PSP verify. Fast callback ack; async verify allowed. ## Quality Gates Signature forgery, replay protection, tenant routing isolation. ## Definition of Done Mock callback → verified paid; outbox events; verticals can subscribe. ## Future Compatibility Multi-version callbacks per PSP; international webhook formats.