Callback Configuration

001 currently implements callback configuration APIs: tenants can create webhook endpoints, rotate secrets, create event subscriptions, read configuration, and delete subscriptions. 001 does not run a webhook delivery worker. The callback configuration APIs persist endpoints and subscriptions; actual HTTPS delivery, signing, retry, failure compensation, and delivery audit belong to the callback delivery service capability.

Implemented Configuration APIs

  • POST /api/v1/open/callbacks/endpoints — Create a callback endpoint. The secret is returned once.
  • GET /api/v1/open/callbacks/endpoints — List tenant callback endpoints without secret material.
  • GET /api/v1/open/callbacks/endpoints/{endpoint_id} — Get one endpoint without secret material.
  • PUT /api/v1/open/callbacks/endpoints/{endpoint_id} — Update an endpoint, or set rotate_secret=true to rotate the secret.
  • POST /api/v1/open/callbacks/endpoints/{endpoint_id}/subscriptions — Create an event subscription.
  • GET /api/v1/open/callbacks/endpoints/{endpoint_id}/subscriptions — List event subscriptions.
  • DELETE /api/v1/open/callbacks/endpoints/{endpoint_id}/subscriptions/{subscription_id} — Delete an event subscription.

Multi-Tenant Boundary

  • tenant_id comes from the authenticated API credential.
  • Endpoints and subscriptions belong to the current tenant.
  • Reads, updates, and deletes can only affect current-tenant resources.
  • Secrets are returned only on create or rotate responses; list and get responses never return secrets.

Configuration Objects

Endpoint fields:
FieldDescription
endpoint_idPlatform-generated endpoint ID
nameEndpoint name
urlHTTPS webhook URL
statusACTIVE or DISABLED
timeout_secondsTimeout setting for a later delivery worker
max_attemptsMax-attempt setting for a later delivery worker
Subscription fields:
FieldDescription
subscription_idPlatform-generated subscription ID
endpoint_idOwning endpoint
event_typeSubscribed event type
statusACTIVE or DISABLED

Subscribable Events

The currently implemented command callback events are:
event_typeDescription
command.acceptedThe platform accepted and persisted the command. This event does not mean the device executed it successfully.
command.completedThe adapter or device returned a terminal result. Success, failure, timeout, unsupported, rejection, and other outcomes are represented in the event payload status field and the command query status fields.
command.* events are not split by every possible status. command.succeeded, command.failed, command.timed_out, command.delivered, and similar names are not currently subscribable event types. Integrators should subscribe to command.completed and use payload fields such as status, adapter_status, device_execution_status, or public_status to decide the result.

Later Service Boundary

A later callback delivery service will consume platform events, deliver HTTPS webhooks according to endpoint/subscription configuration, and own signing, retry, failure recording, and delivery audit. 001 only guarantees that configuration facts are tenant-isolated, queryable, and support one-time secret rotation.