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

# Inspect or repair WhatsApp connection binding

> Use for diagnosed WhatsApp subscription/binding issues after get_whatsapp_channel_health. Start with input.mode=dry_run to inspect planned/blocked actions. Apply only when the user requests repair; it uses existing ownership checks and the existing repair rollout gate. reconnectRequired means human consent/resource reconnection is needed. Do not blindly repeat an ambiguous apply or bypass blocked ownership; read health again. No messages are sent. Requires `channels:manage:write`.



## OpenAPI

````yaml /openapi.json post /channels/{channelId}/whatsapp/reconcile
openapi: 3.0.3
info:
  title: Visito M2M API
  version: 1.0.0
  description: >-
    Tenant-scoped server-to-server API for channels, conversations, commerce,
    custom AI tools, and WhatsApp templates. Send operations are asynchronous
    and return queued acknowledgements. Expansion adds conversation controls,
    knowledge, sales opportunities, delivery status, reporting, and signed
    webhooks.
servers:
  - url: https://platform-api.visitoai.com/m2m/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Channels
  - name: Conversations
  - name: Commerce
  - name: Custom tools
  - name: WhatsApp templates
  - name: Properties
  - name: Knowledge
  - name: Sales CRM
  - name: Delivery
  - name: Reporting
  - name: Webhooks
paths:
  /channels/{channelId}/whatsapp/reconcile:
    post:
      tags:
        - Channels
      summary: Inspect or repair WhatsApp connection binding
      description: >-
        Use for diagnosed WhatsApp subscription/binding issues after
        get_whatsapp_channel_health. Start with input.mode=dry_run to inspect
        planned/blocked actions. Apply only when the user requests repair; it
        uses existing ownership checks and the existing repair rollout gate.
        reconnectRequired means human consent/resource reconnection is needed.
        Do not blindly repeat an ambiguous apply or bypass blocked ownership;
        read health again. No messages are sent. Requires
        `channels:manage:write`.
      operationId: reconcile_whatsapp_channel
      parameters:
        - name: channelId
          in: path
          required: true
          description: >-
            Stored channel.id from list_channels or get_channel. Provider page,
            phone, account and WABA IDs are not this ID.
          schema:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                mode:
                  type: string
                  enum:
                    - dry_run
                    - apply
              additionalProperties: false
              required:
                - mode
      responses:
        '200':
          description: Inspect or repair WhatsApp connection binding
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WhatsAppChannelReconcile'
        default:
          $ref: '#/components/responses/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    WhatsAppChannelReconcile:
      type: object
      properties:
        ok:
          type: boolean
        mode:
          type: string
        status:
          type: string
        actions:
          type: array
          items:
            type: object
            properties:
              action:
                type: string
              outcome:
                type: string
              reason:
                type: string
            additionalProperties: false
            required:
              - action
              - outcome
          maxItems: 10
        reconnectRequired:
          type: boolean
        checkedAt:
          type: string
          format: date-time
      additionalProperties: false
      required:
        - ok
        - mode
        - status
        - actions
        - reconnectRequired
        - checkedAt
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              example: M2M_AUTH_INSUFFICIENT_SCOPE
            message:
              type: string
            details:
              type: object
              additionalProperties: true
      example:
        error:
          code: M2M_AUTH_INSUFFICIENT_SCOPE
          message: M2M credential does not have required scope.
          details:
            requiredScopes:
              - conversations:write
            missingScopes:
              - conversations:write
  responses:
    Error:
      description: Structured error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Visito M2M API key
      description: Server-side tenant-scoped credential created from Build > API Keys.

````

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