specs/pm/specs/PM-53-refund-recoupment-takeback-management.md
Overview
PM-53 introduces three first-class money-out / money-clawed-back workflows on top of PM-09: patient refund, payer recoupment / takeback detection, and disputed-takeback escalation to PM-29. PM-53 owns the operational data model and state machines; FA owns GL posting and is reached exclusively via event publishing tocl_pm_events. PM-37 (proposed) owns the patient liability ledger and consumes append events when it ships (Phase C, deferred).
This stub captures the canonical integration points; full payload schemas and consumer contracts will be expanded during Phase A implementation. See the spec’s Event Contracts section for authoritative payload definitions today.
Integration Points
Platform Foundation (PF) Dependencies
Same-Core Dependencies (PM)
Cross-Core Dependencies
Event Contracts
Events Published
PHI minimization: Both payloads contain only opaque UUIDs (
patient_id, refund_id, original_payment_id) and amounts, but patient-linked identifiers should be treated as sensitive metadata and handled with PHI/PII-safe logging, notification, and access controls per the documentation guidelines. Additional safeguards (e.g., masking, access checks, audit logging) are recommended when UUIDs are used to correlate patient records.
Events Consumed
PM-53 does not consume cross-core events in MVP. Theprocess-era extension reads incoming 835 segments (already processed by PM-09 / PM-15) and creates recoupment rows synchronously during ERA ingestion.
API Contracts
PM-53 does not expose new external APIs. All cross-core communication is via events. Internal frontend hooks (useRefunds, usePayerRecoupments, etc.) call Supabase RPC / table queries directly under RLS.
Permission Keys (5 keys)
Pending Items (to be expanded)
- Concrete consumer contract for FA Edge Function (
fa-consume-pm-payment-eventsor newfa-consume-pm-refund-events). - Phase C contract with PM-37 (deferred — populated when PM-37 ships).
- Notification template
pm.refund.approval_requiredpayload schema and PF-10 registration. - Jurisdiction profile schema additions for
recoupmentDisputeWindowDays(PF-96 cross-link).
PENDING_CONTRACTS.md under PM-53.
References
- Spec:
specs/pm/specs/PM-53-refund-recoupment-takeback-management.md - Cross-core matrix:
CROSS_CORE_INTEGRATIONS.md— PM-53 row registered after PM-44. - Event contracts (general):
EVENT_CONTRACTS.md - Adjacent integrations:
- Lite alternatives (superseded 2026-04-19):
PM-09-EN-11,PM-09-EN-15