Skip to content

Webhooks

List webhook endpoints

Scope: webhooks:manage

Terminal window
curl https://app.rieck.nu/api/v1/webhook-endpoints \
-H "Authorization: Bearer $RIECK_API_KEY"

Register endpoint

Response carries the signing secret exactly once. HTTPS only; private hosts rejected; max 10 per organisation.

Scope: webhooks:manage

Terminal window
curl -X POST https://app.rieck.nu/api/v1/webhook-endpoints \
-H "Authorization: Bearer $RIECK_API_KEY" \
-H "Idempotency-Key: order-2041" \
-d '{
"url": "https://erp.acme.example/webhooks/rieck",
"eventTypes": [
"…"
],
"description": "Consulting"
}'
Request body — fuldt JSON Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"eventTypes": {
"minItems": 1,
"maxItems": 28,
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
}
},
"required": [
"url",
"eventTypes"
],
"additionalProperties": false
}

Get endpoint

Scope: webhooks:manage

Terminal window
curl https://app.rieck.nu/api/v1/webhook-endpoints/9b2f1c1e-… \
-H "Authorization: Bearer $RIECK_API_KEY"

Update endpoint

The URL cannot be changed — register a new endpoint instead.

Scope: webhooks:manage

Terminal window
curl -X PATCH https://app.rieck.nu/api/v1/webhook-endpoints/9b2f1c1e-… \
-H "Authorization: Bearer $RIECK_API_KEY" \
-H "Idempotency-Key: order-2041" \
-d '{
"eventTypes": [
"…"
],
"active": true,
"description": "Consulting"
}'
Request body — fuldt JSON Schema
{
"type": "object",
"properties": {
"eventTypes": {
"minItems": 1,
"maxItems": 28,
"type": "array",
"items": {
"type": "string"
}
},
"active": {
"type": "boolean"
},
"description": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
}

Delete endpoint

Scope: webhooks:manage

Terminal window
curl -X DELETE https://app.rieck.nu/api/v1/webhook-endpoints/9b2f1c1e-… \
-H "Authorization: Bearer $RIECK_API_KEY" \
-H "Idempotency-Key: order-2041"

POST /v1/webhook-endpoints/{endpointId}/rotate-secret

Section titled “POST /v1/webhook-endpoints/{endpointId}/rotate-secret”

Rotate secret (24 h overlap)

Scope: webhooks:manage

Terminal window
curl -X POST https://app.rieck.nu/api/v1/webhook-endpoints/9b2f1c1e-…/rotate-secret \
-H "Authorization: Bearer $RIECK_API_KEY" \
-H "Idempotency-Key: order-2041"

POST /v1/webhook-endpoints/{endpointId}/test

Section titled “POST /v1/webhook-endpoints/{endpointId}/test”

Send test ping

Scope: webhooks:manage

Terminal window
curl -X POST https://app.rieck.nu/api/v1/webhook-endpoints/9b2f1c1e-…/test \
-H "Authorization: Bearer $RIECK_API_KEY" \
-H "Idempotency-Key: order-2041"

POST /v1/webhook-endpoints/{endpointId}/replay

Section titled “POST /v1/webhook-endpoints/{endpointId}/replay”

Replay deliveries

Re-queues failed/given-up deliveries and enqueues never-queued events since since (max 90 days back). Delivered events are never re-sent.

Scope: webhooks:manage

Terminal window
curl -X POST https://app.rieck.nu/api/v1/webhook-endpoints/9b2f1c1e-…/replay \
-H "Authorization: Bearer $RIECK_API_KEY" \
-H "Idempotency-Key: order-2041" \
-d '{
"since": "2026-08-15"
}'
Request body — fuldt JSON Schema
{
"type": "object",
"properties": {
"since": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
]
}
},
"required": [
"since"
],
"additionalProperties": false
}