> ## 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.

# Update Webhook

> Update the configuration of an existing webhook, including its destination URL, HTTP method, authentication credentials, and the list of subscribed events. Use this to rotate credentials, change the callback endpoint, or modify which events trigger notifications without recreating the webhook.



## OpenAPI

````yaml /api-reference/openapi.json post /v1.0/webhook/update
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
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/update:
    post:
      tags:
        - Webhooks
      summary: Update Webhook
      description: >-
        Update the configuration of an existing webhook, including its
        destination URL, HTTP method, authentication credentials, and the list
        of subscribed events. Use this to rotate credentials, change the
        callback endpoint, or modify which events trigger notifications without
        recreating the webhook.
      requestBody:
        description: Update_Webhook_Request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Update_Webhook_Request'
          text/json:
            schema:
              $ref: '#/components/schemas/Update_Webhook_Request'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Update_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:
            text/plain:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
              examples:
                example:
                  value:
                    StatusCode: 400
                    Message: >-
                      Bad request: one or more required fields are missing or
                      contain an invalid value.
            text/json:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
              examples:
                example:
                  value:
                    StatusCode: 401
                    Message: >-
                      Unauthorized: Bearer token is missing, expired, or
                      invalid. Re-authenticate via POST /v1.0/oauth2/tokens.
            text/json:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
              examples:
                example:
                  value:
                    StatusCode: 403
                    Message: >-
                      Forbidden: your token does not have permission to access
                      this resource. Check the ApiEndpoint scope.
            text/json:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
              examples:
                example:
                  value:
                    StatusCode: 404
                    Message: >-
                      Not found: the requested resource does not exist or
                      belongs to a different account.
            text/json:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
        '405':
          description: Method Not Allowed
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
              examples:
                example:
                  value:
                    StatusCode: 405
                    Message: >-
                      Method not allowed: verify the HTTP method required for
                      this endpoint.
            text/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
        '408':
          description: Request Timeout
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
              examples:
                example:
                  value:
                    StatusCode: 408
                    Message: >-
                      Request timeout: the server did not receive a complete
                      request within the allowed time. Retry with exponential
                      backoff.
            text/json:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
        '429':
          description: Too Many Requests
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
              examples:
                example:
                  value:
                    StatusCode: 429
                    Message: >-
                      Too many requests: rate limit exceeded. Slow your request
                      cadence and retry after a short delay.
            text/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
        '500':
          description: Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
              examples:
                example:
                  value:
                    StatusCode: 500
                    Message: >-
                      Internal server error: an unexpected error occurred. If
                      the problem persists contact support@telegent.com.
            text/json:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
        '503':
          description: Service Unavailable
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
              examples:
                example:
                  value:
                    StatusCode: 503
                    Message: >-
                      Service unavailable: the API is temporarily unavailable.
                      Retry after a short delay.
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
        '504':
          description: Gateway Timeout
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
              examples:
                example:
                  value:
                    StatusCode: 504
                    Message: >-
                      Gateway timeout: an upstream service did not respond in
                      time. Retry with exponential backoff.
            text/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
      x-codeSamples:
        - lang: JSON
          source: |-
            {
              "WebhookId": "WID-1234567",
              "AccountId": "AID-1234567",
              "WebhookUrl": "https://api.telegent.com/test",
              "Method": "POST",
              "DataFormat": "json",
              "AuthenticationType": "Basic",
              "AuthenticationUsername": "User",
              "AuthenticationPassword": "pw",
              "AuthenticationToken": "",
              "SubscribedEvents": "Order_Update, New_SMS"
            }
        - lang: cURL
          source: |-
            curl -X POST https://api.telegent.com/v1.0/webhook/update \
              -H "Authorization: Bearer <token>" \
              -H "Content-Type: application/json" \
              -d '{
                "WebhookId": "WID-1234567",
                "AccountId": "AID-1234567",
                "WebhookUrl": "https://api.telegent.com/test",
                "Method": "POST",
                "DataFormat": "json",
                "AuthenticationType": "Basic",
                "AuthenticationUsername": "User",
                "AuthenticationPassword": "pw",
                "AuthenticationToken": "",
                "SubscribedEvents": "Order_Update, New_SMS"
              }'
components:
  schemas:
    Update_Webhook_Request:
      type: object
      properties:
        AccountId:
          maxLength: 100
          type: string
          nullable: true
          description: >-
            Your Telegent account identifier (prefixed `AID-`). Max 100
            characters.
        WebhookUrl:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            The destination URL that Telegent will call when a subscribed event
            fires. Must be a reachable HTTPS endpoint, max 255 characters.
        Method:
          maxLength: 10
          type: string
          nullable: true
          description: >-
            HTTP method used to deliver the webhook payload, typically `POST` or
            `PUT`. Max 10 characters.
        DataFormat:
          maxLength: 50
          type: string
          nullable: true
          description: >-
            Payload format for the webhook body, e.g. `json` or `xml`. Max 50
            characters.
        AuthenticationType:
          maxLength: 10
          type: string
          nullable: true
          description: >-
            Authentication scheme used when calling your endpoint. Supported
            values include `Basic`, `Bearer`, or `None`. Max 10 characters.
        AuthenticationUsername:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            Username used when `AuthenticationType` is `Basic`. Max 255
            characters.
        AuthenticationPassword:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            Password used when `AuthenticationType` is `Basic`. Max 255
            characters.
        AuthenticationToken:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            Bearer token or API key used when `AuthenticationType` is `Bearer`.
            Max 255 characters.
        SubscribedEvents:
          maxLength: 255
          type: string
          nullable: true
          description: >-
            Comma-separated list of event names this webhook should receive
            (e.g. `Order_Update, New_SMS`). Max 255 characters.
        WebhookId:
          type: string
          nullable: true
          description: >-
            Identifier of the webhook to update (prefixed `WID-`). Required to
            locate the existing record.
      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
        Message:
          type: string
          nullable: true
      additionalProperties: false
    Unauthorized_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    Forbidden_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    NotFound_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    MethodNotAllowed_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    RequestTimeout_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    TooManyRequests_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    InternalServerError_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    ServiceUnavailable_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    GatewayTimeout_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false

````