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

# Cadastrar endpoint de webhook

> Cadastra um endpoint de webhook que passa a receber os tipos de evento escolhidos. A resposta traz o segredo de assinatura (`secret`), retornado somente nesta chamada: guarde-o para verificar os eventos recebidos.

**Escopo necessário:** `webhook-endpoint:create`



## OpenAPI

````yaml api-reference/v3/openapi.json POST /api/v3/webhook-endpoints
openapi: 3.1.0
info:
  version: v3
  title: Salvy API
  x-logo:
    url: web/logo.png
servers:
  - url: https://api.salvy.com.br
    description: Salvy API URL
security:
  - bearerAuth: []
tags:
  - name: Public API
  - name: Outgoing Webhooks
paths:
  /api/v3/webhook-endpoints:
    post:
      tags:
        - Public API
      description: >-
        Cadastra um endpoint de webhook que passa a receber os tipos de evento
        escolhidos. A resposta traz o segredo de assinatura (`secret`),
        retornado somente nesta chamada: guarde-o para verificar os eventos
        recebidos.


        **Escopo necessário:** `webhook-endpoint:create`
      operationId: publicCreateWebhookEndpointV3
      parameters:
        - name: idempotency-key
          in: header
          required: false
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            description: >-
              Idempotency key for this request. Will return the same response if
              the same request is made again with the same key. Fails if
              parameters are different.
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                url:
                  type: string
                  format: uri
                  description: URL HTTPS que vai receber os eventos.
                  example: https://exemplo.com.br/webhooks/salvy
                eventTypes:
                  minItems: 1
                  type: array
                  items:
                    type: string
                    minLength: 1
                  description: >-
                    Tipos de evento que o endpoint vai receber, sem repetição.
                    Os tipos disponíveis estão em GET /webhook-event-types.
                  example:
                    - phone-account.activated
                    - phone-account.canceled
                description:
                  description: Descrição para identificar o endpoint.
                  example: Integração com o ERP
                  type:
                    - string
                    - 'null'
              required:
                - url
                - eventTypes
              additionalProperties: false
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  id:
                    type: string
                    description: ID do endpoint de webhook.
                    example: ep_2yZwUhtgs5Ai8T9yRQJXA
                  url:
                    type: string
                    format: uri
                    description: URL HTTPS que recebe os eventos.
                    example: https://exemplo.com.br/webhooks/salvy
                  eventTypes:
                    type: array
                    items:
                      type: string
                    description: >-
                      Tipos de evento enviados a este endpoint. Um endpoint sem
                      filtro de eventos recebe todos os tipos e lista todos os
                      disponíveis em GET /webhook-event-types.
                    example:
                      - phone-account.activated
                      - phone-account.canceled
                  description:
                    description: Descrição do endpoint; null quando não informada.
                    example: Integração com o ERP
                    type:
                      - string
                      - 'null'
                  disabled:
                    type: boolean
                    description: >-
                      Indica se o endpoint está desativado. Um endpoint
                      desativado não recebe eventos.
                    example: false
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
                    description: Data e hora de criação do endpoint (ISO 8601, UTC).
                    example: '2026-10-13T14:30:00.000Z'
                  secret:
                    type: string
                    description: >-
                      Segredo usado para verificar a assinatura dos eventos
                      entregues a este endpoint. Retornado apenas na criação:
                      guarde-o em local seguro.
                    example: whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD
                required:
                  - id
                  - url
                  - eventTypes
                  - description
                  - disabled
                  - createdAt
                  - secret
                additionalProperties: false
        '400':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - idempotency-parameters-mismatch-error
                      - idempotency-invalid-header-error
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - unauthorized
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '403':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - forbidden
                      - insufficient-scope
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '404':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - resource-not-found
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '413':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - payload-too-large
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '422':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - input-validation-error
                      - unprocessable-entity
                      - webhook-endpoint-event-type-not-found
                      - company-not-active
                  message:
                    type: string
                  details:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        message:
                          type: string
                      required:
                        - key
                        - message
                      additionalProperties: false
                required:
                  - code
                  - message
                additionalProperties: {}
        '429':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - too-many-attempts
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
        '500':
          description: ''
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - unknown
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: {}
      deprecated: false
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.