openapi: 3.2.0 info: title: Hilt Webhooks API description: Hilt Pay Workspace and Hilt Pay API routes for zero-custody Solana checkout, MPP metered payment channels, receipts, memberships, entitlements, native subscriptions, webhooks, and support context. version: 1.0.0 contact: name: Hilt url: https://www.hilt.so email: hello@hilt.so x-guidance: Start with POST /v1/access/agent-bootstrap. An agent can purchase 30 days of Starter, Growth, or Scale through the matching x402 V2 activation endpoint paid in Solana USDC. For metered integrations, settle PAYMENT-SIGNATURE through POST /v1/access/x402/settle and atomically consume through POST /v1/access/entitlements/consume before serving. Never send private keys, seed phrases, or wallet secrets. servers: - url: https://api.hilt.so tags: - name: Webhooks paths: /v1/webhooks/endpoints: get: tags: - Webhooks summary: List webhook endpoints operationId: list_webhook_endpoints_v1_webhooks_endpoints_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookEndpointListResponse' post: tags: - Webhooks summary: Create webhook endpoint operationId: create_webhook_endpoint_v1_webhooks_endpoints_post requestBody: content: application/json: schema: $ref: '#/components/schemas/WebhookEndpointCreateRequest' required: true responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookEndpointCreateResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/webhooks/endpoints/{endpoint_id}: patch: tags: - Webhooks summary: Update webhook endpoint operationId: update_webhook_endpoint_v1_webhooks_endpoints__endpoint_id__patch parameters: - name: endpoint_id in: path required: true schema: type: string format: uuid title: Endpoint Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookEndpointUpdateRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookEndpointResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Webhooks summary: Disable webhook endpoint operationId: disable_webhook_endpoint_v1_webhooks_endpoints__endpoint_id__delete parameters: - name: endpoint_id in: path required: true schema: type: string format: uuid title: Endpoint Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookEndpointResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/webhooks/endpoints/{endpoint_id}/test: post: tags: - Webhooks summary: Send a signed test webhook event operationId: test_webhook_endpoint_v1_webhooks_endpoints__endpoint_id__test_post parameters: - name: endpoint_id in: path required: true schema: type: string format: uuid title: Endpoint Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookTestEventRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookTestResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/webhooks/deliveries: get: tags: - Webhooks summary: List webhook deliveries operationId: list_webhook_deliveries_v1_webhooks_deliveries_get parameters: - name: endpoint_id in: query required: false schema: anyOf: - type: string format: uuid - type: 'null' title: Endpoint Id - name: status in: query required: false schema: anyOf: - type: string - type: 'null' title: Status - name: page in: query required: false schema: type: integer minimum: 1 default: 1 title: Page - name: per_page in: query required: false schema: type: integer maximum: 100 minimum: 1 default: 20 title: Per Page responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookDeliveriesResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/webhooks/deliveries/{delivery_id}/replay: post: tags: - Webhooks summary: Replay a webhook delivery operationId: replay_owned_webhook_delivery_v1_webhooks_deliveries__delivery_id__replay_post parameters: - name: delivery_id in: path required: true schema: type: integer title: Delivery Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookDeliveryResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/webhooks/timeline: get: tags: - Webhooks summary: View webhook event timeline for a payment or membership operationId: webhook_timeline_v1_webhooks_timeline_get parameters: - name: payment_id in: query required: false schema: anyOf: - type: string - type: 'null' title: Payment Id - name: membership_id in: query required: false schema: anyOf: - type: string - type: 'null' title: Membership Id - name: limit in: query required: false schema: type: integer maximum: 120 minimum: 1 default: 40 title: Limit responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookTimelineResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/webhooks/events: get: tags: - Webhooks summary: List emitted webhook events operationId: list_webhook_events_v1_webhooks_events_get parameters: - name: event_type in: query required: false schema: anyOf: - type: string - type: 'null' title: Event Type - name: page in: query required: false schema: type: integer minimum: 1 default: 1 title: Page - name: per_page in: query required: false schema: type: integer maximum: 100 minimum: 1 default: 20 title: Per Page responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/WebhookEventsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: WebhookEndpointCreateResponse: properties: endpoint: $ref: '#/components/schemas/WebhookEndpoint' signing_secret: type: string title: Signing Secret supported_events: anyOf: - items: type: string type: array - type: 'null' title: Supported Events additionalProperties: true type: object required: - endpoint - signing_secret title: WebhookEndpointCreateResponse WebhookEvent: properties: id: type: string title: Id event_type: type: string title: Event Type event_version: type: string title: Event Version source_type: type: string title: Source Type source_id: type: string title: Source Id product_id: anyOf: - type: string - type: 'null' title: Product Id payment_id: anyOf: - type: string - type: 'null' title: Payment Id membership_id: anyOf: - type: string - type: 'null' title: Membership Id receipt_id: anyOf: - type: string - type: 'null' title: Receipt Id support_ticket_id: anyOf: - type: string - type: 'null' title: Support Ticket Id created_at: anyOf: - type: string - type: 'null' title: Created At payload: type: object title: Payload deliveries: anyOf: - items: $ref: '#/components/schemas/WebhookDelivery' type: array - type: 'null' title: Deliveries additionalProperties: true type: object required: - id - event_type - event_version - source_type - source_id - product_id - payment_id - membership_id - receipt_id - support_ticket_id - created_at - payload title: WebhookEvent WebhookTestEventRequest: properties: event_type: type: string title: Event Type default: payment.confirmed type: object title: WebhookTestEventRequest WebhookTestResponse: properties: event: anyOf: - $ref: '#/components/schemas/WebhookEvent' - type: 'null' delivery: anyOf: - $ref: '#/components/schemas/WebhookDelivery' - type: 'null' delivered: anyOf: - type: boolean - type: 'null' title: Delivered result: anyOf: - type: object - type: 'null' title: Result additionalProperties: true type: object title: WebhookTestResponse WebhookEventsResponse: properties: total: type: integer title: Total page: type: integer title: Page events: items: $ref: '#/components/schemas/WebhookEvent' type: array title: Events supported_events: items: type: string type: array title: Supported Events additionalProperties: true type: object required: - total - page - events - supported_events title: WebhookEventsResponse WebhookEndpointCreateRequest: properties: label: type: string maxLength: 120 minLength: 2 title: Label url: type: string title: Url subscribed_events: items: type: string type: array title: Subscribed Events product_ids: items: type: string type: array title: Product Ids type: object required: - label - url title: WebhookEndpointCreateRequest WebhookEndpoint: properties: id: type: string title: Id owner_id: type: string title: Owner Id label: type: string title: Label url: type: string title: Url status: type: string title: Status signing_secret_preview: type: string title: Signing Secret Preview subscribed_events: items: type: string type: array title: Subscribed Events product_ids: items: type: string type: array title: Product Ids consecutive_failures: type: integer title: Consecutive Failures last_success_at: anyOf: - type: string - type: 'null' title: Last Success At last_failure_at: anyOf: - type: string - type: 'null' title: Last Failure At last_error: anyOf: - type: string - type: 'null' title: Last Error archived_at: anyOf: - type: string - type: 'null' title: Archived At created_at: anyOf: - type: string - type: 'null' title: Created At updated_at: anyOf: - type: string - type: 'null' title: Updated At additionalProperties: true type: object required: - id - owner_id - label - url - status - signing_secret_preview - subscribed_events - product_ids - consecutive_failures - last_success_at - last_failure_at - last_error - archived_at - created_at - updated_at title: WebhookEndpoint WebhookEndpointUpdateRequest: properties: label: anyOf: - type: string maxLength: 120 minLength: 2 - type: 'null' title: Label url: anyOf: - type: string - type: 'null' title: Url status: anyOf: - type: string - type: 'null' title: Status subscribed_events: anyOf: - items: type: string type: array - type: 'null' title: Subscribed Events product_ids: anyOf: - items: type: string type: array - type: 'null' title: Product Ids rotate_signing_secret: type: boolean title: Rotate Signing Secret default: false type: object title: WebhookEndpointUpdateRequest WebhookEndpointResponse: properties: endpoint: $ref: '#/components/schemas/WebhookEndpoint' signing_secret: anyOf: - type: string - type: 'null' title: Signing Secret additionalProperties: true type: object required: - endpoint title: WebhookEndpointResponse WebhookTimelineResponse: properties: payment_id: anyOf: - type: string - type: 'null' title: Payment Id membership_id: anyOf: - type: string - type: 'null' title: Membership Id timeline: items: $ref: '#/components/schemas/WebhookEvent' type: array title: Timeline count: type: integer title: Count generated_at: type: string title: Generated At additionalProperties: true type: object required: - payment_id - membership_id - timeline - count - generated_at title: WebhookTimelineResponse WebhookEndpointListResponse: properties: endpoints: items: $ref: '#/components/schemas/WebhookEndpoint' type: array title: Endpoints additionalProperties: true type: object required: - endpoints title: WebhookEndpointListResponse ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError WebhookDelivery: properties: id: type: integer title: Id event_id: type: string title: Event Id endpoint_id: type: string title: Endpoint Id owner_id: type: string title: Owner Id status: type: string title: Status attempt_count: type: integer title: Attempt Count last_attempt_at: anyOf: - type: string - type: 'null' title: Last Attempt At next_attempt_at: anyOf: - type: string - type: 'null' title: Next Attempt At delivered_at: anyOf: - type: string - type: 'null' title: Delivered At response_status: anyOf: - type: integer - type: 'null' title: Response Status response_body: anyOf: - type: string - type: 'null' title: Response Body last_error: anyOf: - type: string - type: 'null' title: Last Error created_at: anyOf: - type: string - type: 'null' title: Created At updated_at: anyOf: - type: string - type: 'null' title: Updated At event_type: anyOf: - type: string - type: 'null' title: Event Type endpoint_label: anyOf: - type: string - type: 'null' title: Endpoint Label url: anyOf: - type: string - type: 'null' title: Url product_id: anyOf: - type: string - type: 'null' title: Product Id payment_id: anyOf: - type: string - type: 'null' title: Payment Id membership_id: anyOf: - type: string - type: 'null' title: Membership Id receipt_id: anyOf: - type: string - type: 'null' title: Receipt Id support_ticket_id: anyOf: - type: string - type: 'null' title: Support Ticket Id additionalProperties: true type: object required: - id - event_id - endpoint_id - owner_id - status - attempt_count - last_attempt_at - next_attempt_at - delivered_at - response_status - response_body - last_error - created_at - updated_at title: WebhookDelivery WebhookDeliveryResponse: properties: delivery: $ref: '#/components/schemas/WebhookDelivery' additionalProperties: true type: object required: - delivery title: WebhookDeliveryResponse WebhookDeliveriesResponse: properties: total: type: integer title: Total page: type: integer title: Page deliveries: items: $ref: '#/components/schemas/WebhookDelivery' type: array title: Deliveries additionalProperties: true type: object required: - total - page - deliveries title: WebhookDeliveriesResponse x-hilt-agent-commerce: offer: https://api.hilt.so/v1/agent-commerce/offer catalog: https://api.hilt.so/agent-catalog.json pricing: https://api.hilt.so/pricing x402: https://api.hilt.so/x402