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

# Create Webhook

> Register a webhook endpoint to receive event notifications from your Telegent account. Use this to subscribe to events such as order updates, message status changes, or other platform activity, with optional Basic or Token authentication for callback security.

**Available subscribable events:** `Order_Update`, `New_Sms`, `Call_Completed`, `Call_On_Hold`, `Call_Recording`, `Call_In_Progress`, `Call_Ringing`



## OpenAPI

````yaml /api-reference/openapi.json post /v1.0/webhook/create
openapi: 3.0.3
info:
  title: mPaaS Core APIs
  version: 1.0.8
  description: >-
    The Telegent mPaaS (Mobile Platform as a Service) API gives you full
    programmatic control over mobile phone numbers, messaging, voice routing,
    subscribers, and account management. Use these APIs to provision MVNO and
    IoT numbers, send and receive SMS/MMS, configure intelligent call routing,
    manage subscriber accounts, and apply AI Guardian controls. All requests
    require a Bearer token obtained from the Authentication endpoint. For
    support, visit https://support.telegent.com/support/home
  contact:
    name: Support
    email: support@telegent.com
  termsOfService: https://telegent.com/terms
  license:
    name: Use under LICX
    url: https://telegent.com/license
servers:
  - url: https://api.telegent.com/v1.0
security:
  - BearerAuth: []
tags:
  - name: OAuth2
  - name: AI Guardian
  - name: Accounts
  - name: Distributors
  - name: Message
  - name: Numbers
  - name: Voicemail
  - name: Packages
  - name: Products
  - name: Schedules
  - name: Services
  - name: Sims
  - name: Subscribers
  - name: Subscriptions
  - name: Voice
  - name: Workgroups
paths:
  /v1.0/webhook/create:
    post:
      tags:
        - Webhooks
      summary: Create Webhook
      description: >-
        Register a webhook endpoint to receive event notifications from your
        Telegent account. Use this to subscribe to events such as order updates,
        message status changes, or other platform activity, with optional Basic
        or Token authentication for callback security.


        **Available subscribable events:** `Order_Update`, `New_Sms`,
        `Call_Completed`, `Call_On_Hold`, `Call_Recording`, `Call_In_Progress`,
        `Call_Ringing`
      requestBody:
        description: Webhooks object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Webhook_Request'
          text/json:
            schema:
              $ref: '#/components/schemas/Webhook_Request'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Webhook_Request'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Webhook_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook_Result'
            text/json:
              schema:
                $ref: '#/components/schemas/Webhook_Result'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
              example:
                StatusCode: 400
                Message: >-
                  Bad request: one or more required fields are missing or
                  contain an invalid value.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
              example:
                StatusCode: 401
                Message: >-
                  Unauthorized: Bearer token is missing, expired, or invalid.
                  Re-authenticate via POST /v1.0/oauth2/tokens.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
              example:
                StatusCode: 403
                Message: >-
                  Forbidden: your token does not have permission to access this
                  resource. Check the ApiEndpoint scope.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
              example:
                StatusCode: 404
                Message: >-
                  Not found: the requested resource does not exist or belongs to
                  a different account.
        '405':
          description: Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
              example:
                StatusCode: 405
                Message: >-
                  Method not allowed: verify the HTTP method required for this
                  endpoint.
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
              example:
                StatusCode: 408
                Message: >-
                  Request timeout: the server did not receive a complete request
                  within the allowed time. Retry with exponential backoff.
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
              example:
                StatusCode: 429
                Message: >-
                  Too many requests: rate limit exceeded. Slow your request
                  cadence and retry after a short delay.
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
              example:
                StatusCode: 500
                Message: >-
                  Internal server error: an unexpected error occurred. If the
                  problem persists contact support@telegent.com.
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
              example:
                StatusCode: 503
                Message: >-
                  Service unavailable: the API is temporarily unavailable. Retry
                  after a short delay.
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
              example:
                StatusCode: 504
                Message: >-
                  Gateway timeout: an upstream service did not respond in time.
                  Retry with exponential backoff.
      x-codeSamples:
        - lang: JSON
          source: |-
            {
              "AccountId": "AID-1234567",
              "WebhookUrl": "https://api.example.com/telegent/events",
              "Method": "POST",
              "DataFormat": "json",
              "AuthenticationType": "Basic",
              "AuthenticationUsername": "webhook_user",
              "AuthenticationPassword": "s3cureP@ss",
              "AuthenticationToken": "",
              "SubscribedEvents": "Order_Update"
            }
        - lang: cURL
          source: |-
            curl -X POST https://api.telegent.com/v1.0/webhook/create \
              -H "Authorization: Bearer <token>" \
              -H "Content-Type: application/json" \
              -d '{
                "AccountId": "AID-1234567",
                "WebhookUrl": "https://api.example.com/telegent/events",
                "Method": "POST",
                "DataFormat": "json",
                "AuthenticationType": "Basic",
                "AuthenticationUsername": "webhook_user",
                "AuthenticationPassword": "s3cureP@ss",
                "AuthenticationToken": "",
                "SubscribedEvents": "Order_Update"
              }'
