Webhooks

Receive real-time events when chargers connect, transactions start, or status changes. Register a URL and we'll POST events to it.

Webhooks require Starter tier or above. Free tier users do not have access to webhook endpoints. Upgrade your plan to receive real-time event notifications.

Create webhook

POST/api/v1/webhooks

Register a webhook endpoint to receive events.

Request body
json
{
  "url": "https://myapp.com/webhooks/capacitor",
  "events": [
    "charger.connected",
    "charger.disconnected",
    "transaction.started",
    "transaction.stopped"
  ],
  "secret": "optional_webhook_secret"
}
Response — 201 Created
json
{
  "id": "wh_123",
  "url": "https://myapp.com/webhooks/capacitor",
  "events": ["charger.connected", "transaction.started"],
  "active": true,
  "createdAt": "2026-02-06T12:00:00.000Z"
}

Available events

EventDescription
charger.connectedCharger connects via WebSocket
charger.disconnectedCharger disconnects
charger.bootCharger sends BootNotification
connector.status_changedConnector status changes
transaction.startedCharging session begins
transaction.stoppedCharging session ends
transaction.updatedMeter values updated during session

Event payload

Events are delivered as POST requests to your webhook URL with a JSON body:

transaction.started payload
json
{
  "event": "transaction.started",
  "timestamp": "2026-02-06T14:30:00.000Z",
  "data": {
    "transactionId": 12345,
    "chargeBoxId": "CHARGER-001",
    "connectorId": 1,
    "idTag": "USER001",
    "meterStart": 0
  }
}
charger.connected payload
json
{
  "event": "charger.connected",
  "timestamp": "2026-02-06T14:30:00.000Z",
  "data": {
    "chargeBoxId": "CHARGER-001"
  }
}
Webhook deliveries are fire-and-forget. If your endpoint returns a non-2xx status, the event is not retried. Ensure your endpoint responds within 5 seconds.

List webhooks

GET/api/v1/webhooks

Get all registered webhooks.

Response — 200 OK
json
{
  "webhooks": [
    {
      "id": "wh_123",
      "url": "https://myapp.com/webhooks/capacitor",
      "events": ["charger.connected", "transaction.started"],
      "active": true,
      "createdAt": "2026-02-06T12:00:00.000Z"
    }
  ]
}

Update webhook

PATCH/api/v1/webhooks/:webhookId

Update a webhook's URL, events, or active status.

Request body
json
{
  "url": "https://newurl.com/webhooks",
  "events": ["charger.connected"],
  "active": true
}

Delete webhook

DELETE/api/v1/webhooks/:webhookId

Remove a webhook.

Response — 200 OK
json
{
  "message": "Webhook deleted successfully"
}