openapi: 3.0.0
servers:
  - url: http://whatsapp.local
  - url: http://example.com/v1
info:
  contact:
    x-twitter: WhatsApp
  description: See https://developers.facebook.com/docs/whatsapp
  title: WhatsApp Business API
  version: "1.0"
  x-apisguru-categories:
    - messaging
  x-logo:
    url: https://twitter.com/WhatsApp/profile_image?size=original
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/unblu/WhatsApp-Business-API-OpenAPI/master/openapi.yaml
      version: "3.0"
  x-providerName: whatsapp.local
  x-unofficialSpec: true
security:
  - bearerAuth: []
tags:
  - name: Users
  - name: Application
  - name: Backup/Restore
  - name: Business Profile
  - name: Profile
  - name: Two-Step Verification
  - name: Registration
  - name: Contacts
  - name: Messages
  - name: Groups
  - name: Media
  - name: Health
  - name: Certificates
paths:
  /account:
    post:
      deprecated: false
      operationId: RequestCode
      requestBody:
        content:
          application/json:
            example:
              cc: <Country Code>
              cert: <Valid Cert from Business Manager>
              method: sms
              phone_number: <Phone Number>
              pin: <Two-Step Verification PIN
            schema:
              $ref: "#/components/schemas/Request-Code-Request-Body"
        description: ""
        required: true
      responses:
        "201":
          description: "Created: the account already exists. You are already registered, so you do not need to do anything else."
        "202":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Request-Code-Response"
          description: "Created: the account does not exist. Depending on the method selected in the request, check your SMS or voice number for the registration code."
      summary: Request-Code
      tags:
        - Registration
  /account/shards:
    post:
      deprecated: false
      operationId: SetShards
      requestBody:
        content:
          application/json:
            example:
              cc: <Country Code>
              phone_number: <Phone Number>
              pin: <Two-Step PIN>
              shards: 32
            schema:
              $ref: "#/components/schemas/Set-Shards-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Set-Shards
      tags:
        - Application
  /account/verify:
    post:
      deprecated: false
      operationId: RegisterAccount
      requestBody:
        content:
          application/json:
            example:
              code: <Registration Code Received via SMS/Voice>
            schema:
              $ref: "#/components/schemas/Register-Account-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Register-Account
      tags:
        - Registration
  /certificates/external:
    post:
      deprecated: false
      operationId: UploadCertificate
      requestBody:
        content:
          text/plain:
            schema:
              format: binary
              type: string
      responses:
        "200":
          description: ""
      summary: Upload-Certificate
      tags:
        - Certificates
  /certificates/external/ca:
    get:
      deprecated: false
      operationId: DownloadCaCertificate
      responses:
        "200":
          content:
            text/plain:
              schema:
                format: binary
                type: string
          description: ""
      summary: Download-CA-Certificate
      tags:
        - Certificates
  /certificates/webhooks/ca:
    delete:
      deprecated: false
      operationId: DeleteWebhookCaCertificate
      responses:
        "200":
          description: ""
      summary: Delete Webhook CA Certificate
      tags:
        - Certificates
    get:
      deprecated: false
      operationId: DownloadWebhookCaCertificate
      responses:
        "200":
          content:
            text/plain:
              schema:
                format: binary
                type: string
          description: ""
      summary: Download Webhook CA Certificate
      tags:
        - Certificates
    post:
      deprecated: false
      operationId: UploadWebhookCaCertificate
      requestBody:
        content:
          text/plain:
            schema:
              format: binary
              type: string
        required: false
      responses:
        "200":
          description: ""
      summary: Upload Webhook CA Certificate
      tags:
        - Certificates
  /contacts:
    post:
      deprecated: false
      operationId: CheckContact
      requestBody:
        content:
          application/json:
            example:
              blocking: wait
              contacts:
                - "{{Recipient-WA-ID}}"
            schema:
              $ref: "#/components/schemas/Check-Contact-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Check-Contact-Response"
          description: ""
      summary: Check-Contact
      tags:
        - Contacts
  /groups:
    get:
      deprecated: false
      operationId: GetAllGroups
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Groups-Response"
          description: ""
      summary: Get-All-Groups
      tags:
        - Groups
    post:
      deprecated: false
      operationId: CreateGroup
      requestBody:
        content:
          application/json:
            example:
              subject: <Group Subject>
            schema:
              $ref: "#/components/schemas/Create-Group-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Groups-Response"
          description: ""
      summary: Create-Group
      tags:
        - Groups
  "/groups/{GroupId}":
    get:
      deprecated: false
      operationId: GetGroupInfo
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Group-Response"
          description: ""
      summary: Get-Group-Info
      tags:
        - Groups
    put:
      deprecated: false
      operationId: UpdateGroupInfo
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              subject: <New Group Subject>
            schema:
              $ref: "#/components/schemas/Update-Group-Info-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Update-Group-Info
      tags:
        - Groups
  "/groups/{GroupId}/admins":
    delete:
      deprecated: false
      operationId: DemoteGroupAdmin
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              wa_ids:
                - <Recipient WA-ID, from Contacts API>
            schema:
              $ref: "#/components/schemas/Group-Admin-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Demote-Group-Admin
      tags:
        - Groups
    patch:
      deprecated: false
      operationId: PromoteToGroupAdmin
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              wa_ids:
                - <Recipient WA-ID, from Contacts API>
            schema:
              $ref: "#/components/schemas/Group-Admin-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Promote-To-Group-Admin
      tags:
        - Groups
  "/groups/{GroupId}/icon":
    delete:
      deprecated: false
      operationId: DeleteGroupIcon
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                File:
                  format: binary
                  type: string
              required:
                - File
              type: object
        required: false
      responses:
        "200":
          description: ""
      summary: Delete-Group-Icon
      tags:
        - Groups
    get:
      deprecated: false
      operationId: GetGroupIconBinary
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          description: ""
      summary: Get-Group-Icon-Binary
      tags:
        - Groups
    post:
      deprecated: false
      operationId: SetGroupIcon
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                File:
                  format: binary
                  type: string
              required:
                - File
              type: object
        required: false
      responses:
        "200":
          description: ""
      summary: Set-Group-Icon
      tags:
        - Groups
  "/groups/{GroupId}/invite":
    delete:
      deprecated: false
      operationId: DeleteGroupInvite
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          description: ""
      summary: Delete-Group-Invite
      tags:
        - Groups
    get:
      deprecated: false
      operationId: GetGroupInvite
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Group-Invite-Response"
          description: ""
      summary: Get-Group-Invite
      tags:
        - Groups
  "/groups/{GroupId}/leave":
    post:
      deprecated: false
      operationId: LeaveGroup
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          description: ""
      summary: Leave-Group
      tags:
        - Groups
  "/groups/{GroupId}/participants":
    delete:
      deprecated: false
      operationId: RemoveGroupParticipant
      parameters:
        - description: ""
          explode: false
          in: path
          name: GroupId
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              wa_ids:
                - "{{Recipient-WA-ID}}"
            schema:
              $ref: "#/components/schemas/Remove-Group-Participant-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Remove-Group-Participant
      tags:
        - Groups
  /health:
    get:
      deprecated: false
      operationId: CheckHealth
      responses:
        "200":
          description: ""
      summary: Check-Health
      tags:
        - Health
  /media:
    post:
      deprecated: false
      operationId: UploadMedia
      requestBody:
        content:
          application/msword:
            schema:
              format: binary
              type: string
          application/pdf:
            schema:
              format: binary
              type: string
          application/vnd.ms-excel:
            schema:
              format: binary
              type: string
          application/vnd.ms-powerpoint:
            schema:
              format: binary
              type: string
          audio/acc:
            schema:
              format: binary
              type: string
          audio/amr:
            schema:
              format: binary
              type: string
          audio/mp4:
            schema:
              format: binary
              type: string
          audio/mpeg:
            schema:
              format: binary
              type: string
          audio/ogg:
            schema:
              format: binary
              type: string
          codecs=opus:
            schema:
              format: binary
              type: string
          image/jpeg:
            schema:
              format: binary
              type: string
          image/png:
            schema:
              format: binary
              type: string
          text/plain:
            schema:
              format: binary
              type: string
          video/mp4:
            schema:
              format: binary
              type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Upload-Media-Response"
          description: ""
      summary: Upload-Media
      tags:
        - Media
  "/media/{MediaId}":
    delete:
      deprecated: false
      operationId: DeleteMedia
      parameters:
        - description: ""
          explode: false
          in: path
          name: MediaId
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          description: ""
      summary: Delete-Media
      tags:
        - Media
    get:
      deprecated: false
      operationId: DownloadMedia
      parameters:
        - description: ""
          explode: false
          in: path
          name: MediaId
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          content:
            application/json: {}
          description: ""
      summary: Download-Media
      tags:
        - Media
  /messages:
    post:
      deprecated: false
      operationId: SendMessage
      requestBody:
        content:
          application/json:
            example:
              recipient_type: individual
              text:
                body: <Message Text>
              to: "{{Recipient-WA-ID}}"
              type: text
            schema:
              $ref: "#/components/schemas/Send-Message-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Message-Response"
          description: ""
      summary: Send-Message
      tags:
        - Messages
  "/messages/{MessageID}":
    put:
      deprecated: false
      operationId: MarkMessageAsRead
      parameters:
        - description: Message ID from Webhook
          in: path
          name: MessageID
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            example:
              status: read
            schema:
              $ref: "#/components/schemas/Mark-Message-As-Read-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Mark-Message-As-Read
      tags:
        - Messages
  /metrics:
    get:
      deprecated: false
      operationId: GetMetrics
      parameters:
        - description: ""
          example: prometheus
          in: query
          name: format
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
            text/plain:
              schema:
                type: string
          description: ""
      summary: Get-Metrics (since v2.21.3)
      tags:
        - Health
  /settings/account/two-step:
    delete:
      deprecated: false
      operationId: DisableTwoStep
      responses:
        "200":
          description: ""
      summary: Disable-Two-Step
      tags:
        - Two-Step Verification
    post:
      deprecated: false
      operationId: EnableTwoStep
      requestBody:
        content:
          application/json:
            example:
              pin: <Two-Step Verification PIN>
            schema:
              $ref: "#/components/schemas/Enable-Two-Step-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Enable-Two-Step
      tags:
        - Two-Step Verification
  /settings/application:
    delete:
      deprecated: false
      operationId: ResetApplicationSettings
      responses:
        "200":
          description: ""
      summary: Reset-Application-Settings
      tags:
        - Application
    get:
      deprecated: false
      operationId: GetApplicationSettings
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Application-Settings"
          description: ""
      summary: Get-Application-Settings
      tags:
        - Application
    patch:
      callbacks:
        incomingWebhook:
          "{$request.body#/webhooks.url}":
            post:
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: "#/components/schemas/Webhook-Event"
              responses:
                "200":
                  description: OK
      deprecated: false
      description: If a field is not present in the request, no change is made to that setting. For example, if on_call_pager is not sent with the request, the existing configuration for on_call_pager is unchanged.
      operationId: UpdateApplicationSettings
      requestBody:
        content:
          application/json:
            example:
              webhooks:
                url: <Webhook URL, https>
            schema:
              $ref: "#/components/schemas/Application-Settings"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Response"
          description: ""
      summary: Update-Application-Settings
      tags:
        - Application
  /settings/application/media/providers:
    get:
      deprecated: false
      operationId: GetMediaProviders
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Get-Media-Providers-Response"
          description: ""
      summary: Get-Media-Providers
      tags:
        - Application
    post:
      deprecated: false
      operationId: UpdateMediaProviders
      requestBody:
        content:
          application/json:
            example:
              - config:
                  bearer: <Bearer Auth Token>
                name: <Provider Name>
                type: www
            schema:
              description: ""
              items:
                $ref: "#/components/schemas/Media-Provider"
              type: array
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Update-Media-Providers
      tags:
        - Application
  "/settings/application/media/providers/{ProviderName}":
    delete:
      deprecated: false
      operationId: DeleteMediaProviders
      parameters:
        - description: Provider Name
          in: path
          name: ProviderName
          required: true
          schema:
            type: string
      responses:
        "200":
          description: ""
      summary: Delete-Media-Providers
      tags:
        - Application
  /settings/backup:
    post:
      deprecated: false
      operationId: BackupSettings
      requestBody:
        content:
          application/json:
            example:
              password: <Password for Backup>
            schema:
              $ref: "#/components/schemas/Backup-Settings-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Backup-Settings-Response"
          description: ""
      summary: Backup-Settings
      tags:
        - Backup/Restore
  /settings/business/profile:
    get:
      deprecated: false
      operationId: GetBusinessProfile
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Get-Business-Profile-Response"
          description: ""
      summary: Get-Business-Profile
      tags:
        - Business Profile
    post:
      deprecated: false
      operationId: updateBusinessProfile
      requestBody:
        content:
          application/json:
            example:
              address: <Business Profile Address>
              description: <Business Profile Description>
              email: <Business Profile Email>
              vertical: <Business Profile Vertical>
              websites:
                - https://www.whatsapp.com
                - https://www.facebook.com
            schema:
              $ref: "#/components/schemas/Business-Profile"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Update-Business-Profile
      tags:
        - Business Profile
  /settings/profile/about:
    get:
      deprecated: false
      operationId: GetProfileAbout
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Get-Profile-About-Response"
          description: ""
      summary: Get-Profile-About
      tags:
        - Profile
    patch:
      deprecated: false
      operationId: UpdateProfileAbout
      requestBody:
        content:
          application/json:
            example:
              text: <About Profile>
            schema:
              $ref: "#/components/schemas/Profile-About"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Update-Profile-About
      tags:
        - Profile
  /settings/profile/photo:
    delete:
      operationId: DeleteProfilePhoto
      responses:
        "200":
          description: ""
      summary: Delete-Profile-Photo
    get:
      deprecated: false
      operationId: GetProfilePhoto
      parameters:
        - description: ""
          example: link
          in: query
          name: format
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Get-Profile-Photo-Response"
            image/jpeg:
              schema:
                format: binary
                type: string
          description: ""
      summary: Get-Profile-Photo
      tags:
        - Profile
    post:
      deprecated: false
      operationId: UpdateProfilePhoto
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                File:
                  format: binary
                  type: string
              required:
                - File
              type: object
        required: false
      responses:
        "200":
          description: ""
      summary: Update-Profile-Photo
      tags:
        - Profile
  /settings/restore:
    post:
      deprecated: false
      operationId: RestoreSettings
      requestBody:
        content:
          application/json:
            example:
              data: <Data to Restore, from Backup API>
              password: <Password for Backup>
            schema:
              $ref: "#/components/schemas/Restore-Settings-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          description: ""
      summary: Restore-Settings
      tags:
        - Backup/Restore
  /stats/app:
    get:
      deprecated: false
      operationId: GetAppStats
      parameters:
        - description: ""
          example: prometheus
          in: query
          name: format
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
            text/plain:
              schema:
                type: string
          description: ""
      summary: Get-App-Stats
      tags:
        - Health
  /stats/db:
    get:
      deprecated: false
      operationId: GetDbStats
      parameters:
        - description: ""
          example: prometheus
          in: query
          name: format
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
            text/plain:
              schema:
                type: string
          description: ""
      summary: Get-DB-Stats
      tags:
        - Health
  /support:
    get:
      deprecated: false
      operationId: GetSupportInfo
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: ""
      summary: Get-Support-Info
      tags:
        - Health
  /users:
    post:
      deprecated: false
      operationId: CreateUser
      requestBody:
        content:
          application/json:
            example:
              password: "{{UserPassword}}"
              username: "{{UserUsername}}"
            schema:
              $ref: "#/components/schemas/Create-User-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User-Response"
          description: ""
      summary: Create-User
      tags:
        - Users
  /users/login:
    post:
      deprecated: false
      operationId: LoginUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Login-Admin-Request-Body"
        required: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User-Login-Response"
          description: OK
      security:
        - httpBasic: []
      summary: Login-User
      tags:
        - Users
  /users/logout:
    post:
      deprecated: false
      operationId: LogoutUser
      responses:
        "200":
          description: ""
      summary: Logout-User
      tags:
        - Users
  "/users/{UserUsername}":
    delete:
      deprecated: false
      operationId: DeleteUser
      parameters:
        - description: ""
          explode: false
          in: path
          name: UserUsername
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User-Response"
          description: ""
      summary: Delete-User
      tags:
        - Users
    get:
      deprecated: false
      operationId: GetUser
      parameters:
        - description: ""
          explode: false
          in: path
          name: UserUsername
          required: true
          schema:
            type: string
          style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Detailed-User-Response"
          description: ""
      summary: Get-User
      tags:
        - Users
    put:
      deprecated: false
      operationId: UpdateUser
      parameters:
        - description: ""
          explode: false
          in: path
          name: UserUsername
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            example:
              password: <New Password>
            schema:
              $ref: "#/components/schemas/Update-User-Request-Body"
        description: ""
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User-Response"
          description: ""
      summary: Update-User
      tags:
        - Users
