Every platform event.
Delivered in real time.
CarrierPilot fires a webhook for every significant event — balance alerts, DID assignments, fraud detections, payments, and more. Build any automation on top of your telecom platform.
Every event, documented.
balance.lowFires when a customer's prepaid balance drops below the configured threshold.
{
"customer_id": "cust_4821",
"balance": 10.5,
"threshold": 20,
"currency": "USD"
}did.assignedFires when a DID is provisioned to a customer account.
{
"did": "+12125550100",
"customer_id": "cust_4821",
"country": "US",
"type": "local"
}customer.createdFires when a new customer account is created in the platform.
{
"customer_id": "cust_4822",
"name": "Acme Corp",
"plan": "growth",
"created_at": "2026-06-14T00:00:00Z"
}payment.receivedFires when a payment is successfully processed for an account.
{
"customer_id": "cust_4821",
"amount": 299,
"currency": "USD",
"method": "dodo_payments"
}fraud.alertFires when the fraud engine detects a suspicious call pattern on an account.
{
"customer_id": "cust_4821",
"type": "IRSF",
"destination": "+9001234567",
"severity": "high"
}invoice.generatedFires when a monthly invoice is generated at billing cycle end.
{
"invoice_id": "inv_7291",
"customer_id": "cust_4821",
"total": 4820,
"due_date": "2026-07-01"
}Set up in 3 steps
Add an endpoint
Register your HTTPS endpoint URL in the CarrierPilot dashboard. We'll send a test ping to verify.
Select events
Choose which event types to subscribe to. You can add multiple endpoints with different event filters.
Receive events
We deliver signed JSON payloads over HTTPS with automatic retries on failure and delivery logs.
import crypto from 'crypto';
export function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(`sha256=${expected}`)
);
}
// Express handler example
app.post('/webhooks/carrierpilot', (req, res) => {
const isValid = verifyWebhook(
req.rawBody,
req.headers['x-cp-signature'],
process.env.WEBHOOK_SECRET
);
if (!isValid) return res.status(401).end();
const { event, data } = req.body;
if (event === 'fraud.alert') {
// Send to Slack, block account, etc.
}
res.status(200).end();
});What operators build with webhooks
Auto top-up balance
When balance.low fires, trigger a top-up request via your payment provider and credit the account — zero manual intervention.
Slack fraud alerts
Route fraud.alert events straight to your #ops Slack channel so your team is notified the instant anomalies are detected.
CRM customer sync
Mirror every customer.created event to your CRM to keep your sales and support teams in sync automatically.
ERP invoice export
Forward invoice.generated events to your accounting system for automatic invoice reconciliation.
Custom provisioning flows
Trigger complex provisioning workflows on did.assigned events — configure downstream systems in your stack automatically.
Revenue tracking
Stream payment.received events to your analytics pipeline to track MRR, churn, and LTV in real time.
Build on top of your telecom platform
Webhooks are available on Growth plans and above.