Webhooks & Notifications
Event-driven notification system overview — real-time alerts, webhooks, and event subscriptions for the M2P Prepaid Platform.
The M2P Prepaid Platform provides a comprehensive event-driven notification system supporting real-time customer alerts, webhook callbacks, and event streaming.
Capabilities
- Real-time customer notifications via SMS, Email, and Push
- Webhook callbacks to partner systems for event-driven integration
- Event subscriptions for card lifecycle and transaction events
- Advance notifications for scheduled events (card expiry, dormancy)
- Kafka-based event streaming for high-throughput integrations
Architecture
System Components
| Component | Service | Purpose |
|---|---|---|
| Event Producer | Configuration, Issuance, Customer Services | Publishes events to Kafka |
| Notification Topic | Kafka: pp_initiate_notification | Central notification queue |
| Notification Consumer | Notification Service | Processes events, applies templates, routes to channels |
| Template Engine | Notification Service | Replaces variables in notification templates |
| Channel Adapters | SMS / Email / Push / Webhook | Delivers notifications to end recipients |
| Event Subscription | Authorization Service | Configurable event callbacks for partners |
Sections
Event Subscriptions
Configure webhook endpoints for card and transaction event callbacks.
Notification Events
Complete catalog of 40+ notification events by category.
Webhook Integration
Payload formats, retry policy, security, and signature verification.
Templates
Template variables, sample templates, and product-level configuration.
Best Practices
Design guidelines, troubleshooting, and monitoring recommendations.
Update Wallet Status POST
Updates the status of a specific wallet associated with a cardholder. This is used for controlling what transactions are allowed on the wallet. Common scenarios include: ### Use Cases - **Temporary Freeze**: Lock a wallet when suspicious activity is detected. The cardholder can't transact but you can unlock it later without losing any data. - **Permanent Block**: Block a wallet for compliance violations or confirmed fraud. Requires support intervention to unblock. - **Fraud Prevention**: Mark a wallet as FRAUD to suspend all operations pending investigation. - **Customer Self-Service**: Allow cardholders to block their own wallet via your app (CUSTOMER_BLOCKED status). - **Credit Freeze**: Prevent new loads while allowing the cardholder to spend existing balance. - **Debit Freeze**: Allow loads/credits but prevent spending (e.g., during dispute investigation). - **Refund Only**: After card closure, allow only refund credits to process. - **Reactivation**: Change status back to ACTIVE to restore full transaction capabilities. ### Status Transition Rules Not all status transitions are allowed. Key constraints: - `CLOSED` → Cannot transition to any other status (permanent) - `EXPIRED` → Cannot transition to any other status (permanent) - `FRAUD` → Can only be changed by authorized support roles - `BLOCKED` → Can only be unblocked by authorized support roles - `LOCKED` → Can be changed to `ACTIVE` (unlock) by the partner - `ACTIVE` → Can transition to `LOCKED`, `BLOCKED`, `CREDIT_FREEZE`, `DEBIT_FREEZE`, etc.
Event Subscriptions
Configure webhook event subscriptions — CRUD APIs for registering, updating, and managing event callbacks.