components:
  schemas:
    Webhook_Request:
      type: object
      properties:
        AccountId:
          maxLength: 100
          type: string
          nullable: true
          description: >-
            Your Telegent account identifier in the format `AID-XXXXXXX`. Max
            100 characters.
        WebhookUrl:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            The HTTPS URL Telegent will call when subscribed events fire. Max
            255 characters.
        Method:
          maxLength: 10
          type: string
          nullable: true
          description: >-
            HTTP method Telegent should use when invoking the webhook, typically
            `POST` or `PUT`. Max 10 characters.
        DataFormat:
          maxLength: 50
          type: string
          nullable: true
          description: >-
            Payload format sent to your endpoint, such as `json` or `xml`. Max
            50 characters.
        AuthenticationType:
          maxLength: 10
          type: string
          nullable: true
          description: >-
            Authentication scheme used when calling the webhook: `None`,
            `Basic`, or `Token`. Max 10 characters.
        AuthenticationUsername:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            Username for Basic authentication. Required when
            `AuthenticationType` is `Basic`. Max 255 characters.
        AuthenticationPassword:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            Password for Basic authentication. Required when
            `AuthenticationType` is `Basic`. Max 255 characters.
        AuthenticationToken:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            Bearer token sent in the `Authorization` header. Required when
            `AuthenticationType` is `Token`. Max 255 characters.
        SubscribedEvents:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            Comma-separated list of events to subscribe to. Available events:
            `Order_Update`, `New_Sms`, `Call_Completed`, `Call_On_Hold`,
            `Call_Recording`, `Call_In_Progress`, `Call_Ringing`. Max 255
            characters.
      additionalProperties: false
    Webhook_Result:
      type: object
      properties:
        AccountId:
          maxLength: 100
          type: string
          nullable: true
        WebhookUrl:
          maxLength: 255
          type: string
          nullable: true
        Method:
          maxLength: 10
          type: string
          nullable: true
        DataFormat:
          maxLength: 50
          type: string
          nullable: true
        AuthenticationType:
          maxLength: 10
          type: string
          nullable: true
        AuthenticationUsername:
          maxLength: 255
          type: string
          nullable: true
        AuthenticationPassword:
          maxLength: 255
          type: string
          nullable: true
        AuthenticationToken:
          maxLength: 255
          type: string
          nullable: true
        SubscribedEvents:
          maxLength: 255
          type: string
          nullable: true
        WebhookId:
          type: string
          nullable: true
        Active:
          type: boolean
          nullable: true
      additionalProperties: false
    BadRequest_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 400
        Message:
          type: string
          nullable: true
          example: >-
            Bad request: one or more required fields are missing or contain an
            invalid value.
      additionalProperties: false
      example:
        StatusCode: 400
        Message: >-
          Bad request: one or more required fields are missing or contain an
          invalid value.
    Unauthorized_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 401
        Message:
          type: string
          nullable: true
          example: 'Unauthorized: Bearer token is missing, expired, or invalid.'
      additionalProperties: false
      example:
        StatusCode: 401
        Message: 'Unauthorized: Bearer token is missing, expired, or invalid.'
    Forbidden_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 403
        Message:
          type: string
          nullable: true
          example: >-
            Forbidden: your token does not have permission to access this
            resource.
      additionalProperties: false
      example:
        StatusCode: 403
        Message: >-
          Forbidden: your token does not have permission to access this
          resource.
    NotFound_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 404
        Message:
          type: string
          nullable: true
          example: >-
            Not found: the requested resource does not exist or belongs to a
            different account.
      additionalProperties: false
      example:
        StatusCode: 404
        Message: >-
          Not found: the requested resource does not exist or belongs to a
          different account.
    MethodNotAllowed_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 405
        Message:
          type: string
          nullable: true
          example: >-
            Method not allowed: verify the HTTP method required for this
            endpoint.
      additionalProperties: false
      example:
        StatusCode: 405
        Message: 'Method not allowed: verify the HTTP method required for this endpoint.'
    RequestTimeout_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 408
        Message:
          type: string
          nullable: true
          example: >-
            Request timeout: the server did not receive a complete request in
            time.
      additionalProperties: false
      example:
        StatusCode: 408
        Message: >-
          Request timeout: the server did not receive a complete request in
          time.
    TooManyRequests_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 429
        Message:
          type: string
          nullable: true
          example: >-
            Too many requests: rate limit exceeded. Slow your request cadence
            and retry.
      additionalProperties: false
      example:
        StatusCode: 429
        Message: >-
          Too many requests: rate limit exceeded. Slow your request cadence and
          retry.
    InternalServerError_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 500
        Message:
          type: string
          nullable: true
          example: 'Internal server error: an unexpected error occurred.'
      additionalProperties: false
      example:
        StatusCode: 500
        Message: 'Internal server error: an unexpected error occurred.'
    ServiceUnavailable_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 503
        Message:
          type: string
          nullable: true
          example: 'Service unavailable: the API is temporarily unavailable.'
      additionalProperties: false
      example:
        StatusCode: 503
        Message: 'Service unavailable: the API is temporarily unavailable.'
    GatewayTimeout_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
          example: 504
        Message:
          type: string
          nullable: true
          example: 'Gateway timeout: an upstream service did not respond in time.'
      additionalProperties: false
      example:
        StatusCode: 504
        Message: 'Gateway timeout: an upstream service did not respond in time.'

````