Skip to main content
Dynamo CSMS webhooks push real-time events to your server when things happen on your charging network — sessions start and end, chargers connect or disconnect, alerts fire, and firmware updates complete. Instead of polling the API, you register an HTTPS endpoint and we deliver events as they happen.

Authentication

All webhook management endpoints require your API key:

Available events

Create a webhook endpoint

POST /api/v1/webhooks/endpoints
string
required
HTTPS URL where events will be delivered. Must use https://.
string[]
required
List of event types to subscribe to. Use ["*"] to subscribe to all events.
string
Signing secret for HMAC-SHA256 payload verification. Store this securely — it is not retrievable after creation.

List webhook endpoints

GET /api/v1/webhooks/endpoints Returns all webhook endpoints registered for your account.

Get a webhook endpoint

GET /api/v1/webhooks/endpoints/{endpoint_id}
string
required
The ID of the webhook endpoint to retrieve.

Update a webhook endpoint

PATCH /api/v1/webhooks/endpoints/{endpoint_id}
string
required
The ID of the webhook endpoint to update.
string
New delivery URL for this endpoint.
string[]
Replacement list of subscribed event types.
boolean
Set to false to pause delivery without deleting the endpoint.

Delete a webhook endpoint

DELETE /api/v1/webhooks/endpoints/{endpoint_id}
string
required
The ID of the webhook endpoint to delete.
Returns 204 No Content on success.

Delivery history

GET /api/v1/webhooks/endpoints/{endpoint_id}/deliveries Retrieve the delivery history for a webhook endpoint. Use this to debug failed deliveries or inspect retry behavior.
string
required
The ID of the webhook endpoint.
string
Filter by delivery status: succeeded, failed, or pending.
number
default:"20"
Number of records to return (max 100).
string
Unique delivery record ID.
string
The event type that triggered this delivery.
string
Delivery status: succeeded, failed, or pending.
number
HTTP status code returned by your endpoint.
number
Number of delivery attempts made. Dynamo retries failed deliveries with exponential backoff up to 5 times over 24 hours.

Webhook payload structure

Every event is delivered as an HTTP POST with a JSON body:
string
The event type (e.g., session.started).
string
ISO 8601 timestamp of when the event occurred.
object
Event-specific payload. Structure varies by event type.

Signature verification

When you provide a secret at endpoint creation, every delivery includes an X-Webhook-Signature header. The value is an HMAC-SHA256 digest of the raw request body, prefixed with sha256=. Always verify this signature before processing a webhook payload. This confirms the request came from Dynamo CSMS and the body was not tampered with in transit.
Compute the HMAC over the raw request body bytes before any JSON parsing. Parsing and re-serializing the payload may alter whitespace and invalidate the signature.
Respond with a 2xx status code within 10 seconds. If your handler needs more time to process an event, acknowledge the delivery immediately and process asynchronously.