email verification api webhook
Email verification API webhook
Use signed billing webhooks to update plan state when subscriptions become active, canceled, or revoked.
Subscribe to subscription events from your billing system.
Verify signatures before applying state changes.
Keep billing logic server-side and deterministic.
POST /webhooks/billing
Webhook-Id: ...
Webhook-Timestamp: ...
Webhook-Signature: v1,...
{
"type": "subscription.active",
"data": {
"external_customer_id": "123",
"status": "active"
}
}
What event matters most?
subscription.active for activation and subscription.canceled for access removal.
Do I need a portal too?
Yes. The portal lets customers manage their own billing state.
Integration pattern
Use a server-side API key, validate on the backend, and return a short JSON result to your signup or import flow. That keeps secrets out of the browser and lets you enforce policy before you create user records.
Production concerns
The important pieces are rate limits, error codes, billing state, and clear response shapes. If a verification API is hard to integrate or hard to explain, developers will either skip it or wire it incorrectly.
FAQ
Fatal error: Uncaught TypeError: e(): Argument #1 ($s) must be of type string, null given, called in /var/www/emailverify/views/marketing/blog-post.php on line 33 and defined in /var/www/emailverify/app/helpers.php:82
Stack trace:
#0 /var/www/emailverify/views/marketing/blog-post.php(33): e()
#1 /var/www/emailverify/app/helpers.php(9): require('...')
#2 /var/www/emailverify/app/Controllers/BaseController.php(4): view()
#3 /var/www/emailverify/app/Controllers/MarketingController.php(59): BaseController->view()
#4 /var/www/emailverify/app/Router.php(32): MarketingController->blogPost()
#5 /var/www/emailverify/public/index.php(13): Router->dispatch()
#6 {main}
thrown in /var/www/emailverify/app/helpers.php on line 82