components:
  schemas:
    Address:
      example:
        city: Menlo Park
        country: United States
        country_code: us
        state: CA
        street: 1 Hacker Way
        type: HOME
        zip: "94025"
      properties:
        city:
          description: City name
          type: string
        country:
          description: Full country name
          type: string
        country_code:
          description: Two-letter country abbreviation
          type: string
        state:
          description: State abbreviation
          type: string
        street:
          description: Street number and name
          type: string
        type:
          description: "Standard Values: HOME, WORK"
          type: string
        zip:
          description: ZIP code
          type: string
      required:
        - city
        - country
        - country_code
        - state
        - street
        - type
        - zip
      title: Address
      type: object
    Application-Settings:
      example:
        callback_backoff_delay_ms: 3000
        callback_persist: true
        max_callback_backoff_delay_ms: 900000
        media:
          auto_download:
            - image
            - document
            - audio
        on_call_pager: <WA_ID of valid WhatsApp contact>
        pass_through: false
        sent_status: false
        webhooks:
          max_concurrent_requests: 12
          url: <Webhook URL, https>
      properties:
        callback_backoff_delay_ms:
          default: "3000"
          description: |-
            Backoff delay for a failed callback in milliseconds
            This setting is used to configure the amount of time the backoff delays before retrying a failed callback. The backoff delay increases linearly by this value each time a callback fails to get a HTTPS 200 OK response. The backoff delay is capped by the max_callback_backoff_delay_ms setting.
          type: string
        callback_persist:
          default: true
          description: Stores callbacks on disk until they are successfully acknowledged by the Webhook or not. Restart required.
          type: boolean
        heartbeat_interval:
          default: 5
          description: "Multiconnect: Interval of the Master node monitoring of Coreapp nodes in seconds"
          type: integer
        max_callback_backoff_delay_ms:
          default: "900000"
          description: Maximum delay for a failed callback in milliseconds
          type: string
        media:
          $ref: "#/components/schemas/Media"
        on_call_pager:
          description: Set to valid WhatsApp Group with users who wish to see alerts for critical errors and messages.
          type: string
        pass_through:
          default: true
          description: |-
            When true, removes messages from the local database after they are delivered to or read by the recipient. When false, saves all messages on local storage until they are explicitly deleted.
            When messages are sent, they are stored in a local database. This database is used as the application's history. Since the business keeps its own history, you can specify whether you want message pass_through or not. Restart required.
          type: boolean
        sent_status:
          default: false
          description: Receive a notification that a message is sent to server. When true, you will receive a message indicating that a message has been sent. If false (default), you will not receive notification.
          type: boolean
        unhealthy_interval:
          default: 30
          description: "Multiconnect: Maximum amount of seconds a Master node waits for a Coreapp node to respond to a heartbeat before considering it unhealthy and starting the failover process."
          type: integer
        webhooks:
          $ref: "#/components/schemas/Webhooks"
      title: Update-Application-Settings-Request-Body
      type: object
    Audio:
      description: The media object containing audio
      oneOf:
        - $ref: "#/components/schemas/AudioById"
        - $ref: "#/components/schemas/AudioByProvider"
      title: Audio
      type: object
    AudioById:
      example:
        id: <Media Id, from Media API>
      properties:
        id:
          type: string
      required:
        - id
      title: AudioById
      type: object
    AudioByProvider:
      example:
        link: <Link to Audio, https>
        provider:
          name: <Provider Name from Media Provider API, optional
      properties:
        link:
          type: string
        provider:
          $ref: "#/components/schemas/Provider"
      required:
        - provider
        - link
      title: AudioByProvider
      type: object
    Backup-Settings:
      description: ""
      example:
        data: encrypted-backup-data
      properties:
        data:
          description: The data that has been backed up, encrypted for security.
          type: string
      title: Root Type for Backup-Settings
      type: object
    Backup-Settings-Request-Body:
      example:
        password: <Password for Backup>
      properties:
        password:
          description: Used to encrypt backup data for security
          type: string
      required:
        - password
      title: Backup-Settings-Request
      type: object
    Backup-Settings-Response:
      description: Save the data value as that will be used along with your password to restore the information.
      example:
        settings:
          data: encrypted-backup-data
      properties:
        settings:
          $ref: "#/components/schemas/Backup-Settings"
      title: Root Type for Backup-Settings-Response
      type: object
    Basic:
      description: ""
      example:
        password: your-password
        username: your-username
      properties:
        password:
          type: string
        username:
          type: string
      title: Root Type for Basic
      type: object
    Business-Profile:
      example:
        address: <Business Profile Address>
        description: <Business Profile Description>
        email: <Business Profile Email>
        vertical: <Business Profile Vertical>
        websites:
          - https://www.whatsapp.com
          - https://www.facebook.com
      properties:
        address:
          description: |-
            Address of the business
            Maximum of 256 characters
          type: string
        description:
          description: |-
            Description of the business
            Maximum of 256 characters
          type: string
        email:
          description: |-
            Email address to contact the business
            Maximum of 128 characters
          type: string
        vertical:
          description: |-
            Industry of the business
            Maximum of 128 characters
          type: string
        websites:
          description: |-
            URLs associated with business (e.g., website, Facebook page, Instagram)
            Maximum of 2 websites with a maximum of 256 characters each
          items:
            type: string
          type: array
      required:
        - address
        - description
        - email
        - vertical
        - websites
      title: Set-Business-Profile-Request
      type: object
    Business-Settings:
      description: ""
      example:
        business:
          profile:
            address: new-business-address
            description: business-description
            email: new-business-email
            vertical: business-industry
            websites:
              - website-1
              - website-2
      properties:
        business:
          $ref: "#/components/schemas/Business-Settings-Business"
      title: Root Type for Business-Settings
      type: object
    Business-Settings-Business:
      description: ""
      example:
        profile:
          address: new-business-address
          description: business-description
          email: new-business-email
          vertical: business-industry
          websites:
            - website-1
            - website-2
      properties:
        profile:
          $ref: "#/components/schemas/Business-Profile"
      title: Root Type for Business-Settings-Business
      type: object
    Check-Contact:
      description: ""
      example:
        input: +1 (516) 283-7151
        status: valid
        wa_id: "15162837151"
      properties:
        input:
          description: The value you sent in the contacts field of the JSON request.
          type: string
        status:
          description: Status of the user.
          enum:
            - processing
            - valid
            - invalid
          type: string
          x-enum-descriptions:
            - "processing: Input is still being processed."
            - "valid: Input determined to be a valid WhatsApp user."
            - "invalid: Input determined to not be a valid WhatsApp user or the phone number is in a bad format."
        wa_id:
          description: WhatsApp user identifier that can be used in other API calls. Only returned if the status is valid.
          type: string
      title: Check-Contact
      type: object
    Check-Contact-Request-Body:
      example:
        blocking: wait
        contacts:
          - "{{Recipient-WA-ID}}"
      properties:
        blocking:
          default: no_wait
          description: Blocking determines whether the request should wait for the processing to complete (synchronous) or not (asynchronous).
          enum:
            - no_wait
            - wait
          type: string
        contacts:
          description: Array of contact phone numbers. The numbers can be in any standard telephone number format.
          items:
            type: string
          type: array
      required:
        - contacts
      title: Check-Contact-Request
      type: object
    Check-Contact-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            contacts:
              items:
                $ref: "#/components/schemas/Check-Contact"
              type: array
          type: object
      description: ""
      example:
        contacts:
          - input: 1-631-555-1002
            status: processing
          - input: "6315551003"
            status: processing
          - input: +54 9 11 5612-1008
            status: processing
          - input: +1 (516) 283-7151
            status: valid
            wa_id: "15162837151"
      title: Check-Contact-Response
      type: object
    Check-Health-Response:
      description: ""
      example:
        health:
          your-hostname1:your-container-id1:
            gateway_status: connected
            role: primary_master
          your-hostname2:your-container-id2:
            gateway_status: disconnected
            role: secondary_master
      properties:
        health:
          oneOf:
            - $ref: "#/components/schemas/Gateway-Status"
            - additionalProperties:
                $ref: "#/components/schemas/Gateway-Node-Status"
              type: object
      title: Root Type for Check-Health-Response
      type: object
    Config:
      oneOf:
        - $ref: "#/components/schemas/Config-Bearer"
        - $ref: "#/components/schemas/Config-Basic"
      title: Config
    Config-Basic:
      example:
        basic:
          password: your-password
          username: your-username
      properties:
        basic:
          $ref: "#/components/schemas/Basic"
      title: Config
      type: object
    Config-Bearer:
      example:
        bearer: <Bearer Auth Token>
      properties:
        bearer:
          type: string
      required:
        - bearer
      title: Config
      type: object
    Contact:
      example:
        addresses:
          - city: Menlo Park
            country: United States
            country_code: us
            state: CA
            street: 1 Hacker Way
            type: HOME
            zip: "94025"
          - city: Menlo Park
            country: United States
            country_code: us
            state: CA
            street: 200 Jefferson Dr
            type: WORK
            zip: "94025"
        birthday: 2012-08-18
        emails:
          - email: test@fb.com
            type: WORK
          - email: test@whatsapp.com
            type: WORK
        name:
          first_name: John
          formatted_name: John Smith
          last_name: Smith
        org:
          company: WhatsApp
          department: Design
          title: Manager
        phones:
          - phone: +1 (940) 555-1234
            type: HOME
          - phone: +1 (650) 555-1234
            type: WORK
            wa_id: "16505551234"
        urls:
          - type: WORK
            url: https://www.facebook.com
      properties:
        addresses:
          description: Full contact address(es)
          items:
            $ref: "#/components/schemas/Address"
          type: array
        birthday:
          description: YYYY-MM-DD formatted string
          type: string
        emails:
          description: Contact email address(es)
          items:
            $ref: "#/components/schemas/Email"
          type: array
        ims:
          description: ""
          items:
            type: string
          type: array
        name:
          $ref: "#/components/schemas/Name"
        org:
          $ref: "#/components/schemas/Org"
        phones:
          description: Contact phone number(s)
          items:
            $ref: "#/components/schemas/Phone"
          type: array
        urls:
          description: Contact URL(s)
          items:
            $ref: "#/components/schemas/Url"
          type: array
      title: Contact
      type: object
    Create-Group-Request-Body:
      example:
        subject: <Group Subject>
      properties:
        subject:
          type: string
      required:
        - subject
      title: Create-Group-Request
      type: object
    Create-User-Request-Body:
      example:
        password: password
        username: username
      properties:
        password:
          description: username
          type: string
        username:
          description: password
          type: string
      required:
        - username
        - password
      title: Create-User-Request
      type: object
    Currency:
      description: ""
      example:
        amount_1000: 100990
        currency_code: USD
      properties:
        amount_1000:
          format: int32
          type: integer
        currency_code:
          type: string
      required:
        - amount_1000
        - currency_code
      title: Currency
      type: object
    Date-Time-Component:
      description: Date/time by component
      example:
        day_of_month: 25
        day_of_week: 5
        hour: 15
        minute: 33
        month: 2
        year: 1977
      properties:
        day_of_month:
          description: The day of month
          format: int32
          type: integer
        day_of_week:
          description: Both strings and numbers are accepted. If different from the value derived from the date (if specified), use the derived value.
          enum:
            - "1"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "7"
          format: int32
          type: integer
          x-enum-descriptions:
            - Monday
            - Tuesday
            - Wednesday
            - Thursday
            - Friday
            - Saturday
            - Sunday
          x-enum-varnames:
            - MONDAY
            - TUESDAY
            - WEDNESDAY
            - THURSDAY
            - FRIDAY
            - SATURDAY
            - SUNDAY
        hour:
          description: The hour
          format: int32
          type: integer
        minute:
          description: The minute
          format: int32
          type: integer
        month:
          description: The month
          format: int32
          type: integer
        year:
          description: The year
          format: int32
          type: integer
      title: Date-Time-Component
      type: object
    Date-Time-Object:
      description: The Whatsapp Business API Client will attempt to format the date/time based on a specified localization.
      example:
        component:
          day_of_month: 25
          day_of_week: 5
          hour: 15
          minute: 33
          month: 2
          year: 1977
      properties:
        component:
          $ref: "#/components/schemas/Date-Time-Component"
        unix_epoch:
          $ref: "#/components/schemas/Date-Time-Unix-Epoch"
      title: Date-Time
      type: object
    Date-Time-Unix-Epoch:
      description: Date/time by Unix epoch
      example:
        timestamp: 123456789
      properties:
        timestamp:
          description: Epoch timestamp in seconds
          format: int32
          type: integer
      title: Date-Time-Unix-Epoch
      type: object
    Detailed-User-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            users:
              items:
                $ref: "#/components/schemas/Detailed-User-Response-Item"
              type: array
          type: object
      description: ""
      example:
        users:
          - ROLES: ROLE_USER
            username: username
      title: Root Type for Detailed-User-Response
      type: object
    Detailed-User-Response-Item:
      description: ""
      example:
        ROLES: ROLE_USER
        username: username
      properties:
        ROLES:
          $ref: "#/components/schemas/User-Role"
        username:
          type: string
      title: Root Type for Detailed-Response-Item
      type: object
    Document:
      description: The media object containing a document
      oneOf:
        - $ref: "#/components/schemas/DocumentById"
        - $ref: "#/components/schemas/DocumentByProvider"
      title: Document
      type: object
    DocumentById:
      example:
        caption: <Message Caption>
        filename: <Filename>
        id: <Media Id, from Media API>
      properties:
        caption:
          type: string
        filename:
          type: string
        id:
          type: string
      required:
        - caption
        - id
        - filename
      title: Document
      type: object
    DocumentByProvider:
      example:
        caption: <Message Caption>
        filename: <Filename>
        link: <Link to PDF, https>
        provider:
          name: <Provider Name from Media Provider API, optional
      properties:
        caption:
          type: string
        filename:
          type: string
        link:
          type: string
        provider:
          $ref: "#/components/schemas/Provider"
      required:
        - provider
        - caption
        - link
        - filename
      title: Document1
      type: object
    Email:
      example:
        email: <Contact's Email>
        type: <Contact's Email Type>
      properties:
        email:
          type: string
        type:
          type: string
      required:
        - email
        - type
      title: Email
      type: object
    Enable-Two-Step-Request-Body:
      example:
        pin: your-6-digit-pin
      properties:
        pin:
          type: string
      required:
        - pin
      title: Enable-Two-Step-Request
      type: object
    Error:
      description: ""
      example:
        code: 1234
        details: optional-detailed-error-message
        title: error-code-title
      properties:
        code:
          description: See the https://developers.facebook.com/docs/whatsapp/api/errors for more information.
          format: int32
          type: integer
        details:
          description: error detail
          type: string
        href:
          description: location for error detail
          type: string
        title:
          description: error title
          type: string
      title: Error
      type: object
    Gateway-Node-Status:
      description: ""
      example:
        gateway_status: connected
        role: coreapp
      properties:
        gateway_status:
          type: string
        role:
          enum:
            - primary_master
            - secondary_master
            - coreapp
          type: string
      title: Root Type for Gateway-Node-Status
      type: object
    Gateway-Status:
      description: ""
      enum:
        - connected
        - connecting
        - disconnected
        - uninitialized
        - unregistered
      type: string
    Get-Business-Profile-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            settings:
              $ref: "#/components/schemas/Business-Settings"
          type: object
      description: ""
      example:
        settings:
          business:
            profile:
              address: new-business-address
              description: business-description
              email: new-business-email
              vertical: business-industry
              websites:
                - website-1
                - website-2
      title: Root Type for Get-Business-Profile-Response
      type: object
    Get-Media-Providers-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            settings:
              $ref: "#/components/schemas/Media-Provider-Settings"
          type: object
      description: ""
      example:
        settings:
          application:
            media:
              providers:
                - config:
                    basic:
                      password: your-password
                      username: your-username
                  name: your-first-provider
                  type: www
                - config:
                    bearer: your-bearer-token
                  name: your-second-provider
                  type: www
      title: Root Type for Get-Media-Providers-Response
      type: object
    Get-Profile-About-Response:
      description: ""
      example:
        settings:
          profile:
            about:
              text: your-profile-about-text
      properties:
        settings:
          $ref: "#/components/schemas/Profile-About-Settings"
      title: Root Type for Get-Profile-About-Response
      type: object
    Get-Profile-Photo-Response:
      description: ""
      example:
        settings:
          profile:
            photo:
              link: profile-photo-url
      properties:
        settings:
          $ref: "#/components/schemas/Profile-Photo-Settings"
      title: Root Type for Get-Profile-Photo-Response
      type: object
    Group:
      description: ""
      example:
        creation_time: 123456789
        id: your-group-id
      properties:
        creation_time:
          description: timestamp
          format: int32
          type: integer
        id:
          type: string
      title: Groups-Response-Item
      type: object
    Group-Admin-Request-Body:
      example:
        wa_ids:
          - <Recipient WA-ID, from Contacts API>
      properties:
        wa_ids:
          description: The WhatsApp IDs of the people to be added or removed as group admins
          items:
            type: string
          type: array
      required:
        - wa_ids
      title: Group-Admin-Request
      type: object
    Group-Info:
      description: ""
      example:
        admins:
          - whatsapp-id-1
          - whatsapp-id-2
        creation_time: 123456789
        creator: whatsapp-id-1
        participants:
          - whatsapp-id-3
          - whatsapp-id-4
          - whatsapp-id-5
        subject: your-group-subject
      properties:
        admins:
          description: |-
            Group administrators
            Lists IDs of the creator of the group and any administrators added
          items:
            type: string
          type: array
        creation_time:
          description: Group creation time
          format: int32
          type: integer
        creator:
          description: ID of the creator of this group
          type: string
        participants:
          description: |-
            Participants of the group
            This is an array of all the IDs of the participants in the group. Initially, this will be the creator of the group.
          items:
            type: string
          type: array
        subject:
          description: Subject of the group
          type: string
      title: Group-Response-Item
      type: object
    Group-Invite:
      description: ""
      example:
        link: group-invite-link
      properties:
        link:
          type: string
      title: Group-Invite
      type: object
    Group-Invite-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            groups:
              items:
                $ref: "#/components/schemas/Group-Invite"
              type: array
          type: object
      description: ""
      example:
        groups:
          - link: group-invite-link
      title: Group-Invite-Response
      type: object
    Group-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            groups:
              items:
                $ref: "#/components/schemas/Group-Info"
              type: array
          type: object
      description: ""
      example:
        groups:
          - admins:
              - whatsapp-id-1
              - whatsapp-id-2
            creation_time: 123456789
            creator: whatsapp-id-1
            participants:
              - whatsapp-id-3
              - whatsapp-id-4
              - whatsapp-id-5
            subject: your-group-subject
      title: Group-Response
      type: object
    Groups-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            groups:
              items:
                $ref: "#/components/schemas/Group"
              type: array
          type: object
      description: ""
      example:
        groups:
          - creation_time: 123456789
            id: your-group-id
      title: GroupsResponse
      type: object
    Hsm:
      description: The containing element for the message content — Indicates that the message is highly structured. Parameters contained within provide the structure.
      example:
        element_name: hello_world
        language:
          code: en
          policy: deterministic
        localizable_params:
          - default: "1234"
        namespace: business_a_namespace
      properties:
        element_name:
          description: The element name that indicates which template to use within the namespace
          type: string
        language:
          $ref: "#/components/schemas/Language"
        localizable_params:
          description: This field is an array of values to apply to variables in the template
          items:
            $ref: "#/components/schemas/LocalizableParam"
          type: array
        namespace:
          description: The namespace that will be used
          type: string
      required:
        - namespace
        - element_name
        - language
        - localizable_params
      title: Hsm
      type: object
    Image:
      description: The media object containing an image
      oneOf:
        - $ref: "#/components/schemas/ImageById"
        - $ref: "#/components/schemas/ImageByProvider"
      title: Image
      type: object
    ImageById:
      example:
        caption: <Message Caption>
        id: <Media Id, from Media API>
      properties:
        caption:
          type: string
        id:
          type: string
      required:
        - caption
        - id
      title: ImageById
      type: object
    ImageByProvider:
      example:
        caption: <Media Caption>
        link: <Link to Image, https>
        provider:
          name: <Provider Name from Media Provider API, optional
      properties:
        caption:
          type: string
        link:
          type: string
        provider:
          $ref: "#/components/schemas/Provider"
      required:
        - provider
        - link
        - caption
      title: ImageByProvider
      type: object
    Language:
      example:
        code: en
        policy: deterministic
      properties:
        code:
          description: The code of the language or locale to use — Accepts both language and language_locale formats (e.g., en and en_US).
          type: string
        policy:
          description: The language policy the message should follow
          enum:
            - fallback
            - deterministic
          type: string
      required:
        - policy
        - code
      title: Language
      type: object
    LocalizableParam:
      example:
        default: <param value>
      properties:
        currency:
          $ref: "#/components/schemas/Currency"
        date_time:
          $ref: "#/components/schemas/Date-Time-Object"
        default:
          description: Default text if localization fails
          type: string
      required:
        - default
      title: LocalizableParam
      type: object
    Location:
      example:
        address: <Location's Address>
        latitude: <Latitude>
        longitude: <Longitude>
        name: <Location Name>
      properties:
        address:
          description: Address of the location. Only displayed if name is present.
          type: string
        latitude:
          description: Latitude of the location
          type: string
        longitude:
          description: Longitude of the location
          type: string
        name:
          description: Name of the location
          type: string
      required:
        - longitude
        - latitude
        - name
        - address
      title: Location
      type: object
    Login-Admin-Request-Body:
      example:
        new_password: <New Admin Password>
      properties:
        new_password:
          type: string
      required:
        - new_password
      title: Login-Admin-Request
      type: object
    Mark-Message-As-Read-Request-Body:
      example:
        status: read
      properties:
        status:
          default: read
          type: string
      required:
        - status
      title: Mark-Message-As-Read-Request
      type: object
    Media:
      example:
        auto_download:
          - image
          - document
          - audio
      properties:
        auto_download:
          description: An array specifying which types of media to automatically download.
          items:
            enum:
              - audio
              - document
              - voice
              - video
              - image.
            type: string
          type: array
      required:
        - auto_download
      title: Media
      type: object
    Media-Provider:
      example:
        config:
          bearer: <Bearer Auth Token>
        name: <Provider Name>
        type: www
      properties:
        config:
          $ref: "#/components/schemas/Config"
        name:
          description: The name for the provider
          type: string
        type:
          description: The type of provider
          type: string
      title: Update-Media-Providers-Request
      type: object
    Media-Provider-Settings:
      description: ""
      example:
        application:
          media:
            providers:
              - config:
                  basic:
                    password: your-password
                    username: your-username
                name: your-first-provider
                type: www
              - config:
                  bearer: your-bearer-token
                name: your-second-provider
                type: www
      properties:
        application:
          $ref: "#/components/schemas/Media-Provider-Settings-Application"
      title: Root Type for Settings
      type: object
    Media-Provider-Settings-Application:
      description: ""
      example:
        media:
          providers:
            - config:
                basic:
                  password: your-password
                  username: your-username
              name: your-first-provider
              type: www
            - config:
                bearer: your-bearer-token
              name: your-second-provider
              type: www
      properties:
        media:
          $ref: "#/components/schemas/Media-Provider-Settings-Application-Media"
      title: Root Type for Settings-Application
      type: object
    Media-Provider-Settings-Application-Media:
      description: ""
      example:
        providers:
          - config:
              basic:
                password: your-password
                username: your-username
            name: your-first-provider
            type: www
          - config:
              bearer: your-bearer-token
            name: your-second-provider
            type: www
      properties:
        providers:
          items:
            $ref: "#/components/schemas/Media-Provider"
          type: array
      title: Root Type for Settings-Application-Media
      type: object
    Message:
      description: ""
      example:
        id: gBEGkYiEB1VXAglK1ZEqA1YKPrU
      properties:
        id:
          type: string
      title: Message
      type: object
    Message-Context:
      description: ""
      example:
        from: sender-wa-id-of-context-message
        group_id: group-id-of-context-message
        id: message-id-of-context-message
        mentions:
          - wa-id1
          - wa-id2
      properties:
        from:
          description: Sender Whatsapp id of context-message
          type: string
        group_id:
          description: GroupId of context message
          type: string
        id:
          description: message id
          type: string
        mentions:
          description: Whats app ids
          items:
            type: string
          type: array
      title: Root Type for Message-Context
      type: object
    Message-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            messages:
              items:
                $ref: "#/components/schemas/Message"
              type: array
          type: object
      description: ""
      example:
        messages:
          - id: gBEGkYiEB1VXAglK1ZEqA1YKPrU
      title: Message-Response
      type: object
    Message-Type:
      default: text
      description: type of the message
      enum:
        - audio
        - contacts
        - document
        - hsm
        - image
        - location
        - text
        - video
        - voice
        - unknown
      type: string
    Meta:
      description: Contains generic information such as WhatsApp Business API Client version.
      example:
        api_status: stable
        version: whatsapp-business-api-client-version
      properties:
        api_status:
          enum:
            - deprecated
            - experimental
            - stable
          type: string
        version:
          type: string
      title: Meta
      type: object
    Name:
      description: Full contact name
      example:
        first_name: John
        formatted_name: John Smith
        last_name: Smith
      properties:
        first_name:
          description: First name
          type: string
        formatted_name:
          description: Full name as it normally appears
          type: string
        last_name:
          description: Last name
          type: string
        prefix:
          description: Name preffix
          type: string
        suffix:
          description: Name suffix
          type: string
      required:
        - formatted_name
      title: Name
      type: object
    Org:
      description: Contact organization information
      example:
        company: WhatsApp
        department: Design
        title: Manager
      properties:
        company:
          description: Name of the contact's company
          type: string
        department:
          description: Name of the contact's department
          type: string
        title:
          description: Contact's business title
          type: string
      required:
        - company
      title: Org
      type: object
    Phone:
      example:
        phone: +1 (650) 555-1234
        type: WORK
        wa_id: "16505551234"
      properties:
        phone:
          type: string
        type:
          description: "Standard Values: CELL, MAIN, IPHONE, HOME, WORK"
          type: string
        wa_id:
          description: WhatsApp ID
          type: string
      title: Phone
      type: object
    Profile-About:
      example:
        text: <About Profile>
      properties:
        text:
          description: |-
            Text to display in your profile's About section
            The max length for the string is 139 characters.
          type: string
      required:
        - text
      title: Set-Profile-About-Request
      type: object
    Profile-About-Settings:
      description: ""
      example:
        profile:
          about:
            text: your-profile-about-text
      properties:
        profile:
          $ref: "#/components/schemas/Profile-About-Settings-Profile"
      title: Root Type for Profile-About-Settings
      type: object
    Profile-About-Settings-Profile:
      description: ""
      example:
        about:
          text: your-profile-about-text
      properties:
        about:
          $ref: "#/components/schemas/Profile-About"
      title: Root Type for About-XXX
      type: object
    Profile-Photo-Settings:
      description: ""
      example:
        profile:
          photo:
            link: profile-photo-url
      properties:
        profile:
          properties:
            photo:
              properties:
                link:
                  type: string
              type: object
          type: object
      title: Root Type for Profile-Photo-Settings
      type: object
    Profile-Photo-Settings-Profile:
      description: ""
      example:
        photo:
          link: profile-photo-url
      properties:
        photo:
          $ref: "#/components/schemas/Profile-Photo-Settings-Profile-Photo"
      title: Root Type for Profile-Photo-Settings-Profile
      type: object
    Profile-Photo-Settings-Profile-Photo:
      description: ""
      example:
        link: profile-photo-url
      properties:
        link:
          type: string
      title: Root Type for Profile-Photo-Settings-Profile-Photo
      type: object
    Provider:
      example:
        name: <Provider Name from Media Provider API, optional
      properties:
        name:
          type: string
      required:
        - name
      title: Provider
      type: object
    Register-Account-Request-Body:
      example:
        code: your-registration-code-received-by-sms-or-voice-call
      properties:
        code:
          type: string
      required:
        - code
      title: Register-Account-Request
      type: object
    Remove-Group-Participant-Request-Body:
      example:
        wa_ids:
          - "{{Recipient-WA-ID}}"
      properties:
        wa_ids:
          description: ""
          items:
            type: string
          type: array
      required:
        - wa_ids
      title: Remove-Group-Participant-Request
      type: object
    Request-Code-Account:
      description: ""
      example:
        vname: decoded-vname-from-cert
      properties:
        vname:
          type: string
      title: Root Type for Request-Code-Account
      type: object
    Request-Code-Request-Body:
      example:
        cc: <Country Code>
        cert: <Valid Cert from Business Manager>
        method: < sms | voice >
        phone_number: <Phone Number>
        pin: <Two-Step Verification PIN
      properties:
        cc:
          description: Numerical country code for the phone number you are registering
          type: string
        cert:
          description: Base64-encoded Verified Name certificate
          type: string
        method:
          description: Method of receiving your registration code
          enum:
            - sms
            - voice
          type: string
        phone_number:
          description: Phone number you are registering, without the country code or plus symbol (+)
          type: string
        pin:
          description: Existing 6-digit PIN — This is only required when two-factor verification is enabled on this account.
          type: string
      required:
        - cc
        - phone_number
        - method
        - cert
      title: Request-Code-Request
      type: object
    Request-Code-Response:
      description: ""
      example:
        account:
          - vname: decoded-vname-from-cert
      properties:
        account:
          items:
            $ref: "#/components/schemas/Request-Code-Account"
          type: array
      title: Root Type for Request-Code-Response
      type: object
    Response:
      description: ""
      example:
        errors:
          - code: 1234
            details: optional-detailed-error-message
            title: error-code-title
        meta:
          api_status: deprecated
          version: whatsapp-business-api-client-version
      properties:
        errors:
          description: "Only returned with a failed request. Contains an array of error objects that are present when there is an error. "
          items:
            $ref: "#/components/schemas/Error"
          type: array
        meta:
          $ref: "#/components/schemas/Meta"
      title: Response
      type: object
    Restore-Settings-Request-Body:
      example:
        data: <Data to Restore, from Backup API>
        password: <Password for Backup>
      properties:
        data:
          description: The data that was returned by the /v1/settings/backup API call
          type: string
        password:
          description: The password you used in the /v1/settings/backup API call to encrypt the backup data
          type: string
      required:
        - password
        - data
      title: Restore-Settings-Request
      type: object
    Send-Message-Request-Body:
      example:
        preview_url: true
        recipient_type: individual
        text:
          body: your-text-message-content
        to: "{whatsapp-id}"
        type: text
      properties:
        audio:
          $ref: "#/components/schemas/Audio"
        contacts:
          description: ""
          items:
            $ref: "#/components/schemas/Contact"
          type: array
        document:
          $ref: "#/components/schemas/Document"
        hsm:
          $ref: "#/components/schemas/Hsm"
        image:
          $ref: "#/components/schemas/Image"
        location:
          $ref: "#/components/schemas/Location"
        preview_url:
          description: |-
            Specifying preview_url in the request is optional when not including a URL in your message.
            To include a URL preview, set preview_url to true in the message body and make sure the URL begins with http:// or https://. For more information, see the Sending URLs in Text Messages section.
          type: boolean
        recipient_type:
          default: individual
          description: |-
            Determines whether the recipient is an individual or a group
            Specifying recipient_type in the request is optional when the value is individual.
            However, recipient_type is required when using group. If sending a text message to a group, see the Sending Group Messages documentation.
          enum:
            - individual
            - group
          type: string
        text:
          $ref: "#/components/schemas/Text"
        to:
          description: When recipient_type is individual, this field is the WhatsApp ID (phone number) returned from contacts endpoint. When recipient_type is group, this field is the WhatsApp group ID.
          type: string
        ttl:
          type: object
        type:
          $ref: "#/components/schemas/Message-Type"
        video:
          $ref: "#/components/schemas/Video"
      required:
        - to
      title: Send-Text-Message-Request
      type: object
    Set-Shards-Request-Body:
      example:
        cc: <Country Code>
        phone_number: <Phone Number>
        pin: <Two-Step PIN>
        shards: 32
      properties:
        cc:
          type: string
        phone_number:
          type: string
        pin:
          type: string
        shards:
          enum:
            - "1"
            - "2"
            - "4"
            - "8"
            - "16"
            - "32"
          format: int32
          type: integer
      required:
        - cc
        - phone_number
        - shards
        - pin
      title: Set-Shards-Request
      type: object
    Text:
      example:
        body: <Message Text>
      properties:
        body:
          type: string
      required:
        - body
      title: Text
      type: object
    Update-Group-Info-Request-Body:
      example:
        subject: <New Group Subject>
      properties:
        subject:
          type: string
      required:
        - subject
      title: Update-Group-Info-Request
      type: object
    Update-User-Request-Body:
      example:
        password: New Password
      properties:
        password:
          description: password
          type: string
      required:
        - password
      title: Update-User-Request
      type: object
    Upload-Media:
      description: ""
      example:
        id: f043afd0-f0ae-4b9c-ab3d-696fb4c8cd68
      properties:
        id:
          type: string
      title: Root Type for Upload-Media
      type: object
    Upload-Media-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            media:
              items:
                $ref: "#/components/schemas/Upload-Media"
              type: array
          type: object
      description: ""
      example:
        media:
          - id: f043afd0-f0ae-4b9c-ab3d-696fb4c8cd68
      title: Root Type for Upload-Media-Response
      type: object
    Url:
      description: "Standard Values: HOME, WORK"
      example:
        type: WORK
        url: https://www.facebook.com
      properties:
        type:
          description: "Standard Values: HOME, WORK"
          type: string
        url:
          description: URL
          type: string
      title: Root Type for Url
      type: object
    User-Login-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            users:
              items:
                $ref: "#/components/schemas/User-Login-Response-Item"
              type: array
          type: object
      description: ""
      example:
        users:
          - expires_after: 2018-03-01 15:29:26+00:00
            token: eyJhbGciOHlXVCJ9.eyJ1c2VyIjoNTIzMDE2Nn0.mEoF0COaO00Z1cANo
      title: UserLoginResponse
      type: object
    User-Login-Response-Item:
      description: ""
      example:
        expires_after: 2018-03-01 15:29:26+00:00
        token: eyJhbGciOHlXVCJ9.eyJ1c2VyIjoNTIzMDE2Nn0.mEoF0COaO00Z1cANo
      properties:
        expires_after:
          description: Token expiration timestamp. By default, this is 7 days.
          format: date-time
          type: string
        token:
          description: |-
            Authentication token to be used for all other WhatsApp Business API calls. The token must be sent in the authorization header in the format:
            Authorization: Bearer <authentication-token>
          type: string
      title: UserLoginResponseItem
      type: object
    User-Response:
      allOf:
        - $ref: "#/components/schemas/Response"
        - properties:
            users:
              items:
                $ref: "#/components/schemas/User-Response-Item"
              type: array
          type: object
      description: ""
      example:
        users:
          - username: username
      title: Root Type for User-Create-Response
      type: object
    User-Response-Item:
      description: ""
      example:
        username: username
      properties:
        username:
          type: string
      title: Root Type for User-Create-Response-Item
      type: object
    User-Role:
      description: ""
      enum:
        - ROLE_ADMIN
        - ROLE_USER
      type: string
    Video:
      description: The media object containing a video
      oneOf:
        - $ref: "#/components/schemas/VideoById"
        - $ref: "#/components/schemas/VideoByProvider"
      title: Video
      type: object
    VideoById:
      example:
        caption: <Message Caption>
        id: <Media Id, from Media API>
      properties:
        caption:
          type: string
        id:
          type: string
      required:
        - caption
        - id
      title: VideoById
      type: object
    VideoByProvider:
      example:
        caption: <Message Caption>
        link: <Link to Video, https>
        provider:
          name: <Provider Name from Media Provider API, optional
      properties:
        caption:
          type: string
        link:
          type: string
        provider:
          $ref: "#/components/schemas/Provider"
      required:
        - provider
        - caption
        - link
      title: ByProvider
      type: object
    Webhook-Audio:
      description: ""
      example:
        file: absolute-filepath-on-coreapp
        id: media-id
        link: link-to-audio-file
        mime_type: media-mime-type
        sha256: checksum
      properties:
        caption:
          description: Optional. Only present if specified.
          type: string
        file:
          deprecated: true
          description: Absolute filename and location on media volume. This parameter is deprecated.
          type: string
        filename:
          description: Filename on the sender's device. This will only be present in audio and document media messages.
          type: string
        id:
          description: ID of the media. Can be used to delete the media if stored locally on the client.
          type: string
        link:
          type: string
        mime_type:
          description: Mime type of media
          type: string
        sha256:
          description: Checksum
          type: string
      title: Root Type for Webhook-Audio
      type: object
    Webhook-Contact:
      description: ""
      example:
        profile:
          name: Kerry Fisher
        wa_id: "16315551234"
      properties:
        profile:
          $ref: "#/components/schemas/Webhook-Contact-Profile"
        wa_id:
          description: The WhatsApp ID of the contact
          type: string
      title: Root Type for Webhook-Contact
      type: object
    Webhook-Contact-Profile:
      description: ""
      example:
        name: sender-profile-name
      properties:
        name:
          description: Optional. As of v2.21.4, contains the sender's profile name.
          type: string
      title: Root Type for Webhook-Contact-Profile
      type: object
    Webhook-Document:
      description: ""
      example:
        caption: 80skaraokesonglistartist
        file: /usr/local/wamedia/shared/fc233119-733f-49c-bcbd-b2f68f798e33
        id: fc233119-733f-49c-bcbd-b2f68f798e33
        mime_type: application/pdf
        sha256: 3b11fa6ef2bde1dd14726e09d3edaf782120919d06f6484f32d5d5caa4b8e
      properties:
        caption:
          description: Optional. Only present if specified.
          type: string
        file:
          deprecated: true
          description: Absolute filename and location on media volume. This parameter is deprecated.
          type: string
        filename:
          description: Filename on the sender's device. This will only be present in audio and document media messages.
          type: string
        id:
          description: ID of the media. Can be used to delete the media if stored locally on the client.
          type: string
        link:
          type: string
        mime_type:
          description: Mime type of media
          type: string
        sha256:
          description: Checksum
          type: string
      title: Root Type for Webhook-Document
      type: object
    Webhook-Event:
      description: ""
      example:
        contacts:
          - profile:
              name: Kerry Fisher
            wa_id: "16315551234"
        messages:
          - from: "16315551234"
            id: ABGGFlA5FpafAgo6tHcNmNjXmuSf
            text:
              body: Hello this is an answer
            timestamp: "1518694235"
            type: text
      properties:
        contacts:
          items:
            $ref: "#/components/schemas/Webhook-Contact"
          type: array
        errors:
          items:
            $ref: "#/components/schemas/Error"
          type: array
        messages:
          items:
            $ref: "#/components/schemas/Webhook-Message"
          type: array
        statuses:
          items:
            $ref: "#/components/schemas/Webhook-Status"
          type: array
      title: Root Type for Webhook-Event
      type: object
    Webhook-Image:
      description: ""
      example:
        caption: Check out my new phone!
        file: /usr/local/wamedia/shared/b1cf38-8734-4ad3-b4a1-ef0c10d0d683
        id: b1c68f38-8734-4ad3-b4a1-ef0c10d683
        mime_type: image/jpeg
        sha256: 29ed500fa64eb55fc19dc4124acb300e5dcc54a0f822a301ae99944db
      properties:
        caption:
          description: Optional. Only present if specified.
          type: string
        file:
          deprecated: true
          description: Absolute filename and location on media volume. This parameter is deprecated.
          type: string
        id:
          description: ID of the media. Can be used to delete the media if stored locally on the client.
          type: string
        link:
          type: string
        mime_type:
          description: Mime type of media
          type: string
        sha256:
          description: Checksum
          type: string
      title: Root Type for Webhook-Image
      type: object
    Webhook-Location:
      description: ""
      example:
        address: Main Street Beach, Santa Cruz, CA
        latitude: 38.9806263495
        longitude: -131.9428612257
        name: Main Street Beach
        url: https://foursquare.com/v/4d7031d35b5df7744
      properties:
        address:
          description: Address of the location
          type: string
        latitude:
          description: Latitude of location being sent
          format: double
          type: number
        longitude:
          description: Longitude of location being sent
          format: double
          type: number
        name:
          description: Name of the location
          type: string
        url:
          description: URL for the website where the user downloaded the location information
          type: string
      title: Root Type for Webhook-Location
      type: object
    Webhook-Message:
      description: ""
      example:
        from: "16315551234"
        id: ABGGFlA5FpafAgo6tHcNmNjXmuSf
        text:
          body: Hello this is an answer
        timestamp: "1518694235"
        type: text
      properties:
        audio:
          $ref: "#/components/schemas/Webhook-Audio"
        contacts:
          items:
            $ref: "#/components/schemas/Contact"
          type: array
        context:
          $ref: "#/components/schemas/Message-Context"
        document:
          $ref: "#/components/schemas/Webhook-Document"
        errors:
          items:
            $ref: "#/components/schemas/Error"
          type: array
        from:
          description: WhatsApp ID of the sender
          type: string
        group_id:
          description: Optional. WhatsApp group ID
          type: string
        id:
          description: Message ID
          type: string
        image:
          $ref: "#/components/schemas/Webhook-Image"
        location:
          $ref: "#/components/schemas/Webhook-Location"
        system:
          $ref: "#/components/schemas/Webhook-System"
        text:
          $ref: "#/components/schemas/Webhook-Text"
        timestamp:
          description: Message received timestamp
          type: string
        type:
          $ref: "#/components/schemas/Message-Type"
        video:
          $ref: "#/components/schemas/Webhook-Video"
        voice:
          $ref: "#/components/schemas/Webhook-Voice"
      title: Root Type for Webhook-Message
      type: object
    Webhook-Status:
      description: ""
      example:
        errors:
          - code: 470
            title: Failed to send message because you are outside the support window for freeform messages to this user. Please use a valid HSM notification or reconsider.
        id: gBGGEgZHMlEfAgkM1RBkhDRr7t8
        recipient_id: "12064001000"
        status: failed
        timestamp: "1533332775"
      properties:
        errors:
          items:
            $ref: "#/components/schemas/Error"
          type: array
        id:
          description: Message ID
          type: string
        recipient_id:
          description: WhatsApp ID of recipient
          type: string
        status:
          description: Status of message
          enum:
            - sent
            - delivered
            - read
            - failed
            - deleted
          type: string
          x-enum-descriptions:
            - Message received by WhatsApp server (One checkmark in WhatsApp Mobile)
            - Message delivered to recipient (Two checkmarks in WhatsApp Mobile)
            - Message read by recipient (Two blue checkmarks in WhatsApp Mobile)
            - Message failed to send (Red error triangle in WhatsApp Mobile)
            - Message deleted by the user
        timestamp:
          description: Timestamp of the status message
          type: string
      title: Root Type for Webhook-Status
      type: object
    Webhook-System:
      description: ""
      example:
        body: +1 (650) 387-5246 added +1 (650) 644-8470
        group_id: 16315558032-1530825318
        operator: "16503875246"
        type: group_user_joined
        users:
          - "16506448470"
      properties:
        body:
          type: string
        type:
          description: ""
          enum:
            - group_created
            - group_user_promoted
            - group_user_demoted
            - group_user_joined
            - group_user_left
            - group_subject_changed
            - group_description_changed
            - group_icon_changed
            - group_icon_deleted
            - group_invite_link_revoked
            - user_identity_changed
            - group_user_changed_number
            - group_error_fetching_photo
            - group_error_adding_users
            - group_error_adding_user
            - group_error_full_adding_users
            - group_error_removing_user
            - broadcast_list_created
            - group_ended
            - group_error_blocked_adding_user
          type: string
          x-enum-descriptions:
            - Group created
            - Group user promoted to admin
            - Group user removed as admin
            - User joined the group
            - User left the group
            - Group subject changed
            - Group description changed
            - Group icon changed
            - Group icon deleted
            - Group's invite link disabled
            - User's end-to-end keys changed
            - User's phone number changed
            - Error retrieving the group photo
            - Error adding users to the group
            - Error adding a user to the group
            - Group is at capacity and no more users can be added
            - Error removing user from group
            - Broadcast list created
            - Group ended
            - Error attempting to add a user that blocked the adder
      title: Root Type for Webhook-System
      type: object
    Webhook-Text:
      description: ""
      example:
        body: text-message-content
      properties:
        body:
          description: Message text
          type: string
      title: Root Type for Webhook-Text
      type: object
    Webhook-Video:
      description: ""
      example:
        file: absolute-filepath-on-coreapp
        id: media-id
        link: link-to-video-file
        mime_type: media-mime-type
        sha256: checksum
      properties:
        caption:
          description: Optional. Only present if specified.
          type: string
        file:
          deprecated: true
          description: Absolute filename and location on media volume. This parameter is deprecated.
          type: string
        id:
          description: ID of the media. Can be used to delete the media if stored locally on the client.
          type: string
        link:
          type: string
        mime_type:
          description: Mime type of media
          type: string
        sha256:
          description: Checksum
          type: string
      title: Root Type for Webhook-Video
      type: object
    Webhook-Voice:
      description: ""
      example:
        file: /usr/local/wamedia/shared/463e/b7ec/ff4e4d9bb1101879cbd411b2
        id: 463eb7ec-ff4e-4d9b-b110-1879cbd411b2
        mime_type: audio/ogg; codecs=opus
        sha256: fa9e1807d936b7cebe63654ea3a7912b1fa9479220258d823590521ef53b0710
      properties:
        caption:
          description: Optional. Only present if specified.
          type: string
        file:
          deprecated: true
          description: Absolute filename and location on media volume. This parameter is deprecated.
          type: string
        id:
          description: ID of the media. Can be used to delete the media if stored locally on the client.
          type: string
        link:
          type: string
        mime_type:
          description: Mime type of media
          type: string
        sha256:
          description: Checksum
          type: string
      title: Root Type for Webhook-Voice
      type: object
    Webhooks:
      example:
        max_concurrent_requests: 12
        url: <Webhook URL, https>
      properties:
        max_concurrent_requests:
          default: 6
          description: Configures the maximum number of inflight callback requests that are sent out. Can be set to 6 (default), 12, 18, or 24.
          enum:
            - "6"
            - "12"
            - "18"
            - "24"
          format: int32
          type: integer
        url:
          description: Inbound and outbound notifications are routed to this URL. A HTTPS-based endpoint is required; HTTP will not work.
          type: string
      title: Webhooks
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: token
      scheme: bearer
      type: http
    httpBasic:
      scheme: basic
      type: http
