Register an HTTPS endpoint for tenant events
post/v1/tenants/{tenant_id}/webhooks
Requires an API key
Requires webhooks:write plus the read scope of each subscribed event type. The signing secret is returned once. Deliveries are signed (Ivora-Signature: t=<unix>,v1=<hex HMAC-SHA256 of '<t>.<body>'>), retried with backoff for about a day and are at-least-once: deduplicate by event id. Subscriptions belong to the tenant and outlive the creating key until disabled.
Path parameters
- tenant_idintegerRequired
Request body
- urlstringRequired12–512 characters
- eventsarray of enumRequiredEvent types to deliver. Each requires the read scope of the data it carries.
- descriptionstringDefault
""· Up to 120 characters - stationsarray of integer | nullDeliver station, connector, fault and meter events of these station resource IDs only. Omit for every station. Other event types are unaffected.
- meterobject | nullmeter.sampled options; the default interval is 60 seconds.
Child attributes
- sample_interval_secondsintegerMinimum seconds between meter.sampled deliveries of one transaction to this endpoint. A transaction's first and last samples are always delivered.Default
60· Minimum 10 · Maximum 3600
Returns · 201
- idstringRequired
- tenant_idintegerRequired
- urlstringRequired
- eventsarray of enumRequired
- descriptionstringRequired
- statusenumRequiredOne of
active,disabled - created_atstringRequired
- disabled_atstring | nullRequired
- stationsarray of integer | nullStation filter for station, connector, fault and meter events; null delivers every station.
- meterMeterOptions
Child attributes
- sample_interval_secondsintegerMinimum seconds between meter.sampled deliveries of one transaction to this endpoint. A transaction's first and last samples are always delivered.Default
60· Minimum 10 · Maximum 3600
- secretstring | nullReturned once at creation. Verify Ivora-Signature with HMAC-SHA256 over '<timestamp>.<raw body>'.
POST /v1/tenants/{tenant_id}/webhooks
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/tenants/1042/webhooks" \
-H "Authorization: Bearer $IVORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://app.example.com/ivora/webhooks",
"events": [
"operation.completed"
]
}'Response · 201
{
"id": "id_0123456789abcdef",
"tenant_id": 1042,
"url": "https://app.example.com/ivora/webhooks",
"events": [
"operation.completed"
],
"description": "string",
"status": "active",
"created_at": "2026-09-30T17:00:00Z",
"disabled_at": "2026-09-30T17:00:00Z",
"stations": [
1
],
"meter": {
"sample_interval_seconds": 60
},
"secret": "string"
}Try it is not available here yetRequests from this page are off until the production API at
https://api.ivoracharge.com is public. Use the code samples from your application server; Ivora grants production access. Keys are created in Developer tools.