openapi: 3.0.3
info:
  title: Call Me Webhook API
  version: 1.0.0
  description: >
    Webhook для получения информации о подтверждении действия пользователя через телефонный звонок (Call Me service).

    ## Описание сценария
    Услуга Call Me используется для подтверждения действий пользователя с помощью входящего телефонного звонка.

    Пользователь вводит номер телефона на сайте или в мобильном приложении, после чего система отображает выделенный номер Call Me.
    Пользователь совершает звонок, система фиксирует входящий вызов и отправляет HTTP webhook на сервер клиента.

servers:
  - url: https://your-domain.com

paths:
  /webhooks/callme:
    post:
      summary: Call Me webhook (incoming call event)
      description: >
        Отправляется при фиксации входящего звонка пользователя на выделенный номер Call Me.

        Webhook используется для подтверждения действия пользователя в системе клиента.

      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CallMeWebhook'
            example:
              callId: "550e8400-e29b-41d4-a716-446655440000"
              callDate: "2026-05-20T16:30:45+03:00"
              callerNumber: "79991234567"
              routingKey: "88005553535"

      responses:
        "2xx":
          description: Webhook успешно доставлен и обработан клиентским сервером
        "default":
          description: Ошибка обработки webhook. Будет выполнена повторная отправка (retry)

      x-transport:
        method: POST
        contentType: application/json
        timeoutSeconds: 3

      x-retry-policy:
        trigger: non-2xx response
        description: Повторная отправка webhook при любом ответе, отличном от 2xx HTTP статуса

components:
  schemas:
    CallMeWebhook:
      type: object
      additionalProperties: false
      required:
        - callId
        - callDate
        - callerNumber
        - routingKey
      properties:
        callId:
          type: string
          description: Уникальный идентификатор вызова
          example: "550e8400-e29b-41d4-a716-446655440000"

        callDate:
          type: string
          format: date-time
          description: Дата и время события в формате ISO 8601
          example: "2026-05-20T16:30:45+03:00"

        callerNumber:
          type: string
          description: Номер пользователя, совершившего звонок
          example: "79991234567"

        routingKey:
          type: string
          description: Выделенный номер Call Me, на который был совершен звонок
          example: "88005553535"
