Skip to content

feat: implement subscription webhooks#303

Closed
shaaibu7 wants to merge 1 commit intoSmartdevs17:mainfrom
shaaibu7:feat/webhook-subscription-events
Closed

feat: implement subscription webhooks#303
shaaibu7 wants to merge 1 commit intoSmartdevs17:mainfrom
shaaibu7:feat/webhook-subscription-events

Conversation

@shaaibu7
Copy link
Copy Markdown
Contributor

@shaaibu7 shaaibu7 commented Apr 24, 2026

Summary

Implemented subscription webhook support across the contract, backend delivery layer, and React Native app. Merchants can now
register webhook endpoints for filtered subscription lifecycle events, inspect delivery history, pause/resume webhooks, retry
failed deliveries, and view basic health/analytics.

What changed

  • Added shared webhook types for configs, retry policy, event payloads, delivery status, and analytics.
  • Extended the Soroban subscription contract with webhook storage and lifecycle hooks.
  • Added webhook event snapshots for subscription state and plan state.
  • Added backend webhook delivery service with:
    • HMAC signature generation and verification
    • configurable exponential backoff retries
    • max retry handling
    • payload size guard
    • idempotency handling
    • health checks and analytics
  • Added React Native webhook management UI and persisted local webhook state.
  • Wired webhook settings into app navigation and settings.

Verification

  • Added backend tests for signature verification, retry behavior, payload size limits, and manual retry.
  • Attempted contract compilation, but local verification is currently blocked by the existing contracts workspace manifest
    resolution issue in this environment.
  • Attempted Jest execution, but jest is not installed in the workspace.

Notes

  • The implementation follows the issue requirements for registration, event filtering, delivery logging, manual retry, pausing,
    health checks, and analytics.
  • Contract-side delivery records are persisted, while actual HTTP delivery/retry logic lives in the backend service where network
    I/O is possible.

closes #174

@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented Apr 24, 2026

@shaaibu7 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Webhook system for subscription lifecycle events

1 participant