openapi: 3.0.0 info: title: WhatsApp Business API version: '1.0' description: 'See https://developers.facebook.com/docs/whatsapp' contact: {} servers: - url: 'http://example.com/v1' paths: /users/login: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/Login-Admin-Request-Body' required: false tags: - Users responses: '200': content: application/json: schema: $ref: '#/components/schemas/User-Login-Response' description: OK deprecated: false security: - httpBasic: [] operationId: LoginUser summary: Login-User /users: post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Create-User-Request-Body' example: username: '{{UserUsername}}' password: '{{UserPassword}}' required: true tags: - Users responses: '200': content: application/json: schema: $ref: '#/components/schemas/User-Response' description: '' deprecated: false operationId: CreateUser summary: Create-User '/users/{UserUsername}': get: tags: - Users parameters: - style: simple explode: false name: UserUsername description: '' schema: type: string in: path required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Detailed-User-Response' description: '' deprecated: false operationId: GetUser summary: Get-User put: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Update-User-Request-Body' example: password: required: true tags: - Users parameters: - style: simple explode: false name: UserUsername description: '' schema: type: string in: path required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/User-Response' description: '' deprecated: false operationId: UpdateUser summary: Update-User delete: tags: - Users parameters: - style: simple explode: false name: UserUsername description: '' schema: type: string in: path required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/User-Response' description: '' deprecated: false operationId: DeleteUser summary: Delete-User /users/logout: post: tags: - Users responses: '200': description: '' deprecated: false operationId: LogoutUser summary: Logout-User /settings/application: get: tags: - Application responses: '200': content: application/json: schema: $ref: '#/components/schemas/Application-Settings' description: '' deprecated: false operationId: GetApplicationSettings summary: Get-Application-Settings delete: tags: - Application responses: '200': description: '' deprecated: false operationId: ResetApplicationSettings summary: Reset-Application-Settings patch: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Application-Settings' example: webhooks: url: '' required: true tags: - Application responses: '200': content: application/json: schema: $ref: '#/components/schemas/Response' description: '' deprecated: false operationId: UpdateApplicationSettings summary: Update-Application-Settings 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. callbacks: incomingWebhook: '{$request.body#/webhooks.url}': post: requestBody: content: application/json: schema: $ref: '#/components/schemas/Webhook-Event' responses: 200: description: OK /account/shards: post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Set-Shards-Request-Body' example: cc: phone_number: shards: 32 pin: required: true tags: - Application responses: '200': description: '' deprecated: false operationId: SetShards summary: Set-Shards /settings/application/media/providers: get: tags: - Application responses: '200': content: application/json: schema: $ref: '#/components/schemas/Get-Media-Providers-Response' description: '' deprecated: false operationId: GetMediaProviders summary: Get-Media-Providers post: requestBody: description: '' content: application/json: schema: description: '' type: array items: $ref: '#/components/schemas/Media-Provider' example: - name: type: www config: bearer: required: true tags: - Application responses: '200': description: '' deprecated: false operationId: UpdateMediaProviders summary: Update-Media-Providers '/settings/application/media/providers/{ProviderName}': delete: tags: - Application parameters: - name: ProviderName description: Provider Name schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: DeleteMediaProviders summary: Delete-Media-Providers /settings/backup: post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Backup-Settings-Request-Body' example: password: required: true tags: - Backup/Restore responses: '200': content: application/json: schema: $ref: '#/components/schemas/Backup-Settings-Response' description: '' deprecated: false operationId: BackupSettings summary: Backup-Settings /settings/restore: post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Restore-Settings-Request-Body' example: password: data: '' required: true tags: - Backup/Restore responses: '200': description: '' deprecated: false operationId: RestoreSettings summary: Restore-Settings /settings/business/profile: get: tags: - Business Profile responses: '200': content: application/json: schema: $ref: '#/components/schemas/Get-Business-Profile-Response' description: '' deprecated: false operationId: GetBusinessProfile summary: Get-Business-Profile post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Business-Profile' example: address: description: email: vertical: websites: - 'https://www.whatsapp.com' - 'https://www.facebook.com' required: true tags: - Business Profile responses: '200': description: '' deprecated: false operationId: updateBusinessProfile summary: Update-Business-Profile /settings/profile/about: get: tags: - Profile responses: '200': content: application/json: schema: $ref: '#/components/schemas/Get-Profile-About-Response' description: '' deprecated: false operationId: GetProfileAbout summary: Get-Profile-About patch: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Profile-About' example: text: required: true tags: - Profile responses: '200': description: '' deprecated: false operationId: UpdateProfileAbout summary: Update-Profile-About /settings/account/two-step: post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Enable-Two-Step-Request-Body' example: pin: required: true tags: - Two-Step Verification responses: '200': description: '' deprecated: false operationId: EnableTwoStep summary: Enable-Two-Step delete: tags: - Two-Step Verification responses: '200': description: '' deprecated: false operationId: DisableTwoStep summary: Disable-Two-Step /account/verify: post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Register-Account-Request-Body' example: code: required: true tags: - Registration responses: '200': description: '' deprecated: false operationId: RegisterAccount summary: Register-Account /contacts: post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Check-Contact-Request-Body' example: blocking: wait contacts: - '{{Recipient-WA-ID}}' required: true tags: - Contacts responses: '200': content: application/json: schema: $ref: '#/components/schemas/Check-Contact-Response' description: '' deprecated: false operationId: CheckContact summary: Check-Contact /messages: post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Send-Message-Request-Body' example: to: '{{Recipient-WA-ID}}' type: text recipient_type: individual text: body: required: true tags: - Messages responses: '200': content: application/json: schema: $ref: '#/components/schemas/Message-Response' description: '' deprecated: false operationId: SendMessage summary: Send-Message '/messages/{MessageID}': put: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Mark-Message-As-Read-Request-Body' example: status: read required: true tags: - Messages parameters: - name: MessageID description: Message ID from Webhook schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: MarkMessageAsRead summary: Mark-Message-As-Read /groups: get: tags: - Groups responses: '200': content: application/json: schema: $ref: '#/components/schemas/Groups-Response' description: '' deprecated: false operationId: GetAllGroups summary: Get-All-Groups post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Create-Group-Request-Body' example: subject: required: true tags: - Groups responses: '200': content: application/json: schema: $ref: '#/components/schemas/Groups-Response' description: '' deprecated: false operationId: CreateGroup summary: Create-Group '/groups/{GroupId}': get: tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Group-Response' description: '' deprecated: false operationId: GetGroupInfo summary: Get-Group-Info put: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Update-Group-Info-Request-Body' example: subject: required: true tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: UpdateGroupInfo summary: Update-Group-Info '/groups/{GroupId}/invite': get: tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Group-Invite-Response' description: '' deprecated: false operationId: GetGroupInvite summary: Get-Group-Invite delete: tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: DeleteGroupInvite summary: Delete-Group-Invite '/groups/{GroupId}/participants': delete: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Remove-Group-Participant-Request-Body' example: wa_ids: - '{{Recipient-WA-ID}}' required: true tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: RemoveGroupParticipant summary: Remove-Group-Participant '/groups/{GroupId}/leave': post: tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: LeaveGroup summary: Leave-Group '/groups/{GroupId}/icon': get: tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: GetGroupIconBinary summary: Get-Group-Icon-Binary post: requestBody: content: multipart/form-data: schema: required: - File type: object properties: File: format: binary type: string required: false tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: SetGroupIcon summary: Set-Group-Icon delete: requestBody: content: multipart/form-data: schema: required: - File type: object properties: File: format: binary type: string required: false tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: DeleteGroupIcon summary: Delete-Group-Icon '/groups/{GroupId}/admins': delete: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Group-Admin-Request-Body' example: wa_ids: - '' required: true tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: DemoteGroupAdmin summary: Demote-Group-Admin patch: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Group-Admin-Request-Body' example: wa_ids: - '' required: true tags: - Groups parameters: - style: simple explode: false name: GroupId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: PromoteToGroupAdmin summary: Promote-To-Group-Admin /health: get: tags: - Health responses: '200': description: '' deprecated: false operationId: CheckHealth summary: Check-Health /settings/profile/photo: get: tags: - Profile parameters: - example: link name: format description: '' schema: type: string in: query responses: '200': content: application/json: schema: $ref: '#/components/schemas/Get-Profile-Photo-Response' image/jpeg: schema: format: binary type: string description: '' deprecated: false operationId: GetProfilePhoto summary: Get-Profile-Photo post: requestBody: content: multipart/form-data: schema: required: - File type: object properties: File: format: binary type: string required: false tags: - Profile responses: '200': description: '' deprecated: false operationId: UpdateProfilePhoto summary: Update-Profile-Photo delete: responses: '200': description: '' operationId: DeleteProfilePhoto summary: Delete-Profile-Photo /account: post: requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/Request-Code-Request-Body' example: cc: phone_number: method: sms cert: pin: - 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. deprecated: false operationId: RequestCode summary: Request-Code /media: post: requestBody: content: application/pdf: schema: format: binary type: string application/msword: schema: format: binary type: string application/vnd.ms-powerpoint: schema: format: binary type: string application/vnd.ms-excel: schema: format: binary type: string text/plain: schema: format: binary type: string image/jpeg: schema: format: binary type: string image/png: schema: format: binary type: string audio/acc: schema: format: binary type: string audio/mp4: schema: format: binary type: string audio/amr: 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 video/mp4: schema: format: binary type: string required: true tags: - Media responses: '200': content: application/json: schema: $ref: '#/components/schemas/Upload-Media-Response' description: '' deprecated: false operationId: UploadMedia summary: Upload-Media '/media/{MediaId}': get: tags: - Media parameters: - style: simple explode: false name: MediaId description: '' schema: type: string in: path required: true responses: '200': content: application/json: {} description: '' deprecated: false operationId: DownloadMedia summary: Download-Media delete: tags: - Media parameters: - style: simple explode: false name: MediaId description: '' schema: type: string in: path required: true responses: '200': description: '' deprecated: false operationId: DeleteMedia summary: Delete-Media /stats/app: get: tags: - Health parameters: - example: prometheus name: format description: '' schema: type: string in: query responses: '200': content: application/json: schema: type: object text/plain: schema: type: string description: '' deprecated: false operationId: GetAppStats summary: Get-App-Stats /stats/db: get: tags: - Health parameters: - example: prometheus name: format description: '' schema: type: string in: query responses: '200': content: application/json: schema: type: object text/plain: schema: type: string description: '' deprecated: false operationId: GetDbStats summary: Get-DB-Stats /metrics: get: tags: - Health parameters: - example: prometheus name: format description: '' schema: type: string in: query responses: '200': content: application/json: schema: type: object text/plain: schema: type: string description: '' deprecated: false operationId: GetMetrics summary: Get-Metrics (since v2.21.3) /support: get: tags: - Health responses: '200': content: application/json: schema: type: object description: '' deprecated: false operationId: GetSupportInfo summary: Get-Support-Info /certificates/external/ca: get: tags: - Certificates responses: '200': content: text/plain: schema: format: binary type: string description: '' deprecated: false operationId: DownloadCaCertificate summary: Download-CA-Certificate /certificates/external: post: requestBody: content: text/plain: schema: format: binary type: string tags: - Certificates responses: '200': description: '' deprecated: false operationId: UploadCertificate summary: Upload-Certificate /certificates/webhooks/ca: get: tags: - Certificates responses: '200': content: text/plain: schema: format: binary type: string description: '' deprecated: false operationId: DownloadWebhookCaCertificate summary: Download Webhook CA Certificate post: requestBody: content: text/plain: schema: format: binary type: string required: false tags: - Certificates responses: '200': description: '' deprecated: false operationId: UploadWebhookCaCertificate summary: Upload Webhook CA Certificate delete: tags: - Certificates responses: '200': description: '' deprecated: false operationId: DeleteWebhookCaCertificate summary: Delete Webhook CA Certificate components: schemas: Login-Admin-Request-Body: title: Login-Admin-Request required: - new_password type: object properties: new_password: type: string example: new_password: Create-User-Request-Body: title: Create-User-Request required: - username - password type: object properties: username: description: password type: string password: description: username type: string example: username: username password: password Update-User-Request-Body: title: Update-User-Request required: - password type: object properties: password: description: password type: string example: password: New Password Set-Shards-Request-Body: title: Set-Shards-Request required: - cc - phone_number - shards - pin type: object properties: cc: type: string phone_number: type: string shards: format: int32 enum: - '1' - '2' - '4' - '8' - '16' - '32' type: integer pin: type: string example: cc: phone_number: shards: 32 pin: Config: oneOf: - $ref: '#/components/schemas/Config-Bearer' - $ref: '#/components/schemas/Config-Basic' title: Config Config-Bearer: title: Config required: - bearer type: object properties: bearer: type: string example: bearer: Config-Basic: title: Config type: object properties: basic: $ref: '#/components/schemas/Basic' example: basic: username: your-username password: your-password Backup-Settings-Request-Body: title: Backup-Settings-Request required: - password type: object properties: password: description: Used to encrypt backup data for security type: string example: password: Enable-Two-Step-Request-Body: title: Enable-Two-Step-Request required: - pin type: object properties: pin: type: string example: pin: your-6-digit-pin Request-Code-Request-Body: title: Request-Code-Request required: - cc - phone_number - method - cert type: object properties: cc: description: Numerical country code for the phone number you are registering type: string phone_number: description: 'Phone number you are registering, without the country code or plus symbol (+)' type: string method: description: Method of receiving your registration code enum: - sms - voice type: string cert: description: Base64-encoded Verified Name certificate type: string pin: description: >- Existing 6-digit PIN — This is only required when two-factor verification is enabled on this account. type: string example: cc: phone_number: method: < sms | voice > cert: pin: Image: oneOf: - $ref: '#/components/schemas/ImageById' - $ref: '#/components/schemas/ImageByProvider' title: Image description: The media object containing an image type: object ImageById: title: ImageById required: - caption - id type: object properties: caption: type: string id: type: string example: caption: id: '' ImageByProvider: title: ImageByProvider required: - provider - link - caption type: object properties: provider: $ref: '#/components/schemas/Provider' link: type: string caption: type: string example: provider: name: '' caption: Audio: oneOf: - $ref: '#/components/schemas/AudioById' - $ref: '#/components/schemas/AudioByProvider' title: Audio description: The media object containing audio type: object AudioById: title: AudioById required: - id type: object properties: id: type: string example: id: '' AudioByProvider: title: AudioByProvider required: - provider - link type: object properties: provider: $ref: '#/components/schemas/Provider' link: type: string example: provider: name: '' Video: oneOf: - $ref: '#/components/schemas/VideoById' - $ref: '#/components/schemas/VideoByProvider' title: Video description: The media object containing a video type: object VideoById: title: VideoById required: - caption - id type: object properties: caption: type: string id: type: string example: caption: id: '' VideoByProvider: title: ByProvider required: - provider - caption - link type: object properties: provider: $ref: '#/components/schemas/Provider' caption: type: string link: type: string example: provider: name: ' link: '' Document: oneOf: - $ref: '#/components/schemas/DocumentById' - $ref: '#/components/schemas/DocumentByProvider' title: Document description: The media object containing a document type: object DocumentById: title: Document required: - caption - id - filename type: object properties: caption: type: string id: type: string filename: type: string example: caption: id: '' filename: DocumentByProvider: title: Document1 required: - provider - caption - link - filename type: object properties: provider: $ref: '#/components/schemas/Provider' caption: type: string link: type: string filename: type: string example: provider: name: ' link: '' filename: Provider: title: Provider required: - name type: object properties: name: type: string example: name: '- The containing element for the message content — Indicates that the message is highly structured. Parameters contained within provide the structure. required: - namespace - element_name - language - localizable_params type: object properties: namespace: description: The namespace that will be used type: string 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 type: array items: $ref: '#/components/schemas/LocalizableParam' example: namespace: business_a_namespace element_name: hello_world language: policy: deterministic code: en localizable_params: - default: '1234' Contact: title: Contact type: object properties: addresses: description: Full contact address(es) type: array items: $ref: '#/components/schemas/Address' birthday: description: YYYY-MM-DD formatted string type: string emails: description: Contact email address(es) type: array items: $ref: '#/components/schemas/Email' ims: description: '' type: array items: type: string name: $ref: '#/components/schemas/Name' org: $ref: '#/components/schemas/Org' phones: description: Contact phone number(s) type: array items: $ref: '#/components/schemas/Phone' urls: description: Contact URL(s) type: array items: $ref: '#/components/schemas/Url' 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: - url: 'https://www.facebook.com' type: WORK Address: title: Address required: - city - country - country_code - state - street - type - zip type: object 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 example: city: Menlo Park country: United States country_code: us state: CA street: 1 Hacker Way type: HOME zip: '94025' Email: title: Email required: - email - type type: object properties: email: type: string type: type: string example: email: type: Name: title: Name description: Full contact name required: - formatted_name type: object 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 suffix: description: Name suffix type: string prefix: description: Name preffix type: string example: first_name: John formatted_name: John Smith last_name: Smith Org: title: Org description: Contact organization information required: - company type: object 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 example: company: WhatsApp department: Design title: Manager Location: title: Location required: - longitude - latitude - name - address type: object properties: longitude: description: Longitude of the location type: string latitude: description: Latitude of the location type: string name: description: Name of the location type: string address: description: Address of the location. Only displayed if name is present. type: string example: longitude: latitude: name: address: Create-Group-Request-Body: title: Create-Group-Request required: - subject type: object properties: subject: type: string example: subject: Update-Group-Info-Request-Body: title: Update-Group-Info-Request required: - subject type: object properties: subject: type: string example: subject: Remove-Group-Participant-Request-Body: title: Remove-Group-Participant-Request required: - wa_ids type: object properties: wa_ids: description: '' type: array items: type: string example: wa_ids: - '{{Recipient-WA-ID}}' User-Login-Response: title: UserLoginResponse description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: users: type: array items: $ref: '#/components/schemas/User-Login-Response-Item' example: users: - token: eyJhbGciOHlXVCJ9.eyJ1c2VyIjoNTIzMDE2Nn0.mEoF0COaO00Z1cANo expires_after: '2018-03-01 15:29:26+00:00' User-Login-Response-Item: title: UserLoginResponseItem description: '' type: object properties: 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 type: string expires_after: format: date-time description: 'Token expiration timestamp. By default, this is 7 days.' type: string example: token: eyJhbGciOHlXVCJ9.eyJ1c2VyIjoNTIzMDE2Nn0.mEoF0COaO00Z1cANo expires_after: '2018-03-01 15:29:26+00:00' Groups-Response: title: GroupsResponse description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: groups: type: array items: $ref: '#/components/schemas/Group' example: groups: - creation_time: 123456789 id: your-group-id Group-Response: title: Group-Response description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: groups: type: array items: $ref: '#/components/schemas/Group-Info' 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 Group-Info: title: Group-Response-Item description: '' type: object properties: admins: description: |- Group administrators Lists IDs of the creator of the group and any administrators added type: array items: type: string creation_time: format: int32 description: Group creation time 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. type: array items: type: string subject: description: Subject of the group type: string 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 Group: title: Groups-Response-Item description: '' type: object properties: creation_time: format: int32 description: timestamp type: integer id: type: string example: creation_time: 123456789 id: your-group-id Group-Invite-Response: title: Group-Invite-Response description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: groups: type: array items: $ref: '#/components/schemas/Group-Invite' example: groups: - link: group-invite-link Group-Invite: title: Group-Invite description: '' type: object properties: link: type: string example: link: group-invite-link Group-Admin-Request-Body: title: Group-Admin-Request required: - wa_ids type: object properties: wa_ids: description: The WhatsApp IDs of the people to be added or removed as group admins type: array items: type: string example: wa_ids: - '' Check-Contact-Request-Body: title: Check-Contact-Request required: - contacts type: object properties: blocking: description: >- Blocking determines whether the request should wait for the processing to complete (synchronous) or not (asynchronous). default: no_wait enum: - no_wait - wait type: string contacts: description: >- Array of contact phone numbers. The numbers can be in any standard telephone number format. type: array items: type: string example: blocking: wait contacts: - '{{Recipient-WA-ID}}' Check-Contact-Response: title: Check-Contact-Response description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: contacts: type: array items: $ref: '#/components/schemas/Check-Contact' 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' Check-Contact: title: Check-Contact description: '' type: object 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 example: input: +1 (516) 283-7151 status: valid wa_id: '15162837151' Send-Message-Request-Body: title: Send-Text-Message-Request required: - to type: object properties: 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 type: $ref: '#/components/schemas/Message-Type' recipient_type: 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. default: individual enum: - individual - group type: string text: $ref: '#/components/schemas/Text' audio: $ref: '#/components/schemas/Audio' image: $ref: '#/components/schemas/Image' document: $ref: '#/components/schemas/Document' video: $ref: '#/components/schemas/Video' hsm: $ref: '#/components/schemas/Hsm' ttl: type: object contacts: description: '' type: array items: $ref: '#/components/schemas/Contact' 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 example: preview_url: true recipient_type: individual to: '{whatsapp-id}' type: text text: body: your-text-message-content Language: title: Language required: - policy - code type: object properties: policy: description: The language policy the message should follow enum: - fallback - deterministic type: string 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 example: policy: deterministic code: en Currency: title: Currency description: '' required: - amount_1000 - currency_code type: object properties: currency_code: type: string amount_1000: format: int32 type: integer example: currency_code: USD amount_1000: 100990 Date-Time-Object: title: Date-Time description: >- The Whatsapp Business API Client will attempt to format the date/time based on a specified localization. type: object properties: component: $ref: '#/components/schemas/Date-Time-Component' unix_epoch: $ref: '#/components/schemas/Date-Time-Unix-Epoch' example: component: day_of_week: 5 day_of_month: 25 year: 1977 month: 2 hour: 15 minute: 33 Date-Time-Unix-Epoch: title: Date-Time-Unix-Epoch description: Date/time by Unix epoch type: object properties: timestamp: format: int32 description: Epoch timestamp in seconds type: integer example: timestamp: 123456789 Date-Time-Component: title: Date-Time-Component description: Date/time by component type: object properties: day_of_week: format: int32 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' type: integer x-enum-descriptions: - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday - Sunday x-enum-varnames: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY day_of_month: format: int32 description: The day of month type: integer year: format: int32 description: The year type: integer month: format: int32 description: The month type: integer hour: format: int32 description: The hour type: integer minute: format: int32 description: The minute type: integer example: day_of_week: 5 day_of_month: 25 year: 1977 month: 2 hour: 15 minute: 33 LocalizableParam: title: LocalizableParam required: - default type: object properties: default: description: Default text if localization fails type: string currency: $ref: '#/components/schemas/Currency' date_time: $ref: '#/components/schemas/Date-Time-Object' example: default: Message-Response: title: Message-Response description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: messages: type: array items: $ref: '#/components/schemas/Message' example: messages: - id: gBEGkYiEB1VXAglK1ZEqA1YKPrU Message: title: Message description: '' type: object properties: id: type: string example: id: gBEGkYiEB1VXAglK1ZEqA1YKPrU Error: title: Error description: '' type: object properties: code: format: int32 description: 'See the https://developers.facebook.com/docs/whatsapp/api/errors for more information.' type: integer title: description: error title type: string details: description: error detail type: string href: description: location for error detail type: string example: code: 1234 title: error-code-title details: optional-detailed-error-message Meta: title: Meta description: Contains generic information such as WhatsApp Business API Client version. type: object properties: version: type: string api_status: enum: - deprecated - experimental - stable type: string example: version: whatsapp-business-api-client-version api_status: stable Response: title: Response description: '' type: object properties: meta: $ref: '#/components/schemas/Meta' errors: description: >- Only returned with a failed request. Contains an array of error objects that are present when there is an error. type: array items: $ref: '#/components/schemas/Error' example: meta: version: whatsapp-business-api-client-version api_status: deprecated errors: - code: 1234 title: error-code-title details: optional-detailed-error-message Phone: title: Phone type: object properties: phone: type: string type: description: 'Standard Values: CELL, MAIN, IPHONE, HOME, WORK' type: string wa_id: description: WhatsApp ID type: string example: phone: +1 (650) 555-1234 type: WORK wa_id: '16505551234' Url: title: Root Type for Url description: 'Standard Values: HOME, WORK' type: object properties: url: description: URL type: string type: description: 'Standard Values: HOME, WORK' type: string example: url: 'https://www.facebook.com' type: WORK User-Response: title: Root Type for User-Create-Response description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: users: type: array items: $ref: '#/components/schemas/User-Response-Item' example: users: - username: username User-Response-Item: title: Root Type for User-Create-Response-Item description: '' type: object properties: username: type: string example: username: username Detailed-User-Response-Item: title: Root Type for Detailed-Response-Item description: '' type: object properties: ROLES: $ref: '#/components/schemas/User-Role' username: type: string example: ROLES: ROLE_USER username: username Detailed-User-Response: title: Root Type for Detailed-User-Response description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: users: type: array items: $ref: '#/components/schemas/Detailed-User-Response-Item' example: users: - ROLES: ROLE_USER username: username User-Role: description: '' enum: - ROLE_ADMIN - ROLE_USER type: string Media: title: Media required: - auto_download type: object properties: auto_download: description: An array specifying which types of media to automatically download. type: array items: enum: - audio - document - voice - video - image. type: string example: auto_download: - image - document - audio Webhooks: title: Webhooks type: object properties: url: description: >- Inbound and outbound notifications are routed to this URL. A HTTPS-based endpoint is required; HTTP will not work. type: string max_concurrent_requests: format: int32 description: >- Configures the maximum number of inflight callback requests that are sent out. Can be set to 6 (default), 12, 18, or 24. default: 6 enum: - '6' - '12' - '18' - '24' type: integer example: url: '' max_concurrent_requests: 12 Application-Settings: title: Update-Application-Settings-Request-Body type: object properties: callback_backoff_delay_ms: 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. default: '3000' type: string max_callback_backoff_delay_ms: description: Maximum delay for a failed callback in milliseconds default: '900000' type: string callback_persist: description: >- Stores callbacks on disk until they are successfully acknowledged by the Webhook or not. Restart required. default: true type: boolean media: $ref: '#/components/schemas/Media' webhooks: $ref: '#/components/schemas/Webhooks' 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: 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. default: true type: boolean sent_status: 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. default: false type: boolean unhealthy_interval: 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. default: 30 type: integer heartbeat_interval: description: 'Multiconnect: Interval of the Master node monitoring of Coreapp nodes in seconds' default: 5 type: integer example: callback_backoff_delay_ms: 3000 max_callback_backoff_delay_ms: 900000 callback_persist: true media: auto_download: - image - document - audio webhooks: url: '' max_concurrent_requests: 12 on_call_pager: pass_through: false sent_status: false Basic: title: Root Type for Basic description: '' type: object properties: username: type: string password: type: string example: username: your-username password: your-password Media-Provider: title: Update-Media-Providers-Request type: object properties: name: description: The name for the provider type: string type: description: The type of provider type: string config: $ref: '#/components/schemas/Config' example: name: type: www config: bearer: Media-Provider-Settings: title: Root Type for Settings description: '' type: object properties: application: $ref: '#/components/schemas/Media-Provider-Settings-Application' example: application: media: providers: - name: your-first-provider type: www config: basic: username: your-username password: your-password - name: your-second-provider type: www config: bearer: your-bearer-token Media-Provider-Settings-Application: title: Root Type for Settings-Application description: '' type: object properties: media: $ref: '#/components/schemas/Media-Provider-Settings-Application-Media' example: media: providers: - name: your-first-provider type: www config: basic: username: your-username password: your-password - name: your-second-provider type: www config: bearer: your-bearer-token Media-Provider-Settings-Application-Media: title: Root Type for Settings-Application-Media description: '' type: object properties: providers: type: array items: $ref: '#/components/schemas/Media-Provider' example: providers: - name: your-first-provider type: www config: basic: username: your-username password: your-password - name: your-second-provider type: www config: bearer: your-bearer-token Get-Media-Providers-Response: title: Root Type for Get-Media-Providers-Response description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: settings: $ref: '#/components/schemas/Media-Provider-Settings' example: settings: application: media: providers: - name: your-first-provider type: www config: basic: username: your-username password: your-password - name: your-second-provider type: www config: bearer: your-bearer-token Backup-Settings-Response: title: Root Type for Backup-Settings-Response description: Save the data value as that will be used along with your password to restore the information. type: object properties: settings: $ref: '#/components/schemas/Backup-Settings' example: settings: data: encrypted-backup-data Backup-Settings: title: Root Type for Backup-Settings description: '' type: object properties: data: description: 'The data that has been backed up, encrypted for security.' type: string example: data: encrypted-backup-data Restore-Settings-Request-Body: title: Restore-Settings-Request required: - password - data type: object properties: password: description: The password you used in the /v1/settings/backup API call to encrypt the backup data type: string data: description: The data that was returned by the /v1/settings/backup API call type: string example: password: data: '' Business-Profile: title: Set-Business-Profile-Request required: - address - description - email - vertical - websites type: object 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 type: array items: type: string example: address: description: email: vertical: websites: - 'https://www.whatsapp.com' - 'https://www.facebook.com' Get-Business-Profile-Response: title: Root Type for Get-Business-Profile-Response description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: settings: $ref: '#/components/schemas/Business-Settings' example: settings: business: profile: address: new-business-address description: business-description email: new-business-email vertical: business-industry websites: - website-1 - website-2 Business-Settings: title: Root Type for Business-Settings description: '' type: object properties: business: $ref: '#/components/schemas/Business-Settings-Business' example: business: profile: address: new-business-address description: business-description email: new-business-email vertical: business-industry websites: - website-1 - website-2 Business-Settings-Business: title: Root Type for Business-Settings-Business description: '' type: object properties: profile: $ref: '#/components/schemas/Business-Profile' example: profile: address: new-business-address description: business-description email: new-business-email vertical: business-industry websites: - website-1 - website-2 Profile-About: title: Set-Profile-About-Request required: - text type: object properties: text: description: |- Text to display in your profile's About section The max length for the string is 139 characters. type: string example: text: Get-Profile-About-Response: title: Root Type for Get-Profile-About-Response description: '' type: object properties: settings: $ref: '#/components/schemas/Profile-About-Settings' example: settings: profile: about: text: your-profile-about-text Profile-About-Settings: title: Root Type for Profile-About-Settings description: '' type: object properties: profile: $ref: '#/components/schemas/Profile-About-Settings-Profile' example: profile: about: text: your-profile-about-text Profile-About-Settings-Profile: title: Root Type for About-XXX description: '' type: object properties: about: $ref: '#/components/schemas/Profile-About' example: about: text: your-profile-about-text Profile-Photo-Settings: title: Root Type for Profile-Photo-Settings description: '' type: object properties: profile: type: object properties: photo: type: object properties: link: type: string example: profile: photo: link: profile-photo-url Get-Profile-Photo-Response: title: Root Type for Get-Profile-Photo-Response description: '' type: object properties: settings: $ref: '#/components/schemas/Profile-Photo-Settings' example: settings: profile: photo: link: profile-photo-url Profile-Photo-Settings-Profile-Photo: title: Root Type for Profile-Photo-Settings-Profile-Photo description: '' type: object properties: link: type: string example: link: profile-photo-url Profile-Photo-Settings-Profile: title: Root Type for Profile-Photo-Settings-Profile description: '' type: object properties: photo: $ref: '#/components/schemas/Profile-Photo-Settings-Profile-Photo' example: photo: link: profile-photo-url Request-Code-Response: title: Root Type for Request-Code-Response description: '' type: object properties: account: type: array items: $ref: '#/components/schemas/Request-Code-Account' example: account: - vname: decoded-vname-from-cert Request-Code-Account: title: Root Type for Request-Code-Account description: '' type: object properties: vname: type: string example: vname: decoded-vname-from-cert Mark-Message-As-Read-Request-Body: title: Mark-Message-As-Read-Request required: - status type: object properties: status: default: read type: string example: status: read Upload-Media: title: Root Type for Upload-Media description: '' type: object properties: id: type: string example: id: f043afd0-f0ae-4b9c-ab3d-696fb4c8cd68 Upload-Media-Response: title: Root Type for Upload-Media-Response description: '' type: object allOf: - $ref: '#/components/schemas/Response' - type: object properties: media: type: array items: $ref: '#/components/schemas/Upload-Media' example: media: - id: f043afd0-f0ae-4b9c-ab3d-696fb4c8cd68 Gateway-Status: description: '' enum: - connected - connecting - disconnected - uninitialized - unregistered type: string Gateway-Node-Status: title: Root Type for Gateway-Node-Status description: '' type: object properties: gateway_status: type: string role: enum: - primary_master - secondary_master - coreapp type: string example: gateway_status: connected role: coreapp Check-Health-Response: title: Root Type for Check-Health-Response description: '' type: object properties: health: oneOf: - $ref: '#/components/schemas/Gateway-Status' - type: object additionalProperties: $ref: '#/components/schemas/Gateway-Node-Status' example: health: 'your-hostname1:your-container-id1': gateway_status: connected role: primary_master 'your-hostname2:your-container-id2': gateway_status: disconnected role: secondary_master Webhook-Contact-Profile: title: Root Type for Webhook-Contact-Profile description: '' type: object properties: name: description: 'Optional. As of v2.21.4, contains the sender''s profile name.' type: string example: name: sender-profile-name Webhook-Contact: title: Root Type for Webhook-Contact description: '' type: object properties: profile: $ref: '#/components/schemas/Webhook-Contact-Profile' wa_id: description: The WhatsApp ID of the contact type: string example: profile: name: Kerry Fisher wa_id: '16315551234' Webhook-Event: title: Root Type for Webhook-Event description: '' type: object properties: contacts: type: array items: $ref: '#/components/schemas/Webhook-Contact' messages: type: array items: $ref: '#/components/schemas/Webhook-Message' statuses: type: array items: $ref: '#/components/schemas/Webhook-Status' errors: type: array items: $ref: '#/components/schemas/Error' example: contacts: - profile: name: Kerry Fisher wa_id: '16315551234' messages: - from: '16315551234' id: ABGGFlA5FpafAgo6tHcNmNjXmuSf timestamp: '1518694235' text: body: Hello this is an answer type: text Message-Context: title: Root Type for Message-Context description: '' type: object 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 type: array items: type: string 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 Webhook-Text: title: Root Type for Webhook-Text description: '' type: object properties: body: description: Message text type: string example: body: text-message-content Webhook-Message: title: Root Type for Webhook-Message description: '' type: object properties: context: $ref: '#/components/schemas/Message-Context' from: description: WhatsApp ID of the sender type: string group_id: description: Optional. WhatsApp group ID type: string id: description: Message ID type: string timestamp: description: Message received timestamp type: string type: $ref: '#/components/schemas/Message-Type' errors: type: array items: $ref: '#/components/schemas/Error' audio: $ref: '#/components/schemas/Webhook-Audio' contacts: type: array items: $ref: '#/components/schemas/Contact' document: $ref: '#/components/schemas/Webhook-Document' image: $ref: '#/components/schemas/Webhook-Image' location: $ref: '#/components/schemas/Webhook-Location' system: $ref: '#/components/schemas/Webhook-System' text: $ref: '#/components/schemas/Webhook-Text' video: $ref: '#/components/schemas/Webhook-Video' voice: $ref: '#/components/schemas/Webhook-Voice' example: from: '16315551234' id: ABGGFlA5FpafAgo6tHcNmNjXmuSf timestamp: '1518694235' text: body: Hello this is an answer type: text Webhook-Location: title: Root Type for Webhook-Location description: '' type: object properties: address: description: Address of the location type: string latitude: format: double description: Latitude of location being sent type: number longitude: format: double description: Longitude of location being sent 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 example: address: 'Main Street Beach, Santa Cruz, CA' latitude: 38.9806263495 longitude: -131.9428612257 name: Main Street Beach url: 'https://foursquare.com/v/4d7031d35b5df7744' Message-Type: description: type of the message default: text enum: - audio - contacts - document - hsm - image - location - text - video - voice - unknown type: string Webhook-Image: title: Root Type for Webhook-Image description: '' type: object properties: 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 caption: description: Optional. Only present if specified. type: string example: file: /usr/local/wamedia/shared/b1cf38-8734-4ad3-b4a1-ef0c10d0d683 id: b1c68f38-8734-4ad3-b4a1-ef0c10d683 mime_type: image/jpeg sha256: 29ed500fa64eb55fc19dc4124acb300e5dcc54a0f822a301ae99944db caption: Check out my new phone! Webhook-Audio: title: Root Type for Webhook-Audio description: '' type: object properties: 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 caption: description: Optional. Only present if specified. type: string example: file: absolute-filepath-on-coreapp id: media-id link: link-to-audio-file mime_type: media-mime-type sha256: checksum Webhook-Document: title: Root Type for Webhook-Document description: '' type: object properties: 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 caption: description: Optional. Only present if specified. type: string 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 Webhook-Video: title: Root Type for Webhook-Video description: '' type: object properties: 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 caption: description: Optional. Only present if specified. type: string example: file: absolute-filepath-on-coreapp id: media-id link: link-to-video-file mime_type: media-mime-type sha256: checksum Webhook-Voice: title: Root Type for Webhook-Voice description: '' type: object properties: 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 caption: description: Optional. Only present if specified. type: string example: file: /usr/local/wamedia/shared/463e/b7ec/ff4e4d9bb1101879cbd411b2 id: 463eb7ec-ff4e-4d9b-b110-1879cbd411b2 mime_type: audio/ogg; codecs=opus sha256: fa9e1807d936b7cebe63654ea3a7912b1fa9479220258d823590521ef53b0710 Webhook-System: title: Root Type for Webhook-System description: '' type: object 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 example: body: +1 (650) 387-5246 added +1 (650) 644-8470 group_id: 16315558032-1530825318 operator: '16503875246' type: group_user_joined users: - '16506448470' Webhook-Status: title: Root Type for Webhook-Status description: '' type: object properties: errors: type: array items: $ref: '#/components/schemas/Error' 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 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' securitySchemes: httpBasic: scheme: basic type: http bearerAuth: scheme: bearer bearerFormat: token type: http 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