> ## Documentation Index
> Fetch the complete documentation index at: https://offergrid.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Register a webhook

> Register an HTTPS endpoint to receive signed order-event deliveries for orders your team placed. The response includes the signing secret — it is shown only this once.



## OpenAPI

````yaml /openapi/openapi-reseller.json post /reseller/webhooks
openapi: 3.0.0
info:
  title: OfferGrid API
  description: >-
    **Reseller API** - Browse service catalog and place orders on behalf of
    customers.


    As a reseller, you can:

    - Browse available service offerings from providers

    - Filter offers by category, price, location, and search terms

    - View detailed offer information including pricing and features

    - Place orders for customers (single or multi-provider orders)

    - Track order status and fulfillment progress

    - Cancel pending orders

    - Register webhooks to receive order events as they happen
  version: '1.0'
  contact: {}
servers:
  - url: https://api.offergrid.io
    description: Production
security: []
tags:
  - name: reseller-catalog
    description: 'Reseller: Browse available service offerings'
  - name: reseller-availability
    description: 'Reseller: Find offers available at a service address'
  - name: reseller-orders
    description: 'Reseller: Place and manage orders'
  - name: reseller-customers
    description: 'Reseller: Manage customers and leads'
  - name: reseller-links
    description: 'Reseller: Manage shareable customer links'
  - name: reseller-webhooks
    description: 'Reseller: Receive order events for the orders you placed'
paths:
  /reseller/webhooks:
    post:
      tags:
        - reseller-webhooks
      summary: Register a webhook
      description: >-
        Register an HTTPS endpoint to receive signed order-event deliveries for
        orders your team placed. The response includes the signing secret — it
        is shown only this once.
      operationId: ResellerWebhooksController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebhookDto'
      responses:
        '201':
          description: The webhook, including its signing secret
        '401':
          description: Missing, malformed, or revoked `x-api-key` header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: >-
            Valid API key, but your team's role does not grant access to this
            endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected server error. Safe to retry idempotent requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - api-key: []
components:
  schemas:
    CreateWebhookDto:
      type: object
      properties:
        url:
          type: string
          description: HTTPS endpoint that will receive signed order-event deliveries
          example: https://your-system.example.com/offergrid-callback
        events:
          type: array
          description: Event types this webhook subscribes to
          example:
            - order.item.created
            - order.item.status_changed
          items:
            type: string
            enum:
              - order.created
              - order.item.created
              - order.item.status_changed
              - order.cancelled
      required:
        - url
        - events
      title: Create Webhook
    ErrorResponse:
      type: object
      title: Error
      description: Standard error envelope returned by every 4xx and 5xx response.
      required:
        - statusCode
        - message
      properties:
        statusCode:
          type: integer
          description: HTTP status code, repeated in the body.
          example: 404
        message:
          type: string
          description: Human-readable explanation of what went wrong.
          example: Offer not found
        error:
          type: string
          description: Short, stable name for the status code.
          example: Not Found
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Team API key for authentication. Your team role
        (provider/reseller/hybrid) determines which endpoints you can access.

````