openapi: 3.1.0 info: title: Meta Graph API - Application Connected Client Businesses version: v23.0 description: 'API for retrieving connected client businesses associated with a Meta application. This endpoint allows applications to retrieve information about businesses that have established client connections through the application. This is essential for managing business relationships and understanding client business configurations. ' contact: name: Meta Business Platform Team url: https://developers.facebook.com/support license: name: Meta Platform Terms url: https://developers.facebook.com/terms termsOfService: https://developers.facebook.com/terms servers: - url: https://graph.facebook.com description: Production Graph API server - url: https://graph.facebook.com - url: https://graph.facebook.com description: WhatsApp Business Cloud API - url: https://graph.facebook.com description: Meta Graph API production server tags: - name: Application Business Connections description: APIs for managing application connected client business relationships - name: Multi-Partner Solutions description: 'APIs for managing Multi-Partner Solutions that enable collaborative WhatsApp Business messaging between solution owners and partner applications. ' - name: WhatsApp Business API description: 'WhatsApp Business Platform APIs for messaging, account management, and partner integrations. ' - name: Business Phone Numbers description: APIs for managing phone numbers in WhatsApp Business Accounts - name: Pre-Verified Phone Numbers description: APIs for managing pre-verified phone numbers for WhatsApp Business messaging - name: Client WhatsApp Business Accounts description: APIs for managing client WhatsApp Business Account relationships - name: MM Lite Onboarding description: APIs for managing Multi-Partner MM Lite onboarding requests and business agreements - name: Owned WhatsApp Business Accounts description: APIs for retrieving WhatsApp Business Accounts owned by a business - name: Pre-Verified Phone Number Sharing description: APIs for sharing pre-verified phone numbers between business entities - name: Call Permissions description: 'Use the **`/{Phone-Number-ID}/call_permissions`** endpoint to check whether you have permission to call a specific WhatsApp user and understand what calling-related actions are available. ## Prerequisites * [User Access Token](https://developers.facebook.com/docs/facebook-login/access-tokens#usertokens) with **`whatsapp_business_messaging`** permission * `phone-number-id` for your registered WhatsApp Business Account * WhatsApp Cloud API Calling must be enabled for your phone number ## Permission Status Types - **granted**: You have active permission to call this user - **pending**: A permission request has been sent but not yet approved by the user - **denied**: The user has denied call permissions for your business - **expired**: Previous permission has expired and needs to be renewed ## Available Actions - **start_call**: Initiate a new call to this user (available when permission is granted) - **send_call_permission_request**: Send a permission request to this user (available when permission is denied or expired) ## Rate Limiting This endpoint has specific rate limits to prevent abuse. Exceeding the rate limit will result in error code 4 with subcode 2390008. ## Error Handling - **403 Forbidden**: Calling is not enabled for your phone number - **429 Too Many Requests**: Rate limit exceeded for permission checks - **400 Bad Request**: Missing or invalid `user_wa_id` parameter ' - name: Calls description: 'Use the **`/{Phone-Number-ID}/calls`** endpoint to initiate, manage, and terminate WhatsApp calls. This API allows businesses to handle voice calling functionality through the WhatsApp Business Platform. ## Prerequisites * [User Access Token](https://developers.facebook.com/docs/facebook-login/access-tokens#usertokens) with **`whatsapp_business_messaging`** permission * `phone-number-id` for your registered WhatsApp account * Call request permission from the WhatsApp user ## Call Actions - **connect**: Initiate a new call - **pre_accept**: Pre-accept a call (prepare for accepting) - **accept**: Accept an incoming call - **reject**: Reject an incoming call - **terminate**: Terminate an active call ## Session Description Protocol (SDP) For actions that require audio/video negotiation (connect, accept), you must provide session information including: - `sdp_type`: Must be "offer" for connect action, "answer" for accept action - `sdp`: RFC 8866 compliant SDP information ## Error Handling Error code 138006 indicates lack of call request permission for the business number from the WhatsApp user. ' - name: Marketing Messages description: Send marketing template messages to WhatsApp users using pre-approved templates. - name: Messages description: 'Use the **`/{{Phone-Number-ID}}/messages`** endpoint to send text messages, media (audio, documents, images, and video), and message templates to your customers. For more information relating to the messages you can send, see [Messages](#1f4f7644-cc97-40b5-b8e4-c19da268fff1). Messages are identified by a unique ID. You can track message status in the Webhooks through its ID. You could also mark an incoming message as read through the **`/{{Phone-Number-ID}}/messages`** endpoint. ## Prerequisites * [User Access Token](https://developers.facebook.com/docs/facebook-login/access-tokens#usertokens) with **`whatsapp_business_messaging`** permission * `phone-number-id` for your registered WhatsApp account. See [Get Phone Number](#c72d9c17-554d-4ae1-8f9e-b28a94010b28).' - name: Examples - name: QR Code Collection description: APIs for listing and creating WhatsApp Business message QR codes - name: Individual QR Code description: APIs for retrieving and deleting individual WhatsApp Business message QR codes - name: Encrypted Messages description: 'Payload encryption provides an additional layer of security on top of existing standard TLS/SSL that secures communication between Cloud API and businesses. When enabled, all message requests and message echoes webhooks will undergo encryption using JWE (JSON Web Encryption) format. ## Key Features - **Additional Security Layer**: Adds payload-level encryption on top of standard TLS/SSL - **JWE Format**: Uses JSON Web Encryption standard for encrypting message payloads - **Selective Encryption**: Only successful responses are encrypted; errors remain unencrypted - **Standard Compatibility**: Encrypted payloads contain the same structure as `/messages` endpoint - **Phone-Number Level**: Encryption is configured per phone number within a WABA ## Setup Requirements 1. **Enable Payload Encryption**: Use `POST //settings` to enable encryption 2. **RSA Key Pair**: Generate and provide a 2048-bit RSA public key (base64 encoded) 3. **Algorithm Support**: Multiple algorithms supported for content and key encryption 4. **Access Token**: User Access Token with `whatsapp_business_messaging` permission ## Supported Algorithms - **Content Encryption**: A128GCM, A256GCM, A128CBC-HS256, A192CBC-HS384, A256CBC-HS512 - **Key Encryption**: RSA1_5, RSA-OAEP - **WhatsApp Standard**: A256GCM + RSA-OAEP for responses and webhooks' - name: Official Business Account description: APIs for managing Official Business Account status and verification - name: Phone Numbers description: APIs for managing WhatsApp Business Account phone number operations - name: Phone Number Management description: APIs for managing WhatsApp Business phone number registration and deregistration - name: Message History description: APIs for retrieving WhatsApp Business Account message history and delivery status information - name: Phone Number Registration description: APIs for registering and managing WhatsApp Business phone numbers - name: Phone Number Verification description: APIs for WhatsApp Business phone number verification process - name: Business Encryption description: APIs for managing WhatsApp Business Account encryption configuration - name: WhatsApp Business Profile description: APIs for managing WhatsApp Business Profile information and settings - name: Business Compliance description: APIs for retrieving WhatsApp Business Account compliance information - name: Message History Events description: APIs for retrieving WhatsApp Business Message History Events and delivery status occurrences - name: Migration Intent description: APIs for retrieving WhatsApp Business Account migration intent details - name: Pre-Verified Phone Number Partners description: APIs for managing partner businesses associated with pre-verified phone numbers - name: WhatsApp Business Solution Management description: 'Operations for managing WhatsApp Business Multi-Partner Solutions including lifecycle management, status transitions, and partnership workflows. ' - name: Assigned WhatsApp Business Accounts description: APIs for managing assigned WhatsApp Business Accounts for users - name: WhatsApp Account Numbers description: APIs for managing WhatsApp Account Number details and configuration - name: WhatsApp Business Account Users description: APIs for managing user assignments and permissions for WhatsApp Business Accounts - name: Conversational Automation description: APIs for managing conversational automation settings and bot configurations - name: WhatsApp Business Account On-Behalf Requests description: APIs for managing WhatsApp Business Account on-behalf requests and business relationships - name: OBO Mobility Intent description: APIs for managing On-Behalf-Of mobility intent operations for WhatsApp Business Accounts - name: Schedule Management description: APIs for managing WhatsApp Business Account schedules and scheduling configurations - name: Solution Migration description: APIs for managing Multi-Partner Solution migration processes - name: Webhook Subscriptions description: APIs for managing WhatsApp Business Account webhook subscriptions - name: WhatsApp Business Account Activities description: APIs for retrieving WhatsApp Business Account activity logs and audit trails - name: WhatsApp Business Account description: APIs for managing WhatsApp Business Account details and configuration - name: WhatsApp Business Bot description: APIs for managing WhatsApp Business Bot configuration and details - name: WhatsApp Business Profiles description: APIs for managing WhatsApp Business Profile details and configuration components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'System user access token with whatsapp_business_management permission. Format: Bearer YOUR_SYSTEM_USER_ACCESS_TOKEN ' schemas: ConnectedClientBusiness: type: object description: Connected client business information and configuration required: - id - name properties: id: type: string description: Unique identifier for the connected client business example: '1234567890123456' name: type: string description: Name of the connected client business minLength: 1 maxLength: 255 example: Example Client Business verification_status: $ref: '#/components/schemas/BusinessVerificationStatus' business_status: $ref: '#/components/schemas/BusinessStatus' created_time: type: string format: date-time description: Timestamp when the business connection was created example: '2023-01-15T10:30:00Z' updated_time: type: string format: date-time description: Timestamp when the business connection was last updated example: '2023-06-20T14:45:00Z' BusinessVerificationStatus: type: string description: Verification status of the connected client business enum: - VERIFIED - UNVERIFIED - PENDING - REJECTED example: VERIFIED BusinessStatus: type: string description: Current status of the connected client business enum: - ACTIVE - INACTIVE - SUSPENDED - PENDING_APPROVAL example: ACTIVE ConnectedClientBusinessesResponse: type: object description: Response containing list of connected client businesses properties: data: type: array description: Array of connected client businesses items: $ref: '#/components/schemas/ConnectedClientBusiness' paging: $ref: '#/components/schemas/CursorPaging' CursorPaging: type: object description: Cursor-based pagination information properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page of data example: QVFIUjNpUWpVWmRBd0dn after: type: string description: Cursor pointing to the end of the page of data example: QVFIUjNpUWpVWmRBd0Rn previous: type: string description: URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890/connected_client_businesses?before=QVFIUjNpUWpVWmRBd0Dn next: type: string description: URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890/connected_client_businesses?after=QVFIUjNpUWpVWmRBd0Rn GraphAPIError: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Invalid parameter type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Permission Denied error_user_msg: type: string description: User-friendly error message for display purposes example: Your app doesn't have permission to access this resource WhatsAppBusinessSolutionCreateRequest: type: object description: Request payload for creating a Multi-Partner Solution required: - owner_permissions - partner_app_id - partner_permissions - solution_name properties: owner_permissions: type: array description: 'Configurable permissions granted to the solution owner app. Currently supports only MESSAGING permission. Use empty array if owner should not have configurable permissions. ' items: $ref: '#/components/schemas/WhatsAppBusinessAccountConfigurablePermissionTask' maxItems: 1 example: - MESSAGING partner_app_id: type: string description: 'Facebook Application ID of the partner app that will participate in this solution. Must be a valid application ID accessible to the requesting entity. ' pattern: ^[0-9]+$ example: '9876543210987654' partner_permissions: type: array description: 'Configurable permissions granted to the partner app. Currently supports only MESSAGING permission. Use empty array if partner should not have configurable permissions. ' items: $ref: '#/components/schemas/WhatsAppBusinessAccountConfigurablePermissionTask' maxItems: 1 example: [] solution_name: type: string description: 'Human-readable name for the Multi-Partner Solution. Used for identification and management purposes in partner dashboards and solution management interfaces. ' minLength: 2 maxLength: 75 example: E-commerce Integration Solution WhatsAppBusinessSolutionCreateResponse: type: object description: Successful response containing the created solution identifier required: - solution_id properties: solution_id: type: string description: 'Unique identifier for the newly created Multi-Partner Solution. Use this ID for subsequent solution management operations. ' pattern: ^[0-9]+$ example: '1234567890123456' WhatsAppBusinessAccountConfigurablePermissionTask: type: string description: 'Configurable permission tasks for WhatsApp Business Account access in Multi-Partner Solutions. Currently only MESSAGING permission is configurable through this API. ' enum: - MESSAGING example: MESSAGING GraphAPIError_1: type: object description: Standard Graph API error response structure required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message describing the issue example: Invalid parameter value for owner_permissions type: type: string description: Error type classification for programmatic handling example: OAuthException code: type: integer description: Numeric error code for specific error identification example: 100 error_subcode: type: integer description: More specific error subcode when applicable example: 33 fbtrace_id: type: string description: Facebook trace ID for debugging and support purposes example: A1B2C3D4E5F6G7H8 is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Permission Denied error_user_msg: type: string description: User-friendly error message for display purposes example: Your app doesn't have permission to access this resource WhatsAppBusinessSolution: type: object description: Multi-Partner Solution details and configuration required: - id - name - status - status_for_pending_request properties: id: type: string description: Unique identifier for the Multi-Partner Solution example: '1234567890123456' name: type: string description: Human-readable name of the Multi-Partner Solution minLength: 2 maxLength: 75 example: E-commerce Integration Solution status: $ref: '#/components/schemas/WhatsAppBusinessSolutionStatus' status_for_pending_request: $ref: '#/components/schemas/WhatsAppBusinessSolutionPendingStatus' owner_app: $ref: '#/components/schemas/ApplicationNode' owner_permissions: type: array description: List of WhatsApp Business Account permissions granted to the solution owner items: $ref: '#/components/schemas/WhatsAppBusinessAccountPermissionTask' example: - MANAGE - DEVELOP - MANAGE_TEMPLATES WhatsAppBusinessSolutionStatus: type: string description: Current effective status of the Multi-Partner Solution enum: - DRAFT - INITIATED - ACTIVE - REJECTED - DEACTIVATED example: ACTIVE WhatsAppBusinessSolutionPendingStatus: type: string description: Status of any pending solution status transition requests enum: - PENDING_ACTIVATION - PENDING_DEACTIVATION - NONE example: NONE WhatsAppBusinessAccountPermissionTask: type: string description: Granular permission tasks for WhatsApp Business Account access enum: - MANAGE - DEVELOP - MANAGE_TEMPLATES - MANAGE_PHONE - VIEW_COST - MANAGE_EXTENSIONS - VIEW_PHONE_ASSETS - MANAGE_PHONE_ASSETS - VIEW_TEMPLATES - VIEW_INSIGHTS - RECEIVE_INCOMING_MESSAGES - MANAGE_BILLING - MANAGE_USERS - MESSAGING - FULL_CONTROL example: MANAGE WhatsAppBusinessSolutionApplicationRole: type: string description: Role of the application in relation to the Multi-Partner Solution enum: - OWNER - PARTNER example: OWNER ApplicationNode: type: object description: Meta application that owns the Multi-Partner Solution properties: id: type: string description: Unique identifier for the Meta application example: '9876543210987654' name: type: string description: Name of the Meta application example: Solution Partner App WhatsAppBusinessSolutionsResponse: type: object description: Response containing list of Multi-Partner Solutions with pagination properties: data: type: array description: Array of Multi-Partner Solutions items: $ref: '#/components/schemas/WhatsAppBusinessSolution' paging: $ref: '#/components/schemas/CursorPaging' CursorPaging_1: type: object description: Cursor-based pagination information properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page of data that has been returned example: MAZDZD after: type: string description: Cursor pointing to the end of the page of data that has been returned example: MTAxNTExOTQ1MjAwNzI5NDE previous: type: string description: Graph API endpoint URL for the previous page of data example: https://graph.facebook.com/v23.0/1234567890/whatsapp_business_solutions?before=MAZDZD next: type: string description: Graph API endpoint URL for the next page of data example: https://graph.facebook.com/v23.0/1234567890/whatsapp_business_solutions?after=MTAxNTExOTQ1MjAwNzI5NDE AddPhoneNumbersRequest: type: object description: Request payload for adding a phone number to a business account required: - phone_number properties: phone_number: type: string description: 'Phone number to add to the business account. Accepts E.164 format or formatted numbers with spaces, hyphens, and parentheses (e.g., +1234567890, +1 (631) 555-1000, +1-631-555-1000). The phone number will be normalized and validated by the endpoint. ' example: '+1234567890' AddPhoneNumbersResponse: type: object description: Response containing the ID of the successfully added phone number required: - id properties: id: type: string description: Unique identifier for the preverified phone number entity that was created example: '1234567890123456' PreVerifiedPhoneNumber: type: object description: Pre-verified phone number details and status information required: - id - display_phone_number - verification_status properties: id: type: string description: Unique identifier for the pre-verified phone number example: '1234567890123456' display_phone_number: type: string description: Formatted display version of the phone number example: +1 (555) 123-4567 country_prefix: type: integer description: Country code prefix for the phone number minimum: 1 maximum: 999 example: 1 verification_status: $ref: '#/components/schemas/PhoneNumberVerificationStatus' availability_status: $ref: '#/components/schemas/PhoneNumberAvailabilityStatus' created_time: type: string format: date-time description: Timestamp when the phone number was pre-verified example: '2024-01-15T10:30:00Z' last_updated: type: string format: date-time description: Timestamp when the phone number information was last updated example: '2024-01-20T14:45:00Z' supported_features: type: array description: List of WhatsApp Business features supported by this phone number items: $ref: '#/components/schemas/WhatsAppBusinessFeature' example: - MESSAGING - BUSINESS_PROFILE - WEBHOOKS country_code: type: string description: ISO 3166-1 alpha-2 country code for the phone number pattern: ^[A-Z]{2}$ example: US region: type: string description: Geographic region or area for the phone number example: North America PhoneNumberVerificationStatus: type: string description: Current verification status of the pre-verified phone number enum: - VERIFIED - PENDING - FAILED - EXPIRED example: VERIFIED PhoneNumberAvailabilityStatus: type: string description: Current availability status of the pre-verified phone number enum: - AVAILABLE - IN_USE - RESERVED - UNAVAILABLE example: AVAILABLE WhatsAppBusinessFeature: type: string description: WhatsApp Business features supported by the phone number enum: - MESSAGING - BUSINESS_PROFILE - WEBHOOKS - TEMPLATES - ANALYTICS - COMMERCE - FLOWS example: MESSAGING PreVerifiedPhoneNumbersResponse: type: object description: Response containing list of pre-verified phone numbers required: - data properties: data: type: array description: List of pre-verified phone numbers items: $ref: '#/components/schemas/PreVerifiedPhoneNumber' paging: $ref: '#/components/schemas/CursorPaging' CursorPaging_2: type: object description: Cursor-based pagination information properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page of data that has been returned example: QVFIUmx1WTBpMGpJWXprYzVYaVhabW9PVks4ZD0 after: type: string description: Cursor pointing to the end of the page of data that has been returned example: QVFIUjJ5WjBpMGpJWXprYzVYaVhabW9PVks4ZD0 next: type: string description: Graph API endpoint URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890123456/preverified_numbers?after=QVFIUjJ5WjBpMGpJWXprYzVYaVhabW9PVks4ZD0 previous: type: string description: Graph API endpoint URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890123456/preverified_numbers?before=QVFIUmx1WTBpMGpJWXprYzVYaVhabW9PVks4ZD0 WhatsAppBusinessAccount: type: object description: WhatsApp Business Account details and configuration required: - id - name properties: id: type: string description: Unique identifier for the WhatsApp Business Account example: '1234567890123456' name: type: string description: Human-readable name of the WhatsApp Business Account minLength: 1 maxLength: 255 example: My WhatsApp Business Account account_review_status: $ref: '#/components/schemas/AccountReviewStatus' purchase_order_number: type: string description: Purchase order number associated with the account example: PO-2023-001234 audiences: type: array description: List of audience segments associated with the account items: type: string example: - customers - prospects ownership_type: $ref: '#/components/schemas/OwnershipType' subscribed_apps: type: array description: List of applications subscribed to this WABA items: $ref: '#/components/schemas/SubscribedApp' business_verification_status: $ref: '#/components/schemas/BusinessVerificationStatus' country: type: string description: Country code where the WABA is registered pattern: ^[A-Z]{2}$ example: US currency: type: string description: Currency code for the WABA pattern: ^[A-Z]{3}$ example: USD timezone_id: type: string description: Timezone identifier for the WABA example: '1' on_behalf_of_business_info: $ref: '#/components/schemas/OnBehalfOfBusinessInfo' schedules: type: array description: Business hours and scheduling information items: $ref: '#/components/schemas/BusinessSchedule' is_enabled_for_insights: type: boolean description: Whether insights are enabled for this WABA example: true dcc_config: $ref: '#/components/schemas/DCCConfig' message_templates: type: array description: Message templates associated with the WABA items: $ref: '#/components/schemas/MessageTemplate' phone_numbers: type: array description: Phone numbers associated with the WABA items: $ref: '#/components/schemas/PhoneNumber' AccountReviewStatus: type: string description: Review status of the WhatsApp Business Account enum: - APPROVED - PENDING - REJECTED - RESTRICTED example: APPROVED OwnershipType: type: string description: Type of ownership for the WhatsApp Business Account enum: - SELF_OWNED - CLIENT_OWNED - AGENCY_OWNED example: CLIENT_OWNED BusinessVerificationStatus_1: type: string description: Verification status of the business associated with the WABA enum: - VERIFIED - UNVERIFIED - PENDING - REJECTED example: VERIFIED SubscribedApp: type: object description: Application subscribed to the WABA properties: id: type: string description: Application ID example: '9876543210987654' name: type: string description: Application name example: WhatsApp Integration App OnBehalfOfBusinessInfo: type: object description: Information about the business on whose behalf the WABA operates properties: id: type: string description: Business ID example: '5678901234567890' name: type: string description: Business name example: Partner Business Inc BusinessSchedule: type: object description: Business hours schedule information properties: day_of_week: type: string enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY example: MONDAY open_time: type: string description: Opening time in HH:MM format pattern: ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ example: 09:00 close_time: type: string description: Closing time in HH:MM format pattern: ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ example: '17:00' DCCConfig: type: object description: Data and Content Control configuration properties: enabled: type: boolean description: Whether DCC is enabled example: true policy_url: type: string description: URL to the DCC policy example: https://example.com/dcc-policy MessageTemplate: type: object description: Message template information properties: id: type: string description: Template ID example: template_123456 name: type: string description: Template name example: welcome_message status: type: string enum: - APPROVED - PENDING - REJECTED - DISABLED example: APPROVED PhoneNumber: type: object description: Phone number associated with the WABA properties: id: type: string description: Phone number ID example: '1234567890123456' display_phone_number: type: string description: Formatted phone number for display example: +1 (555) 123-4567 verified_name: type: string description: Verified business name for the phone number example: Example Business ClientWhatsAppBusinessAccountsResponse: type: object description: Response containing list of client WhatsApp Business Accounts properties: data: type: array description: Array of client WhatsApp Business Accounts items: $ref: '#/components/schemas/WhatsAppBusinessAccount' paging: $ref: '#/components/schemas/CursorPaging' CursorPaging_3: type: object description: Cursor-based pagination information properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page of data example: QVFIUjNpUWpVWmRBd0Dn after: type: string description: Cursor pointing to the end of the page of data example: QVFIUjNpUWpVWmRBd0Rn previous: type: string description: URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890/client_whatsapp_business_accounts?before=QVFIUjNpUWpVWmRBd0Dn next: type: string description: URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890/client_whatsapp_business_accounts?after=QVFIUjNpUWpVWmRBd0Rn MMLiteOnboardingRequest: type: object description: MM Lite onboarding request details required: - request_id properties: request_id: type: string description: Unique identifier for the MM Lite onboarding request example: '1234567890123456' WhatsAppBusinessAccount_1: type: object description: WhatsApp Business Account owned by the business required: - id - name - message_template_namespace - timezone_id properties: id: type: string description: Unique identifier for the WhatsApp Business Account example: '104996122399160' name: type: string description: Human-readable name of the WhatsApp Business Account minLength: 1 maxLength: 100 example: Lucky Shrub message_template_namespace: type: string description: Namespace identifier for message templates associated with this account example: 58e6d318_b627_4112_b9c7_2961197553ea timezone_id: type: string description: Timezone identifier for the WhatsApp Business Account example: '1' WhatsAppBusinessType: type: string description: Type of WhatsApp Business Account enum: - ENTERPRISE - SMB example: ENTERPRISE WhatsAppBusinessAccountOnboardingFilter: type: string description: Filter for accounts based on onboarding status enum: - ONBOARDED - NOT_ONBOARDED - ALL example: ONBOARDED WhatsAppBusinessAccountsConnection: type: object description: Paginated collection of owned WhatsApp Business Accounts required: - data properties: data: type: array items: $ref: '#/components/schemas/WhatsAppBusinessAccount' description: Array of owned WhatsApp Business Account records paging: $ref: '#/components/schemas/CursorPaging' CursorPaging_4: type: object description: Cursor-based pagination information properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page of data that has been returned example: QVFIUnpPVXRnY3BPN19rTVItOG51T291YURjV3BaeXRXU29adDVreS04ekhSNl9YWTlfdmN3SHlyTEk1a2FRdnlWanBqM1FuQm1uZAHhfYl9UMTNCYjM3MWV3 after: type: string description: Cursor pointing to the end of the page of data that has been returned example: QVFIUjBrRUs5QVJuUDhDSmZARMlc2dXRYNXBmMjMtRUt3SmFlbk9PRk43azdiN1VQaW1HcnRkejFzZATNoNDdTdGVWMDhjamVvY25HWnI4WjIzX0hYSk40NHhB next: type: string description: URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890/owned_whatsapp_business_accounts?after=QVFIUjBrRUs5QVJuUDhDSmZARMlc2dXRYNXBmMjMtRUt3SmFlbk9PRk43azdiN1VQaW1HcnRkejFzZATNoNDdTdGVWMDhjamVvY25HWnI4WjIzX0hYSk40NHhB previous: type: string description: URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890/owned_whatsapp_business_accounts?before=QVFIUnpPVXRnY3BPN19rTVItOG51T291YURjV3BaeXRXU29adDVreS04ekhSNl9YWTlfdmN3SHlyTEk1a2FRdnlWanBqM1FuQm1uZAHhfYl9UMTNCYjM3MWV3 PreVerifiedPhoneNumberShareRequest: type: object description: Request payload for sharing a pre-verified phone number with another business required: - preverified_id - partner_business_id properties: preverified_id: type: string description: 'Unique identifier of the pre-verified phone number to be shared. Must be a valid phone number ID that the requesting business owns or has sharing rights to. ' pattern: ^[0-9]+$ example: '1234567890123456' partner_business_id: type: string description: 'Business ID of the partner business that will receive access to the pre-verified phone number. Must be a valid business entity accessible to the requesting app. ' pattern: ^[0-9]+$ example: '9876543210987654' PreVerifiedPhoneNumberPermission: type: string description: Specific permissions that can be granted for shared pre-verified phone numbers enum: - MESSAGING - VIEW_DETAILS - MANAGE_SETTINGS - VIEW_ANALYTICS - MANAGE_WEBHOOKS example: MESSAGING PreVerifiedPhoneNumberShareResponse: type: object description: Response containing details of the successful phone number sharing operation required: - success properties: success: type: boolean description: Indicates whether the sharing operation was successful example: true SharingStatus: type: string description: Current status of the phone number sharing relationship enum: - ACTIVE - PENDING - EXPIRED - REVOKED example: ACTIVE SharedPreVerifiedPhoneNumber: type: object description: Details of the shared pre-verified phone number properties: id: type: string description: Unique identifier for the pre-verified phone number example: '1234567890123456' display_phone_number: type: string description: Formatted display version of the phone number example: +1 (555) 123-4567 country_prefix: type: integer description: Country code prefix for the phone number minimum: 1 maximum: 999 example: 1 verification_status: type: string description: Current verification status of the phone number enum: - VERIFIED - PENDING - FAILED example: VERIFIED BusinessSummary: type: object description: Summary information about a business entity properties: id: type: string description: Unique identifier for the business example: '9876543210987654' name: type: string description: Name of the business example: Partner Business Corp verification_status: type: string description: Business verification status enum: - VERIFIED - UNVERIFIED - PENDING example: VERIFIED BlockedUser: type: object properties: messaging_product: type: string example: whatsapp wa_id: type: string example: '16505551234' PaginationCursors: type: object properties: after: type: string example: eyJvZAmZAzZAXQiOjAsInZAlcnNpb25JZACI6IjE3Mzc2Nzk2ODgzODM1ODQifQZDZD before: type: string example: eyJvZAmZAzZAXQiOjAsInZAlcnNpb25JZACI6IjE3Mzc2Nzk2ODgzODM1ODQifQZDZD Paging: type: object properties: cursors: $ref: '#/components/schemas/PaginationCursors' GetBlockedUsersData: type: object properties: data: type: array items: $ref: '#/components/schemas/BlockedUser' example: - messaging_product: whatsapp wa_id: '16505551234' paging: $ref: '#/components/schemas/Paging' BlockedUserOperation: type: object properties: input: type: string example: '+16505551234' wa_id: type: string example: '16505551234' BlockUsersResult: type: object properties: added_users: type: array items: $ref: '#/components/schemas/BlockedUserOperation' example: - input: '+16505551234' wa_id: '16505551234' UnblockUsersResult: type: object properties: removed_users: type: array items: $ref: '#/components/schemas/BlockedUserOperation' example: - input: '+16505551234' wa_id: '16505551234' BlockUsersData: type: object properties: block_users: $ref: '#/components/schemas/BlockUsersResult' messaging_product: type: string example: whatsapp UnblockUsersData: type: object properties: block_users: $ref: '#/components/schemas/UnblockUsersResult' messaging_product: type: string example: whatsapp CallPermissionCheckResponsePayload: type: object properties: messaging_product: type: string example: whatsapp description: Messaging product permission: type: object properties: status: type: string enum: - granted - pending - denied - expired example: granted description: Current permission status for calling this user expiration_time: type: integer format: int64 example: 1735689600 description: Unix timestamp when the permission expires (if applicable) required: - status description: Call permission details actions: type: array items: type: object properties: action_name: type: string enum: - start_call - send_call_permission_request example: start_call description: Name of the action can_perform_action: type: boolean example: true description: Whether the business can perform this action limits: type: array items: type: object properties: time_period: type: string example: 24h description: Time period for the limit current_usage: type: integer example: 5 description: Current usage count max_allowed: type: integer example: 100 description: Maximum allowed usage limit_expiration_time: type: integer format: int64 example: 1735689600 description: Unix timestamp when the limit resets required: - time_period - current_usage - max_allowed description: Rate limits for this action required: - action_name - can_perform_action description: Available actions and their restrictions required: - messaging_product - permission CallRequestPayload: type: object properties: messaging_product: type: string example: whatsapp description: Messaging product to: type: string example: '14085551234' description: The number being called (callee) action: type: string enum: - connect - pre_accept - accept - reject - terminate example: connect description: The action being taken on the given call ID session: type: object properties: sdp_type: type: string enum: - offer - answer example: offer description: SDP type - "offer" for connect action, "answer" for accept action sdp: type: string example: 'v=0 o=- 3626166318745852955 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 a=extmap-allow-mixed a=msid-semantic: WMS d8b26053-4474-4eb7-b3c3-c93d6c8c9b2e m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 0 8 110 126 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:4g1c a=ice-pwd:qY/Bb+jQzg5ICn6X4fhJQetk a=ice-options:trickle a=fingerprint:sha-256 35:47:24:24:9F:93:C4:3E:DB:37:7F:BB:ED:F8:20:B5:AD:AC:DC:35:C2:7D:67:EE:6C:35:54:DF:A6:00:5C:4A a=setup:actpass a=mid:0 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid a=sendrecv a=msid:d8b26053-4474-4eb7-b3c3-c93d6c8c9b2e 5b4d3d96-ea9b-44a8-87e6-11a1ad21a3bc a=rtcp-mux a=rtpmap:111 opus/48000/2 a=rtcp-fb:111 transport-cc a=fmtp:111 minptime=10;useinbandfec=1 a=rtpmap:63 red/48000/2 a=fmtp:63 111/111 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:110 telephone-event/48000 a=rtpmap:126 telephone-event/8000 a=ssrc:2220762577 cname:w/zwpg3jXNiTFTdZ a=ssrc:2220762577 msid:d8b26053-4474-4eb7-b3c3-c93d6c8c9b2e 5b4d3d96-ea9b-44a8-87e6-11a1ad21a3bc ' description: The SDP info of the device on the other end of the call. The SDP must be compliant with RFC 8866 required: - sdp_type - sdp description: Contains the session description protocol (SDP) type and description language biz_opaque_callback_data: type: string maxLength: 512 example: 0fS5cePMok description: 'An arbitrary string you can pass in that is useful for tracking and logging purposes. Any app subscribed to the "calls" webhook field on your WhatsApp Business Account can receive this string, as it is included in the calls object within the subsequent Call Terminate Webhook payload. Cloud API does not process this field. Maximum 512 characters ' required: - messaging_product - to - action CallTerminateRequestPayload: type: object properties: messaging_product: type: string example: whatsapp description: Messaging product call_id: type: string example: wacid.HBgLMTIxODU1NTI4MjgVAgARGCAyODRQIAFRoA description: The WhatsApp call ID action: type: string enum: - terminate example: terminate description: Action to terminate the call required: - messaging_product - call_id - action CallResponsePayload: type: object properties: messaging_product: type: string example: whatsapp calls: type: array items: type: object properties: id: type: string example: wacid.ABGGFjFVU2AfAgo6V example: - id: wacid.ABGGFjFVU2AfAgo6V CallTerminateResponsePayload: type: object properties: success: type: boolean example: true ErrorObject: type: object properties: message: type: string description: Human-readable description of the error type: type: string description: Error type classification code: type: integer description: Numeric error code required: - message - type - code ErrorResponse: type: object properties: error: $ref: '#/components/schemas/ErrorObject' required: - error ErrorObject_1: $ref: '#/components/schemas/ErrorObject' ErrorResponse_1: $ref: '#/components/schemas/ErrorResponse' PagingInfo: type: object properties: cursors: type: object properties: before: type: string description: Before cursor after: type: string description: After cursor previous: type: string description: Previous page URL next: type: string description: Next page URL TemplateObject: type: object required: - name - language properties: name: type: string description: Name of the template. example: TEMPLATE_NAME language: $ref: '#/components/schemas/LanguageObject' description: Contains a `language` object. Specifies the language the template may be rendered in components: type: array description: Array of `components` objects containing the parameters of the message. items: $ref: '#/components/schemas/TemplateComponent' example: - type: header parameters: - type: image image: link: http(s)://example.com/image.jpg - type: body parameters: - type: text text: Hello {{1}}! Your order of {{2}} is confirmed for {{3}}. - type: button sub_type: quick_reply index: '0' parameters: - type: payload payload: ORDER_DETAILS_CLICKED LanguageObject: type: object required: - policy - code properties: policy: type: string description: The language policy the message should follow. enum: - deterministic example: deterministic code: type: string description: The code of the language or locale to use (e.g., `"en"`, `"en_US"`). example: en_US TemplateComponent: type: object required: - type properties: type: type: string description: Describes the component type. enum: - header - body - button sub_type: type: string description: Required when `type=button`. Not used for other types. Type of button to create. enum: - quick_reply - url - catalog parameters: type: array description: Array of parameter objects with the content of the message. index: type: string description: Required when `type=button`. Not used for other types. Position index of the button (0-9). pattern: ^[2-6, 11-14]$ example: '0' discriminator: propertyName: type mapping: header: '#/components/schemas/HeaderComponent' body: '#/components/schemas/BodyComponent' button: '#/components/schemas/ButtonComponent' HeaderComponent: allOf: - $ref: '#/components/schemas/TemplateComponent' - type: object properties: type: enum: - header parameters: type: array description: Parameters for the header component, which can be `image`, `video`, `document`, or `text`. [15, 16] minItems: 1 items: $ref: '#/components/schemas/ParameterObject' example: - type: image image: link: http(s)://example.com/header_image.jpg BodyComponent: allOf: - $ref: '#/components/schemas/TemplateComponent' - type: object properties: type: enum: - body parameters: type: array description: Parameters for the body component, which can be `text`, `currency`, or `date_time`. [17] items: $ref: '#/components/schemas/ParameterObject' example: - type: text text: Hi John, your total is - type: currency currency: fallback_value: $100.00 USD code: USD amount_1000: 100000 ButtonComponent: allOf: - $ref: '#/components/schemas/TemplateComponent' - type: object required: - sub_type - index - parameters properties: type: enum: - button sub_type: type: string enum: - quick_reply - url - catalog index: type: string pattern: ^[2-6, 11-14]$ parameters: type: array description: Parameters for the button component, which are `payload` for quick reply or `text` for URL buttons. minItems: 1 items: $ref: '#/components/schemas/ButtonParameterObject' example: - type: payload payload: VIEW_DETAILS_BUTTON_CLICK ParameterObject: type: object required: - type properties: type: type: string description: Describes the parameter type. For text-based templates, only `"currency"`, `"date_time"`, and `"text"` are supported. enum: - currency - date_time - document - image - text - video discriminator: propertyName: type mapping: currency: '#/components/schemas/CurrencyParameter' date_time: '#/components/schemas/DateTimeParameter' document: '#/components/schemas/DocumentParameter' image: '#/components/schemas/ImageParameter' text: '#/components/schemas/TextParameter' video: '#/components/schemas/VideoParameter' TextParameter: allOf: - $ref: '#/components/schemas/ParameterObject' - type: object required: - text properties: type: enum: - text text: type: string description: The message's text. maxLength: 32768 CurrencyParameter: allOf: - $ref: '#/components/schemas/ParameterObject' - type: object required: - currency properties: type: enum: - currency currency: $ref: '#/components/schemas/CurrencyObject' DateTimeParameter: allOf: - $ref: '#/components/schemas/ParameterObject' - type: object required: - date_time properties: type: enum: - date_time date_time: $ref: '#/components/schemas/DateTimeObject' DocumentParameter: allOf: - $ref: '#/components/schemas/ParameterObject' - type: object required: - document properties: type: enum: - document document: $ref: '#/components/schemas/MediaObject' description: Only PDF documents are supported for media-based message templates. Captions not supported. ImageParameter: allOf: - $ref: '#/components/schemas/ParameterObject' - type: object required: - image properties: type: enum: - image image: $ref: '#/components/schemas/MediaObject' description: A media object of type image. Captions not supported. [15] VideoParameter: allOf: - $ref: '#/components/schemas/ParameterObject' - type: object required: - video properties: type: enum: - video video: $ref: '#/components/schemas/MediaObject' description: A media object of type video. Captions not supported. [16] CurrencyObject: type: object required: - fallback_value - code - amount_1000 properties: fallback_value: type: string description: Default text if localization fails. example: USD $100.00 code: type: string description: Currency code as defined in ISO 4217. example: USD amount_1000: type: integer format: int32 description: Amount multiplied by 1000 (e.g., 100000 for $100.00). example: 100000 DateTimeObject: type: object required: - fallback_value properties: fallback_value: type: string description: Default text. For Cloud API, this fallback value is always used. example: December 25, 2024 MediaObject: type: object description: A media object. Either `id` or `link` is required. oneOf: - required: - id properties: id: type: string description: The media object ID. **Required when `link` is not used.** example: MEDIA_OBJECT_ID - required: - link properties: link: type: string format: url description: The protocol and URL of the media to be sent (HTTP/HTTPS only). example: http(s)://example.com/media.mp4 ButtonParameterObject: type: object required: - type properties: type: type: string description: Indicates the type of parameter for the button. enum: - payload - text discriminator: propertyName: type mapping: payload: '#/components/schemas/ButtonPayloadParameter' text: '#/components/schemas/ButtonTextParameter' ButtonPayloadParameter: allOf: - $ref: '#/components/schemas/ButtonParameterObject' - type: object required: - payload properties: type: enum: - payload payload: type: string description: Developer-defined payload that is returned when the quick reply button is clicked. example: USER_CLICKED_OPTION_A ButtonTextParameter: allOf: - $ref: '#/components/schemas/ButtonParameterObject' - type: object required: - text properties: type: enum: - text text: type: string description: Developer-provided suffix that is appended to the predefined prefix URL in the template. example: product-details-123 MarketingMessageRequestPayload: type: object additionalProperties: false properties: messaging_product: type: string description: Messaging service used. Must be "whatsapp" enum: - whatsapp example: whatsapp recipient_type: type: string description: Type of recipient. Must be "individual" enum: - individual example: individual to: type: string description: WhatsApp ID or phone number of the message recipient example: '16315552222' type: type: string description: Type of message. Must be "template" for marketing messages enum: - template const: template template: $ref: '#/components/schemas/TemplateObject' product_policy: type: string description: Optional product policy setting enum: - CLOUD_API_FALLBACK - STRICT example: CLOUD_API_FALLBACK message_activity_sharing: type: boolean description: Optional flag to control message activity sharing example: true required: - messaging_product - recipient_type - to - type - template MessageStatus: type: string enum: - accepted - held_for_quality_assessment - paused description: 'The status of a WhatsApp message: - `accepted`: The message has been accepted by WhatsApp and is being processed - `held_for_quality_assessment`: The message is being held for quality assessment before delivery - `paused`: The message delivery has been paused ' MarketingMessageResponsePayload: type: object properties: contacts: type: array items: type: object properties: input: type: string example: '16315552222' wa_id: type: string example: '16315552222' example: - input: '16315552222' wa_id: '16315552222' messages: type: array items: type: object properties: id: type: string example: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww message_status: $ref: '#/components/schemas/MessageStatus' example: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww message_status: accepted messaging_product: type: string example: whatsapp BaseMessageProperties: type: object description: Common properties shared by all message types required: - messaging_product - recipient_type - to - type properties: messaging_product: type: string example: whatsapp recipient_type: type: string enum: - individual - group description: The type of recipient. example: individual to: type: string description: The recipient's phone number for individual messages, and group-id for group message. example: '19505550005' type: type: string description: The type of message context: $ref: '#/components/schemas/MessageContext' MessageContext: type: object description: Context information for replying to a message properties: message_id: type: string description: The ID of the message to which this message is a reply. example: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww MediaObject_1: type: object description: A media object. Either `id` or `link` is required. oneOf: - required: - id properties: id: type: string description: The media object ID. **Required when `link` is not used.** example: MEDIA_OBJECT_ID caption: type: string description: Optional caption for the media maxLength: 1024 additionalProperties: false - required: - link properties: link: type: string format: url description: The protocol and URL of the media to be sent (HTTP/HTTPS only). example: http(s)://example.com/media.mp4 caption: type: string description: Optional caption for the media maxLength: 1024 additionalProperties: false Message: discriminator: propertyName: type mapping: text: '#/components/schemas/TextMessage' audio: '#/components/schemas/AudioMessage' document: '#/components/schemas/DocumentMessage' image: '#/components/schemas/ImageMessage' location: '#/components/schemas/LocationMessage' video: '#/components/schemas/VideoMessage' sticker: '#/components/schemas/StickerMessage' reaction: '#/components/schemas/ReactionMessage' interactive: '#/components/schemas/InteractiveMessage' template: '#/components/schemas/TemplateMessage' contacts: '#/components/schemas/ContactsMessage' oneOf: - $ref: '#/components/schemas/TextMessage' - $ref: '#/components/schemas/AudioMessage' - $ref: '#/components/schemas/DocumentMessage' - $ref: '#/components/schemas/ImageMessage' - $ref: '#/components/schemas/LocationMessage' - $ref: '#/components/schemas/VideoMessage' - $ref: '#/components/schemas/StickerMessage' - $ref: '#/components/schemas/ReactionMessage' - $ref: '#/components/schemas/InteractiveMessage' - $ref: '#/components/schemas/TemplateMessage' - $ref: '#/components/schemas/ContactsMessage' TextMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - text properties: type: type: string enum: - text text: type: object additionalProperties: false properties: body: type: string description: The text of the message. example: Hello World! preview_url: type: boolean AudioMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - audio properties: type: type: string enum: - audio audio: $ref: '#/components/schemas/MediaObject' VideoMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - video properties: type: type: string enum: - video video: $ref: '#/components/schemas/MediaObject' DocumentMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - document properties: type: type: string enum: - document document: $ref: '#/components/schemas/MediaObject' ImageMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - image properties: type: type: string enum: - image image: $ref: '#/components/schemas/MediaObject' LocationMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - location properties: type: type: string enum: - location location: type: object additionalProperties: false properties: address: type: string description: The address of the location. example: 1 Hacker Way, Menlo Park, CA 94025 latitude: type: string description: The latitude of the location. example: 37.4847 longitude: type: string description: The longitude of the location. example: -122.1486 name: type: string description: The name of the location. example: Meta HQ StickerMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - sticker properties: type: type: string enum: - sticker sticker: type: object oneOf: - type: object properties: id: type: string description: The ID of the sticker. additionalProperties: false required: - id - type: object properties: link: type: string description: The URL of the sticker. additionalProperties: false required: - link ReactionMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - reaction properties: type: type: string enum: - reaction reaction: type: object additionalProperties: false properties: emoji: type: string description: emoji message_id: type: string description: reacted message-id InteractiveMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - interactive properties: type: type: string enum: - interactive interactive: $ref: '#/components/schemas/InteractiveObject' InteractiveObject: type: object description: An object containing the content for an interactive message. required: - type - action properties: type: type: string description: The type of interactive message to send. enum: - button - call_permission_request - catalog_message - list - product - product_list - flow header: $ref: '#/components/schemas/HeaderObject' body: $ref: '#/components/schemas/BodyObject' footer: $ref: '#/components/schemas/FooterObject' action: $ref: '#/components/schemas/ActionObject' HeaderObject: type: object description: Header content displayed on top of a message. Required for 'product_list' type. Cannot be set for 'product' type. required: - type properties: type: type: string description: The header type. enum: - text - video - image - document text: type: string description: Text for the header. Required if 'type' is 'text'. Emojis supported, no markdown. maxLength: 60 sub_text: type: string description: Optional sub-text for the header. Emojis supported, no markdown. maxLength: 60 document: $ref: '#/components/schemas/MediaObject' description: Contains the media object for this document. Required if 'type' is 'document'. image: $ref: '#/components/schemas/MediaObject' description: Contains the media object for this image. Required if 'type' is 'image'. video: $ref: '#/components/schemas/MediaObject' description: Contains the media object for this video. Required if 'type' is 'video'. BodyObject: type: object description: An object with the body of the message. Optional for 'product' type, required for other interactive message types. required: - text properties: text: type: string description: The content of the message body. Emojis and markdown are supported. maxLength: 1024 FooterObject: type: object description: An object with the footer of the message. Optional. required: - text properties: text: type: string description: The footer content. Emojis, markdown, and links are supported. maxLength: 60 ActionObject: type: object description: Action you want the user to perform after reading the message. Its structure varies by interactive message type. oneOf: - required: - button - sections properties: button: type: string description: Button content for List Messages. Cannot be empty, must be unique. Emojis supported, no markdown. maxLength: 20 sections: type: array description: Array of section objects. minItems: 1 maxItems: 10 items: $ref: '#/components/schemas/SectionObject' - required: - buttons properties: buttons: type: array description: Array of button objects. minItems: 1 maxItems: 3 items: type: object required: - type - reply properties: type: type: string description: Only supported type is "reply" for Reply Button. enum: - reply reply: type: object required: - id - title properties: id: type: string description: Unique identifier for your button. No leading/trailing spaces. maxLength: 256 title: type: string description: Button title. Cannot be empty, must be unique. Emojis supported, no markdown. maxLength: 20 - required: - catalog_id properties: catalog_id: type: string description: Unique identifier of the Facebook catalog linked to your WhatsApp Business Account. product_retailer_id: type: string description: Unique identifier of the product in a catalog. Required for Single Product Messages. sections: type: array description: Array of section objects. minItems: 1 maxItems: 10 items: $ref: '#/components/schemas/SectionObject' - required: - name - parameters properties: name: type: string enum: - catalog_message parameters: type: object required: - thumbnail_product_retailer_id properties: thumbnail_product_retailer_id: type: string description: Product retailer ID for the thumbnail. - required: - name - parameters properties: name: type: string enum: - flow parameters: type: object required: - flow_message_version - flow_cta oneOf: - required: - flow_id - required: - flow_name properties: flow_message_version: type: string description: Must be "3". enum: - '3' flow_id: type: string description: Unique identifier of the Flow provided by WhatsApp. Required unless flow_name is set. Cannot be used with flow_name. flow_name: type: string description: The name of the Flow that you created. Required unless flow_id is set. Cannot be used with flow_id. flow_cta: type: string description: Text on the CTA button (e.g., "Signup"). Advised 30 characters or less, no emoji. maxLength: 30 mode: type: string description: The current mode of the Flow, either "draft" or "published". enum: - draft - published default: published flow_token: type: string description: A token generated by the business to serve as an identifier. Defaults to "unused". flow_action: type: string description: Either "navigate" to predefine the first screen, or "data_exchange" for advanced use cases. enum: - navigate - data_exchange default: navigate flow_action_payload: type: object description: Optional only if 'flow_action' is 'navigate'. properties: screen: type: string description: The 'id' of the first screen of the Flow. default: FIRST_ENTRY_SCREEN data: type: object description: The input data for the first screen of the Flow. Must be a non-empty object. - required: - name properties: name: type: string enum: - call_permission_request SectionObject: type: object description: A section object, used in List Messages and Multi-Product Messages. properties: title: type: string description: Title of the section. Required if the message has more than one section. Max 24 characters. maxLength: 24 product_items: type: array description: Array of product objects. minItems: 1 maxItems: 30 items: type: object required: - product_retailer_id properties: product_retailer_id: type: string description: Unique identifier of the product in a catalog. rows: type: array description: Contains a list of rows. maxItems: 10 items: type: object required: - id - title properties: id: type: string description: Unique row identifier. maxLength: 200 title: type: string description: Row title. maxLength: 24 description: type: string description: Optional row description. maxLength: 72 TemplateMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object required: - template properties: type: type: string enum: - template template: $ref: '#/components/schemas/TemplateObject' ContactsMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object additionalProperties: false required: - contacts properties: type: type: string enum: - contacts contacts: type: array items: $ref: '#/components/schemas/ContactObject' minItems: 1 maxItems: 5 ContactObject: type: object additionalProperties: false properties: addresses: type: array items: $ref: '#/components/schemas/AddressObject' description: Full contact address(es) birthday: type: string format: date description: Date of birth (YYYY-MM-DD format) example: '2012-08-18' emails: type: array items: $ref: '#/components/schemas/EmailObject' description: Contact email address(es) name: $ref: '#/components/schemas/NameObject' description: Contact name object org: $ref: '#/components/schemas/OrganizationObject' description: Contact organization information phones: type: array items: $ref: '#/components/schemas/PhoneObject' description: Contact phone number(s) urls: type: array items: $ref: '#/components/schemas/UrlObject' description: Contact URL(s) AddressObject: type: object additionalProperties: false properties: city: type: string description: City name example: Menlo Park country: type: string description: Full country name example: United States country_code: type: string description: Two-letter ISO country code example: us state: type: string description: State abbreviation example: CA street: type: string description: Street address example: 1 Hacker Way type: type: string enum: - HOME - WORK description: Address type zip: type: string description: ZIP code example: '94025' EmailObject: type: object additionalProperties: false required: - email properties: email: type: string format: email description: Email address example: test@fb.com type: type: string enum: - HOME - WORK description: Email type NameObject: type: object additionalProperties: false properties: first_name: type: string description: First name example: John formatted_name: type: string description: Formatted full name example: John Smith last_name: type: string description: Last name example: Smith middle_name: type: string description: Middle name example: D. prefix: type: string description: Name prefix example: Dr suffix: type: string description: Name suffix example: Jr OrganizationObject: type: object additionalProperties: false properties: company: type: string description: Company name example: WhatsApp department: type: string description: Department name example: Design title: type: string description: Job title example: Manager PhoneObject: type: object additionalProperties: false required: - phone properties: phone: type: string description: Phone number example: +1 (650) 555-1234 type: type: string enum: - HOME - WORK description: Phone type wa_id: type: string description: WhatsApp ID example: '16505551234' UrlObject: type: object additionalProperties: false required: - url properties: type: type: string enum: - HOME - WORK description: URL type url: type: string format: uri description: URL example: https://www.facebook.com MessageResponsePayload: type: object properties: contacts: type: array items: type: object properties: input: type: string example: 48XXXXXXXXX wa_id: type: string example: '48XXXXXXXXX ' example: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: type: array items: type: object properties: id: type: string example: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww message_status: $ref: '#/components/schemas/MessageStatus' example: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww message_status: accepted messaging_product: type: string example: whatsapp MarkMessageRequestPayload: type: object properties: message_id: type: string example: wamid.234123 messaging_product: type: string example: whatsapp status: type: string example: read required: - message_id - messaging_product - status MarkMessageResponsePayload: type: object properties: success: type: boolean example: true QrCodeDetails: type: object description: Complete details of a message QR code required: - code - prefilled_message - deep_link_url properties: code: type: string description: Unique 14-character QR code identifier pattern: ^[A-Z2-7]{14}$ example: ANED2T5QRU7HG1 prefilled_message: type: string description: Pre-filled message text that appears in customer chat example: Hi! I'm interested in your products. Can you help me? deep_link_url: type: string format: uri description: WhatsApp deep link URL for direct conversation initiation example: https://wa.me/message/ANED2T5QRU7HG1 creation_time: type: integer description: Unix timestamp when QR code was created (first-party apps only) example: 1672531200 qr_image_url: type: string format: uri description: QR code image download URL (when format specified in fields) example: https://scontent-iad3-1.xx.fbcdn.net/m1/v/t6/An-H7T8OyTqO07lcRGHlKteuPMKDnx07nua3dGb4i560bVxDscweOV4KoKD_4wCDFoHR_C5LyVjxQISKPxwora1bbFhUEo2nA19ZPLBUVoQSmV12l1x-nuu312jKty-5rmojmde_a0g?ccb=10-5&oh=00_AfASq_vjojFza_9A-HDeRgHM3wZ8yjNprpYBjNKOn8RkSg&oe=64550A9E&_nc_sid=f36290 QrCodeList: type: object description: List of message QR codes with pagination information required: - data properties: data: type: array description: Array of QR code objects items: $ref: '#/components/schemas/QrCodeDetails' paging: type: object description: 'Pagination information for navigating through large result sets. Contains cursors for accessing previous and next pages of results. ' properties: cursors: type: object properties: before: type: string description: Cursor for accessing the previous page of results example: MTYwNDYxNzIwMA== after: type: string description: Cursor for accessing the next page of results example: MTYwNDYxNzIwMQ== previous: type: string format: uri description: URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890123456/message_qrdls?before=MTYwNDYxNzIwMA== next: type: string format: uri description: URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890123456/message_qrdls?after=MTYwNDYxNzIwMQ== CreateQrCodeRequest: type: object description: Request payload for creating a new message QR code required: - prefilled_message properties: prefilled_message: type: string description: Pre-filled message text (max 140 characters) that appears in customer chat maxLength: 140 example: Hi! I'm interested in your products. Can you help me? generate_qr_image: type: string description: QR image format. When specified, response includes qr_image_url enum: - PNG - SVG example: SVG UpdateQrCodeRequest: type: object description: Request payload for updating an existing message QR code required: - code - prefilled_message properties: code: type: string description: 14-character QR code identifier to update pattern: ^[A-Z2-7]{14}$ minLength: 14 maxLength: 14 example: ANED2T5QRU7HG1 prefilled_message: type: string description: New pre-filled message text (max 140 characters) maxLength: 140 example: Hello! I'd like to know more about your latest offers. QrCodeResponse: type: object description: Response containing QR code details after creation or update required: - code - prefilled_message - deep_link_url properties: code: type: string description: 'Unique 14-character identifier for the QR code. This code is used for future updates or deletions. ' pattern: ^[A-Z2-7]{14}$ example: ANED2T5QRU7HG1 prefilled_message: type: string description: 'The pre-filled message text associated with this QR code. This text appears when customers use the QR code. ' example: Hi! I'm interested in your products. Can you help me? deep_link_url: type: string format: uri description: 'WhatsApp deep link URL that can be used directly without QR code scanning. Customers can click this link to start a conversation with the pre-filled message. ' example: https://wa.me/message/ANED2T5QRU7HG1 qr_image_url: type: string format: uri description: 'URL to download the QR code image. Only present if generate_qr_image parameter was specified in the request. Image format matches the requested format. ' example: https://scontent-iad3-2.xx.fbcdn.net/m1/v/t6/An-psFmLBls2NFXnhhkSVqwIHEqCTQoNKTLxxlOeci0Wbsukd2RLiwZalHrXwqT5RTFSzOhyw6OLvJJO0itaQtJI1BS2WkNcV67wR3GNx7ZX1tFSNCbpo1e6KPptKF1GbVGzmUfkgSPX?ccb=10-5&oh=00_AfAOAr6oRA2OKV_Ur3GUh4em57sACxUkfhXHsObiFrxOsA&oe=64DCCEF6&_nc_sid=5a413f GraphAPIError_2: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Invalid prefilled_message length. Maximum 140 characters allowed type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Invalid Request error_user_msg: type: string description: User-friendly error message for display purposes example: The message text you provided is too long. Please keep it under 140 characters. QrCodeResponse_1: type: object description: Individual QR code response containing a single QR code in data array format required: - data properties: data: type: array description: Array containing the single QR code object (maintains consistency with collection endpoint) items: $ref: '#/components/schemas/QrCodeDetails' minItems: 1 maxItems: 1 DeleteQrCodeResponse: type: object description: Response confirming successful QR code deletion required: - success properties: success: type: boolean description: Indicates whether the QR code was successfully deleted example: true GraphAPIError_3: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: QR code not found type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: QR Code Not Found error_user_msg: type: string description: User-friendly error message for display purposes example: The QR code you're trying to access doesn't exist or has been deleted EncryptedMessageRequest: type: object additionalProperties: false properties: messaging_product: type: string description: Messaging service used for the request. Use whatsapp. example: whatsapp enum: - whatsapp encrypted_contents: type: string description: JWE payload with encrypted messages structure. This should be a valid JWE token containing the encrypted message payload. example: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ... required: - messaging_product - encrypted_contents EncryptedMessageResponse: type: object properties: encrypted_contents: type: string description: JWE payload with encrypted messages response structure. Contains the encrypted response from the WhatsApp Business API. example: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ... required: - encrypted_contents ErrorResponse_2: type: object properties: error: type: object properties: message: type: string description: Error message describing what went wrong example: Invalid JWE token format type: type: string description: Error type example: OAuthException code: type: integer description: Error code example: 400 error_subcode: type: integer description: Error subcode for more specific error identification example: 1234567 OfficialBusinessAccountStatus: type: object description: Official Business Account status information for a WhatsApp Business Account phone number required: - id - oba_status - status_message properties: id: type: string description: Unique identifier for the WhatsApp Business Account phone number example: '1234567890123456' oba_status: $ref: '#/components/schemas/WhatsAppBusinessAppealStatus' status_message: type: string description: Human-readable message describing the current Official Business Account status example: Your Official Business Account application is under review OfficialBusinessAccountUpdateRequest: type: object description: Request payload for updating Official Business Account status required: - business_website_url - primary_country_of_operation properties: business_website_url: type: string format: uri description: Official business website URL example: https://www.meta.com primary_country_of_operation: type: string description: Primary country where the business operates example: US primary_language: type: string description: Primary language used by the business example: en_US parent_business_or_brand: type: string description: Parent business or brand name example: Acme Corporation Ltd maxLength: 255 supporting_links: type: array description: Supporting links that demonstrate business notability (minimum 5, maximum 10) minItems: 5 maxItems: 10 items: type: string format: uri example: - https://www.example.com/press1 - https://www.example.com/press2 - https://www.example.com/press3 - https://www.example.com/press4 - https://www.example.com/press5 additional_supporting_information: type: string description: Additional information to support the Official Business Account application example: Leading provider of innovative business solutions maxLength: 1000 OfficialBusinessAccountUpdateResponse: type: object description: Response for Official Business Account status update operation required: - success - message properties: success: type: boolean description: Indicates if the operation was successful example: true message: type: string description: Human-readable message describing the result of the operation example: Official Business Account application submitted successfully updated_status: $ref: '#/components/schemas/OfficialBusinessAccountStatus' tracking_id: type: string description: Unique identifier for tracking the application/update request example: oba_req_1234567890abcdef WhatsAppBusinessAppealStatus: type: string description: Official Business Account appeal and verification status enum: - PENDING - APPROVED - REJECTED - UNDER_REVIEW - EXPIRED - CANCELLED example: PENDING PhoneNumberInfo: type: object description: Phone number information and status properties: id: type: string description: The ID associated with the phone number example: '1906385232743451' display_phone_number: type: string description: The string representation of the phone number example: +1 631-555-5555 verified_name: type: string description: The verified name associated with the phone number example: Jasper's Market quality_rating: type: string enum: - GREEN - YELLOW - RED - NA description: 'The quality rating of the phone number based on how messages have been received by recipients in recent days. - GREEN: High Quality - YELLOW: Medium Quality - RED: Low Quality - NA: Quality has not been determined ' example: GREEN code_verification_status: type: string enum: - VERIFIED - UNVERIFIED description: 'The two-step verification status for the phone number indicating whether the number has completed two-step verification. - VERIFIED: Phone number has completed two-step verification - UNVERIFIED: Two-step verification is pending or incomplete ' example: VERIFIED name_status: type: string enum: - APPROVED - AVAILABLE_WITHOUT_REVIEW - DECLINED - EXPIRED - PENDING_REVIEW - NONE description: 'The status of a display name associated with a specific phone number. - APPROVED: The name has been approved. You can download your certificate now. - AVAILABLE_WITHOUT_REVIEW: The certificate for the phone is available and display name is ready to use without review. - DECLINED: The name has not been approved. You cannot download your certificate. - EXPIRED: Your certificate has expired and can no longer be downloaded. - PENDING_REVIEW: Your name request is under review. You cannot download your certificate. - NONE: No certificate is available. ' example: AVAILABLE_WITHOUT_REVIEW MessageRequest: type: object description: Request to send a message via WhatsApp Business API required: - messaging_product - to - type properties: messaging_product: type: string enum: - whatsapp description: Messaging service used for the request example: whatsapp recipient_type: type: string enum: - individual - group description: Type of recipient default: individual example: individual to: type: string description: Recipient's phone number (with country code) or group ID example: '+1234567890' type: type: string enum: - text - image - audio - video - document - location - contacts - template - interactive - reaction - sticker description: Type of message being sent example: text text: $ref: '#/components/schemas/TextMessage' context: $ref: '#/components/schemas/MessageContext' TextMessage_1: type: object required: - body properties: body: type: string description: Text content of the message maxLength: 4096 example: Hello, this is a test message! preview_url: type: boolean description: Whether to show URL preview default: false example: false MessageContext_1: type: object properties: message_id: type: string description: ID of message being replied to example: wamid.HBgLMTY3NzE4NDM4NjAVAgARGBI5QTRCMEM4RjA2NzY4RTlBNAA= SettingsRequest: type: object description: Request to update phone number settings properties: calling: $ref: '#/components/schemas/CallingSettings' CallingSettings: type: object required: - status properties: status: type: string enum: - enabled - disabled description: Enable or disable calling feature example: enabled call_icon_visibility: type: string enum: - visible - hidden description: Control visibility of the call icon example: visible RegisterRequest: type: object required: - messaging_product - pin properties: messaging_product: type: string enum: - whatsapp description: Messaging service used for the request example: whatsapp pin: type: string pattern: ^[0-9]{6}$ description: 6-digit PIN for two-step verification example: '123456' VerifyCodeRequest: type: object required: - code properties: code: type: string pattern: ^[0-9]{6}$ description: 6-digit verification code received via SMS or voice example: '123456' TwoStepVerificationRequest: type: object required: - pin properties: pin: type: string pattern: ^[0-9]{6}$ description: 6-digit PIN for two-step verification example: '123456' PhoneNumberStatusUpdateRequest: type: object description: Request to update phone number status and configuration properties: connection_status: $ref: '#/components/schemas/WhatsAppBusinessAccountToNumberStatus' webhook_url: type: string format: uri description: Webhook URL for receiving message notifications example: https://your-domain.com/webhook whatsapp_business_api_data: $ref: '#/components/schemas/WhatsAppBusinessApiData' pin: type: string description: Two-step verification PIN (can be empty string) example: '123456' search_visibility: $ref: '#/components/schemas/WAAPIBusinessGlobalSearchStateStatus' webhook_configuration: $ref: '#/components/schemas/WebhookConfiguration' new_display_name: type: string description: New display name for name verification request minLength: 2 maxLength: 75 example: My Business Name username: type: string description: Username for the WhatsApp Business Account example: mybusiness WhatsAppBusinessApiData: type: object description: WhatsApp Business API configuration data properties: pin: type: string description: Two-step verification PIN (can be empty string) example: '123456' show_security_notifications: type: boolean description: Whether to show security notifications example: true notify_user_change_number: type: boolean description: Whether to notify users when changing number example: false WebhookConfiguration: type: object description: Webhook configuration settings required: - override_callback_uri properties: override_callback_uri: type: string format: uri description: Override callback URI for webhook notifications (can be empty string) example: https://your-domain.com/webhook/override verify_token: type: string description: Token used to verify webhook requests example: YOUR_VERIFY_TOKEN WhatsAppBusinessAccountToNumberStatus: type: string description: Connection status between WhatsApp Business Account and phone number enum: - CONNECTED - DISCONNECTED - PENDING - FLAGGED - RESTRICTED - RATE_LIMITED - MESSAGING_LIMIT_TIER_0 - MESSAGING_LIMIT_TIER_1 - MESSAGING_LIMIT_TIER_2 - MESSAGING_LIMIT_TIER_3 - MESSAGING_LIMIT_TIER_4 example: CONNECTED WAAPIBusinessGlobalSearchStateStatus: type: string description: Search visibility status for the WhatsApp Business Account enum: - VISIBLE - HIDDEN example: VISIBLE MessageResponse: type: object description: Response from sending a message required: - messaging_product - contacts - messages properties: messaging_product: type: string enum: - whatsapp description: Messaging service example: whatsapp contacts: type: array items: $ref: '#/components/schemas/ContactResponse' description: Contact information messages: type: array items: $ref: '#/components/schemas/MessageResponseItem' description: Message information ContactResponse: type: object required: - input properties: input: type: string description: Input phone number example: '+1234567890' wa_id: type: string description: WhatsApp ID example: '1234567890' MessageResponseItem: type: object required: - id properties: id: type: string description: Message ID example: wamid.HBgLMTY3NzE4NDM4NjAVAgARGBI5QTRCMEM4RjA2NzY4RTlBNAA= SuccessResponse: type: object description: Generic success response required: - success properties: success: type: boolean description: Operation success status example: true GraphAPIError_4: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Invalid parameter type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false DeregisterResponse: type: object description: Response indicating successful phone number deregistration required: - success properties: success: type: boolean description: Indicates whether the deregistration was successful example: true GraphAPIError_5: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Phone number is not currently linked in Facebook Hosted System type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Invalid Request error_user_msg: type: string description: User-friendly error message for display purposes example: The phone number cannot be deregistered at this time WhatsAppMessageHistory: type: object description: WhatsApp message history entry with delivery status information required: - id - message_id properties: id: type: string description: Unique identifier for the message history entry example: '1234567890123456' message_id: type: string description: WhatsApp message ID (WAMID) for the message example: wamid.HBgLMTY0NzM3Nzc3NzUVAgARGBI5QTNEQTA2RjdGMEY4RTRGAA== events: type: object description: Message delivery status events and occurrences properties: data: type: array description: Array of delivery status events items: $ref: '#/components/schemas/MessageDeliveryStatusEvent' paging: $ref: '#/components/schemas/PaginationInfo' MessageDeliveryStatusEvent: type: object description: Message delivery status event occurrence required: - id - delivery_status - timestamp properties: id: type: string description: Unique identifier for the delivery status event example: '2345678901234567' delivery_status: $ref: '#/components/schemas/WhatsAppMessageDeliveryStatus' webhook_update_state: $ref: '#/components/schemas/WebhookUpdateState' timestamp: type: integer format: int64 description: Unix timestamp when the delivery status event occurred example: 1640995200 application: type: object description: Application information for the event properties: id: type: string description: Application ID that processed the event example: '9876543210987654' webhook_uri: type: string format: uri description: Webhook URI where the event was delivered example: https://example.com/webhook error_description: type: string description: Error description if the delivery failed example: Webhook endpoint returned HTTP 500 WhatsAppMessageDeliveryStatus: type: string description: Message delivery status enum: - SENT - DELIVERED - READ - FAILED - DELETED example: DELIVERED WebhookUpdateState: type: string description: State of webhook update delivery enum: - PENDING - DELIVERED - FAILED - RETRYING example: DELIVERED MessageHistoryResponse: type: object description: Paginated response containing message history entries properties: data: type: array description: Array of message history entries items: $ref: '#/components/schemas/WhatsAppMessageHistory' paging: $ref: '#/components/schemas/PaginationInfo' PaginationInfo: type: object description: Pagination information for navigating through results properties: cursors: type: object description: Pagination cursors for navigation properties: before: type: string description: Cursor for the previous page of results example: MAZDZD after: type: string description: Cursor for the next page of results example: MTAxNTExOTQ1MjAwNzI5NDE= previous: type: string format: uri description: URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890123456/message_history?before=MAZDZD next: type: string format: uri description: URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890123456/message_history?after=MTAxNTExOTQ1MjAwNzI5NDE= WhatsAppBusinessPhoneNumberRegistrationRequest: type: object description: Request payload for registering a WhatsApp Business phone number required: - messaging_product - pin properties: messaging_product: type: string description: Must be 'whatsapp' to indicate WhatsApp Business messaging product enum: - whatsapp example: whatsapp pin: type: string description: 6-digit PIN for two-step verification setup pattern: ^[0-9]{6}$ minLength: 6 maxLength: 6 example: '123456' backup: $ref: '#/components/schemas/WhatsAppBusinessAccountBackup' data_localization_region: $ref: '#/components/schemas/WhatsAppDataLocalizationRegion' meta_store_retention_minutes: type: integer description: Message retention period in minutes (deprecated in v21+) minimum: 60 maximum: 60 example: 60 WhatsAppBusinessAccountBackup: type: object description: Backup data for migrating existing WhatsApp Business accounts properties: password: type: string description: Backup password for account migration example: YOUR_BACKUP_PASSWORD data: type: string description: Encrypted backup data for account migration example: YOUR_BACKUP_DATA WhatsAppDataLocalizationRegion: type: string description: Data localization region for message storage (deprecated in v21+) enum: - AE - AU - BH - BR - CA - CH - DE - GB - ID - IN - JP - KR - SG - ZA example: AE WhatsAppBusinessPhoneNumberRegistrationResponse: type: object description: Response from phone number registration request required: - success properties: success: type: boolean description: Indicates whether the registration was successful example: true GraphAPIError_6: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Invalid parameter type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Registration Failed error_user_msg: type: string description: User-friendly error message for display purposes example: Phone number registration could not be completed RequestCodeRequest: type: object description: Request body for requesting a verification code required: - code_method - language properties: code_method: type: string description: Method for receiving the verification code enum: - SMS - VOICE example: SMS language: type: string description: Language locale for the verification message pattern: ^[a-z]{2}_[A-Z]{2}$ minLength: 5 maxLength: 5 example: en_US RequestCodeResponse: type: object description: Response after successfully requesting a verification code required: - success properties: success: type: boolean description: Indicates whether the verification code request was successful example: true CallingSettingsRequest: type: object properties: calling: $ref: '#/components/schemas/CallingSettings' required: - calling CallingSettings_1: type: object properties: status: type: string enum: - enabled - disabled description: Enable or disable calling feature call_icon_visibility: type: string enum: - visible - hidden description: Control visibility of the call icon video: $ref: '#/components/schemas/VideoSettings' sip: $ref: '#/components/schemas/SipSettings' srtp_key_exchange_protocol: type: string enum: - DTLS-SRTP - SDES-SRTP description: SRTP key exchange protocol required: - status VideoSettings: type: object properties: status: type: string enum: - enabled - disabled description: Enable or disable video calling required: - status SipSettings: type: object properties: status: type: string enum: - enabled - disabled description: Enable or disable SIP calling required: - status UserIdentityChangeSettingsRequest: type: object properties: user_identity_change: $ref: '#/components/schemas/UserIdentityChangeSettings' required: - user_identity_change UserIdentityChangeSettings: type: object properties: enabled: type: boolean description: Enable or disable user identity change notifications required: - enabled PayloadEncryptionSettingsRequest: type: object properties: payload_encryption: $ref: '#/components/schemas/PayloadEncryptionSettings' required: - payload_encryption PayloadEncryptionSettings: type: object properties: status: type: string enum: - enabled - disabled description: Enable or disable payload encryption client_encryption_key: type: string description: 'Base64-encoded public key for payload encryption (required when enabling encryption) ' required: - status StorageConfigurationSettingsRequest: type: object properties: storage_configuration: $ref: '#/components/schemas/StorageConfigurationSettings' required: - storage_configuration StorageConfigurationSettings: type: object properties: enabled: type: boolean description: Enable or disable custom storage configuration region: type: string description: Data storage region required: - enabled PhoneNumberSettingsResponse: type: object properties: calling: $ref: '#/components/schemas/CallingSettingsResponse' payload_encryption: $ref: '#/components/schemas/PayloadEncryptionSettingsResponse' storage_configuration: $ref: '#/components/schemas/StorageConfigurationSettingsResponse' required: - calling - storage_configuration CallingSettingsResponse: type: object properties: status: type: string enum: - enabled - disabled description: Current calling feature status call_icon_visibility: type: string enum: - visible - hidden description: Current call icon visibility setting ip_addresses: type: object properties: default: type: array items: type: string description: Default IP addresses for calling required: - default callback_permission_status: type: string enum: - enabled - disabled description: Callback permission status srtp_key_exchange_protocol: type: string enum: - DTLS-SRTP - SDES-SRTP description: SRTP key exchange protocol (optional) call_hours: $ref: '#/components/schemas/CallHoursSettings' call_icons: $ref: '#/components/schemas/CallIconsSettings' sip: $ref: '#/components/schemas/SipSettingsResponse' video: $ref: '#/components/schemas/VideoSettingsResponse' audio: $ref: '#/components/schemas/AudioSettingsResponse' restrictions: $ref: '#/components/schemas/CallingRestrictionsResponse' required: - status - call_icon_visibility - ip_addresses - callback_permission_status CallHoursSettings: type: object properties: status: type: string enum: - enabled - disabled description: Call hours feature status timezone: type: string description: Timezone for call hours day_of_week_start: type: string description: Start day of the week required: - status CallIconsSettings: type: object properties: restrict_to_user_countries: type: array items: type: string description: List of countries where call icons are restricted SipSettingsResponse: type: object properties: status: type: string enum: - enabled - disabled description: SIP calling status servers: type: array items: $ref: '#/components/schemas/SipServerInfo' description: SIP server configuration required: - status SipServerInfo: type: object properties: app_id: type: string description: Application ID for SIP server hostname: type: string description: SIP server hostname port: type: integer description: SIP server port (optional) password: type: string description: SIP password (only included when include_sip_credentials=true) required: - app_id - hostname VideoSettingsResponse: type: object properties: status: type: string enum: - enabled - disabled description: Video calling status required: - status AudioSettingsResponse: type: object properties: status: type: string enum: - enabled - disabled description: Audio calling status CallingRestrictionsResponse: type: object properties: restrictions: type: array items: type: object properties: type: type: string description: Type of restriction expiration: type: integer format: int64 description: Expiration timestamp for the restriction PayloadEncryptionSettingsResponse: type: object properties: status: type: string enum: - enabled - disabled description: Payload encryption status client_encryption_key_fingerprint: type: string description: Client encryption key fingerprint (when encryption is enabled) cloud_encryption_key: type: string description: Cloud encryption key (when encryption is enabled) required: - status StorageConfigurationSettingsResponse: type: object properties: status: type: string enum: - default - in_country_storage_enabled description: Data storage configuration status data_localization_region: type: string description: Data localization region (when in-country storage is enabled) required: - status VerifyCodeRequest_1: type: object description: Request payload for phone number verification code verification required: - code properties: code: type: string description: The verification code received via SMS or voice call pattern: ^[0-9]{6}$ example: '123456' VerifyCodeResponse: type: object description: Response from phone number verification code verification required: - success properties: success: type: boolean description: Indicates whether the verification code was successfully verified example: true id: type: string description: The phone number ID that was verified example: '1234567890123456' GraphAPIError_7: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Invalid verification code type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Verification Failed error_user_msg: type: string description: User-friendly error message for display purposes example: The verification code you entered is invalid or has expired WhatsAppBusinessEncryptionInfo: type: object description: Business encryption public key information and verification status required: - business_public_key - business_public_key_signature_status properties: business_public_key: type: string description: 'The business public key used for encrypting message payloads. This key is used to encrypt data channel requests and responses. ' example: '-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA... -----END PUBLIC KEY----- ' business_public_key_signature_status: $ref: '#/components/schemas/BusinessPublicKeyVerificationStatus' BusinessPublicKeyVerificationStatus: type: string description: Status of business public key signature verification enum: - VALID - MISMATCH example: VALID WhatsAppBusinessEncryptionUploadRequest: type: object description: Request payload for uploading business public key required: - business_public_key properties: business_public_key: type: string description: 'The business public key in PEM format to be uploaded and signed. Must be a valid RSA public key that will be used for payload encryption. ' example: '-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA... -----END PUBLIC KEY----- ' WhatsAppBusinessEncryptionUploadResponse: type: object description: Response after successful public key upload required: - success properties: success: type: boolean description: Indicates whether the public key was successfully uploaded and signed example: true GraphAPIError_8: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Business public key is invalid type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Invalid Public Key error_user_msg: type: string description: User-friendly error message for display purposes example: The provided public key format is invalid WhatsAppBusinessProfile: type: object description: WhatsApp Business Profile information and settings required: - messaging_product properties: messaging_product: type: string description: The messaging service used for the request enum: - whatsapp example: whatsapp about: type: string description: The text to display in business profile's About section minLength: 1 maxLength: 139 example: Welcome to our business! We provide excellent service. address: type: string description: The address of the business maxLength: 256 example: 123 Business Street, City, State 12345 description: type: string description: Description of the business maxLength: 256 example: We are a leading provider of quality products and services. email: type: string description: The contact email address of the business format: email maxLength: 128 example: contact@business.com profile_picture_url: type: string description: URL of the business profile picture format: uri example: https://pps.whatsapp.net/v/profile_picture_url websites: type: array description: URLs associated with the business maxItems: 2 items: type: string format: uri maxLength: 256 example: - https://www.business.com - https://www.facebook.com/business vertical: $ref: '#/components/schemas/WhatsAppBusinessVertical' WhatsAppBusinessProfileUpdateRequest: type: object description: Request payload for updating WhatsApp Business Profile required: - messaging_product properties: messaging_product: type: string description: The messaging service used for the request enum: - whatsapp example: whatsapp about: type: string description: The text to display in business profile's About section minLength: 1 maxLength: 139 example: Welcome to our business! We provide excellent service. address: type: string description: The address of the business maxLength: 256 example: 123 Business Street, City, State 12345 description: type: string description: Description of the business maxLength: 256 example: We are a leading provider of quality products and services. email: type: string description: The contact email address of the business format: email maxLength: 128 example: contact@business.com profile_picture_handle: type: string description: The handle of the profile picture generated from Resumable Upload API example: 4:VGVzdC5wbmc=:aW1hZ2UvanBlZw==:ARat4Mt-L09JON3f30SmDkdyPSuyBkDDYiB4TFXuXISjdgHoNp2b7j882_9Jzr2tPrdKxi92UygyVzTivJiOvmebMpZ6MIjTik3gTyI3ZCQAgQ:e:1659995302:2022308451254161:636685196:ARZf1ftR5N6-qSLtklU websites: type: array description: URLs associated with the business maxItems: 2 items: type: string format: uri maxLength: 256 example: - https://www.business.com - https://www.facebook.com/business vertical: $ref: '#/components/schemas/WhatsAppBusinessVertical' WhatsAppBusinessVertical: type: string description: The industry type of the business enum: - OTHER - AUTO - BEAUTY - APPAREL - EDU - ENTERTAIN - EVENT_PLAN - FINANCE - GROCERY - GOVT - HOTEL - HEALTH - NONPROFIT - PROF_SERVICES - RETAIL - TRAVEL - RESTAURANT - ALCOHOL - ONLINE_GAMBLING - PHYSICAL_GAMBLING - OTC_DRUGS example: RESTAURANT WhatsAppBusinessProfileResponse: type: object description: Response containing business profile information properties: data: type: array items: type: object properties: business_profile: $ref: '#/components/schemas/WhatsAppBusinessProfile' example: - business_profile: messaging_product: whatsapp about: Welcome to our business! We provide excellent service. address: 123 Business Street, City, State 12345 description: We are a leading provider of quality products and services. email: contact@business.com profile_picture_url: https://pps.whatsapp.net/v/profile_picture_url websites: - https://www.business.com - https://www.facebook.com/business vertical: RESTAURANT WhatsAppBusinessProfileUpdateResponse: type: object description: Response after updating business profile properties: success: type: boolean description: Indicates whether the update was successful example: true BusinessComplianceInfo: type: object description: WhatsApp Business Account compliance information and regulatory details required: - whatsapp_business_account_id properties: whatsapp_business_account_id: type: string description: Unique identifier for the WhatsApp Business Account example: '1234567890123456' messaging_product: type: string description: Messaging product identifier, always 'whatsapp' for WhatsApp Business enum: - whatsapp example: whatsapp entity_name: type: string description: Legal name of the business entity example: Lucky Shrub Private Limited entity_type: type: string description: Type of business entity (e.g., Partnership, Private Limited Company, etc.) example: Partnership entity_type_custom: type: string description: Custom entity type description when standard types don't apply example: Limited Liability Partnership is_registered: type: boolean description: Whether the business entity is officially registered with regulatory authorities example: true grievance_officer_details: $ref: '#/components/schemas/GrievanceOfficerDetails' customer_care_details: $ref: '#/components/schemas/CustomerCareDetails' GrievanceOfficerDetails: type: object description: Contact information for the designated grievance officer properties: name: type: string description: Full name of the grievance officer example: Chandravati P. email: type: string format: email description: Email address for grievance officer contact example: chandravati@luckyshrub.com mobile_number: type: string description: Mobile phone number for grievance officer (with country code) pattern: ^\\+[1-9]\\d{1,14}$ example: '+913854559033' landline_number: type: string description: Landline phone number for grievance officer (with country code) pattern: ^\\+[1-9]\\d{1,14}$ example: '+913857614343' CustomerCareDetails: type: object description: Contact information for customer care and support properties: email: type: string format: email description: Email address for customer care contact example: support@luckyshrub.com mobile_number: type: string description: Mobile phone number for customer care (with country code) pattern: ^\\+[1-9]\\d{1,14}$ example: '+913854559033' landline_number: type: string description: Landline phone number for customer care (with country code) pattern: ^\\+[1-9]\\d{1,14}$ example: '+913857614343' BusinessComplianceInfoUpdateRequest: type: object description: Request object for updating WhatsApp Business Account compliance information required: - messaging_product - entity_name - entity_type - grievance_officer_details - customer_care_details properties: messaging_product: type: string description: Messaging product identifier, must be 'whatsapp' enum: - whatsapp example: whatsapp entity_name: type: string description: Legal name of the business entity minLength: 2 maxLength: 128 example: Lucky Shrub Private Limited entity_type: $ref: '#/components/schemas/BusinessEntityType' entity_type_custom: type: string description: Custom entity type description when entity_type is "OTHER". Required for OTHER entity type. maxLength: 1024 example: Limited Liability Partnership is_registered: type: boolean description: Whether the business entity is officially registered with regulatory authorities. Can only be used with "OTHER" or "PARTNERSHIP" entity types. example: true grievance_officer_details: $ref: '#/components/schemas/GrievanceOfficerUpdateDetails' customer_care_details: $ref: '#/components/schemas/CustomerCareUpdateDetails' BusinessEntityType: type: string description: Type of business entity for compliance purposes enum: - LIMITED_LIABILITY_PARTNERSHIP - SOLE_PROPRIETORSHIP - PARTNERSHIP - PUBLIC_COMPANY - PRIVATE_COMPANY - OTHER example: PARTNERSHIP GrievanceOfficerUpdateDetails: type: object description: Contact information for the designated grievance officer required: - name - email properties: name: type: string description: Full name of the grievance officer maxLength: 128 example: Chandravati P. email: type: string format: email description: Email address for grievance officer contact maxLength: 128 example: chandravati@luckyshrub.com mobile_number: type: string description: Mobile phone number for grievance officer (with country code) pattern: ^\\+[1-9]\\d{1,14}$ maxLength: 20 example: '+913854559033' landline_number: type: string description: Landline phone number for grievance officer (with country code) pattern: ^\\+[1-9]\\d{1,14}$ maxLength: 20 example: '+913857614343' CustomerCareUpdateDetails: type: object description: Contact information for customer care and support required: - email properties: email: type: string format: email description: Email address for customer care contact maxLength: 128 example: support@luckyshrub.com mobile_number: type: string description: Mobile phone number for customer care (with country code) pattern: ^\\+[1-9]\\d{1,14}$ maxLength: 20 example: '+913854559033' landline_number: type: string description: Landline phone number for customer care (with country code) pattern: ^\\+[1-9]\\d{1,14}$ maxLength: 20 example: '+913857614343' Error: type: object properties: code: type: integer description: Error code message: type: string description: Error message title: type: string description: Error title error_data: type: object properties: details: type: string description: Error details GroupInfo: type: object properties: id: type: string description: Group ID messaging_product: type: string example: whatsapp join_approval_mode: type: string enum: - approval_required - auto_approve description: Join approval mode for the group subject: type: string description: Group subject example: Artificial Intelligence Insights description: type: string description: Group description example: Explore AI developments, share knowledge, and discuss the future of artificial intelligence with fellow enthusiasts and experts. suspended: type: boolean description: Returns true if the group has been suspended by WhatsApp creation_timestamp: type: integer description: UNIX timestamp in seconds at which the group was created example: 683731200 participants: type: array description: List of participants in the group items: type: object properties: wa_id: type: string description: WhatsApp user ID total_participant_count: type: integer description: Total number of participants in the group, excluding your business example: 6 WhatsAppMessageHistoryEventsEdge: type: object description: Edge containing message delivery status occurrence with pagination cursor required: - node properties: cursor: type: string description: Pagination cursor for this edge example: MTAxNTExOTQ1MjAwNzI5NDE= node: $ref: '#/components/schemas/WhatsAppBusinessMessageDeliveryStatusOccurrence' WhatsAppBusinessMessageDeliveryStatusOccurrence: type: object description: Message delivery status occurrence with detailed event information required: - id - delivery_status - occurrence_timestamp properties: id: type: string description: Unique identifier for the message delivery status occurrence example: '2345678901234567' delivery_status: $ref: '#/components/schemas/WhatsAppMessageDeliveryStatus' error_description: type: string description: Error description if the delivery encountered an error example: Message delivery failed due to invalid phone number occurrence_timestamp: type: integer format: int64 description: Unix timestamp when the delivery status occurrence happened example: 1640995200 status_timestamp: type: integer format: int64 description: Unix timestamp when the status was recorded example: 1640995205 application: $ref: '#/components/schemas/ApplicationNode' WhatsAppMessageDeliveryStatus_1: type: string description: Message delivery status enum: - ACCEPTED - DELIVERED - ERROR - READ - SENT example: DELIVERED ApplicationNode_1: type: object description: Meta application that processed the delivery status event properties: id: type: string description: Unique identifier for the Meta application example: '9876543210987654' name: type: string description: Name of the Meta application example: WhatsApp Business API Client MessageHistoryEventsResponse: type: object description: Paginated response containing message history events properties: data: type: array description: Array of message history event edges items: $ref: '#/components/schemas/WhatsAppMessageHistoryEventsEdge' paging: $ref: '#/components/schemas/PaginationInfo' PaginationInfo_1: type: object description: Pagination information for navigating through results properties: cursors: type: object description: Pagination cursors for navigation properties: before: type: string description: Cursor for the previous page of results example: MAZDZD after: type: string description: Cursor for the next page of results example: MTAxNTExOTQ1MjAwNzI5NDE= previous: type: string format: uri description: URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890123456/events?before=MAZDZD next: type: string format: uri description: URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890123456/events?after=MTAxNTExOTQ1MjAwNzI5NDE= WhatsAppBusinessAccountMigrationIntent: type: object description: WhatsApp Business Account migration intent details and status required: - id - status properties: id: type: string description: Unique identifier for the migration intent example: '1234567890123456' status: $ref: '#/components/schemas/WhatsAppBusinessAccountMigrationStatus' WhatsAppBusinessAccountMigrationStatus: type: string description: Current status of the WhatsApp Business Account migration intent enum: - ACCEPTED - COMPLETED - INITIATED - REJECTED example: INITIATED PreVerifiedPhoneNumberValidation: type: object description: Pre-verified phone number validation details and status required: - is_input_id_valid properties: id: type: string description: Unique identifier for the pre-verified phone number example: '1234567890123456' country_prefix: type: integer description: Country code prefix for the phone number minimum: 1 maximum: 999 example: 1 display_phone_number: type: string description: Formatted display version of the phone number example: +1 (555) 123-4567 error_msg: type: string description: Error message if validation failed example: Phone number format is invalid is_input_id_valid: type: boolean description: Whether the provided phone number ID is valid example: true WhatsAppBusinessPreVerifiedPhoneNumberPartnersResponse: type: object description: Response containing partner businesses for a pre-verified phone number required: - data properties: data: type: array description: List of partner businesses with access to the pre-verified phone number items: $ref: '#/components/schemas/BusinessPartner' paging: $ref: '#/components/schemas/CursorPaging' BusinessPartner: type: object description: Business entity that has partner access to the pre-verified phone number required: - id - name properties: id: type: string description: Unique identifier for the partner business example: '1234567890123456' name: type: string description: Name of the partner business example: Partner Business Solutions Inc created_time: type: string format: date-time description: ISO 8601 timestamp when the business was created example: '2023-01-15T10:30:00Z' updated_time: type: string format: date-time description: ISO 8601 timestamp when the business was last updated example: '2023-06-20T14:45:30Z' verification_status: type: string description: Business verification status enum: - not_verified - pending - verified example: verified primary_page: type: string description: Primary Facebook Page ID associated with the business example: '9876543210987654' timezone_id: type: integer description: Timezone identifier for the business location example: 1 two_factor_type: type: string description: Two-factor authentication method configured for the business enum: - none - admin_required example: admin_required CursorPaging_5: type: object description: Cursor-based pagination information properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page of data that has been returned example: MAZDZD after: type: string description: Cursor pointing to the end of the page of data that has been returned example: MTAxNTExOTQ1MjAwNzI5NDE= next: type: string description: Graph API endpoint URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890123456/partners?after=MTAxNTExOTQ1MjAwNzI5NDE%3D previous: type: string description: Graph API endpoint URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890123456/partners?before=MAZDZD RequestCodeRequest_1: type: object description: Request body for requesting verification code required: - code_method - language properties: code_method: $ref: '#/components/schemas/PhoneVerificationMethodCode' language: type: string description: 'Language/locale code for the verification message. Must be a valid locale identifier. The verification message will be sent in this language if supported. Supports various formats including xx_XX, xx-XX, and extended locale codes. ' example: en_US PhoneVerificationMethodCode: type: string description: Method for receiving the verification code enum: - SMS - VOICE example: SMS RequestCodeResponse_1: type: object description: Response after successfully requesting verification code required: - success properties: success: type: boolean description: Indicates whether the verification code request was successful example: true VerifyCodeRequest_2: type: object description: Request payload for verifying OTP code required: - code properties: code: type: string description: 'The numeric verification code received via SMS or voice call. This code is provided after calling the request_code endpoint. ' pattern: ^[0-9]+$ minLength: 4 maxLength: 8 example: '123456' VerifyCodeResponse_1: type: object description: Response indicating successful code verification required: - success properties: success: type: boolean description: Indicates whether the code verification was successful example: true GraphAPIError_9: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Invalid verification code type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Verification Failed error_user_msg: type: string description: User-friendly error message for display purposes example: The verification code you entered is invalid or has expired WhatsAppBusinessSolutionAccessToken: type: object description: Granular BISU access token response for Multi-Partner Solution partners required: - access_token - expires_at properties: access_token: type: string description: Granular BISU access token for accessing customer business resources example: YOUR_GRANULAR_BISU_ACCESS_TOKEN expires_at: type: integer format: int64 description: Unix timestamp indicating when the access token expires example: 1735689600 WhatsAppBusinessSolution_1: type: object description: WhatsApp Business Multi-Partner Solution object with core node fields only properties: id: type: string description: Unique identifier for the WhatsApp Business Solution example: '12345678901234567' name: type: string description: Human-readable name for the solution (UGC text, 2-75 characters) minLength: 2 maxLength: 75 example: Sample Business Solution Partnership status: $ref: '#/components/schemas/WhatsAppBusinessSolutionStatus' status_for_pending_request: $ref: '#/components/schemas/WhatsAppBusinessSolutionPendingStatus' owner_permissions: type: array description: Array of permissions granted to the solution owner items: $ref: '#/components/schemas/WhatsAppBusinessAccountPermissionTask' example: - MANAGE - DEVELOP required: - id - name - status - status_for_pending_request WhatsAppBusinessSolutionStatus_1: type: string description: Current status of the WhatsApp Business Solution enum: - DRAFT - INITIATED - ACTIVE - REJECTED - DEACTIVATED - PENDING_DEACTIVATION example: DEACTIVATED WhatsAppBusinessSolutionPendingStatus_1: type: string description: Status of any pending requests for the solution enum: - PENDING_ACTIVATION - PENDING_DEACTIVATION - NONE example: NONE GraphAPIError_10: type: object description: Standard Graph API error response properties: error: type: object properties: message: type: string description: Human-readable error message example: Invalid solution state for deactivation acceptance type: type: string description: Error type classification enum: - OAuthException - GraphMethodException - GraphAPIException example: GraphMethodException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode example: 33 fbtrace_id: type: string description: Internal trace ID for debugging example: FAKE_TRACE_ID_12345 is_transient: type: boolean description: Whether this error might be resolved by retrying example: false error_user_title: type: string description: User-friendly error title example: Request Cannot Be Processed error_user_msg: type: string description: User-friendly error message example: The solution is not in a valid state to accept deactivation requests. required: - message - type - code required: - error WhatsAppBusinessSolutionAcceptRequest: type: object description: Request payload for accepting a Multi-Partner Solution invitation required: - partner_app_id properties: partner_app_id: type: string description: 'ID of the partner application accepting the solution invitation. This must match the app ID that received the original invitation. ' pattern: ^[0-9]+$ example: '9876543210987654' log_session_id: type: string description: 'Optional session identifier for logging and debugging purposes. Used to track the acceptance flow across multiple API calls. ' example: session_12345_accept_solution WhatsAppBusinessSolutionAcceptResponse: type: object description: Successful response confirming solution acceptance required: - solution_id - partner_status - success properties: solution_id: type: string description: ID of the Multi-Partner Solution that was accepted example: '1234567890123456' partner_status: $ref: '#/components/schemas/WhatsAppBusinessSolutionPartnerStatus' success: type: boolean description: Indicates whether the acceptance was successful example: true message: type: string description: Human-readable confirmation message example: Solution partnership accepted successfully update_time: type: string format: date-time description: Timestamp when the acceptance was processed example: '2024-01-15T10:30:00Z' WhatsAppBusinessSolutionPartnerStatus: type: string description: Current status of the partner's participation in the Multi-Partner Solution enum: - DRAFT - INITIATED - NOTIFICATION_SENT - ACCEPTED - REJECTED - DEACTIVATED example: ACCEPTED WhatsAppBusinessSolution_2: type: object description: Multi-Partner Solution details after rejecting deactivation request required: - id - name - status - status_for_pending_request properties: id: type: string description: Unique identifier for the Multi-Partner Solution example: '1234567890123456' name: type: string description: Human-readable name of the Multi-Partner Solution minLength: 2 maxLength: 75 example: E-commerce Integration Solution status: $ref: '#/components/schemas/WhatsAppBusinessSolutionStatus' status_for_pending_request: $ref: '#/components/schemas/WhatsAppBusinessSolutionPendingStatus' owner_app: $ref: '#/components/schemas/ApplicationNode' owner_permissions: type: array description: List of WhatsApp Business Account permissions granted to the solution owner items: $ref: '#/components/schemas/WhatsAppBusinessAccountPermissionTask' example: - MANAGE - DEVELOP - MANAGE_TEMPLATES GraphAPIError_11: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Invalid parameter type: type: string description: Error type classification example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Permission Denied error_user_msg: type: string description: User-friendly error message for display purposes example: Your app doesn't have permission to access this resource SolutionRejectRequest: type: object description: Request payload for rejecting a Multi-Partner Solution request required: - request_type properties: request_type: type: string description: Type of request being rejected enum: - PARTNERSHIP_REQUEST - DEACTIVATION_REQUEST example: PARTNERSHIP_REQUEST rejection_reason: type: string description: Optional reason for rejecting the request maxLength: 500 example: Partnership terms do not align with our business requirements partner_app_id: type: string description: The app ID of the requesting partner. Required when request_type is PARTNERSHIP_REQUEST, not used for DEACTIVATION_REQUEST pattern: ^[0-9]+$ example: '1234567890123456' SolutionRejectResponse: type: object description: Successful response for solution rejection operation required: - success - solution_id - rejected_request_type properties: success: type: boolean description: Indicates whether the rejection was successful example: true solution_id: type: string description: The ID of the Multi-Partner Solution example: '1234567890123456' rejected_request_type: type: string description: Type of request that was rejected enum: - PARTNERSHIP_REQUEST - DEACTIVATION_REQUEST example: PARTNERSHIP_REQUEST rejection_timestamp: type: string format: date-time description: ISO 8601 timestamp when the rejection was processed example: '2024-01-15T10:30:00Z' partner_app_id: type: string description: App ID of the partner whose request was rejected (for partnership rejections) example: '1234567890123456' WhatsAppBusinessSolutionDeactivationRequest: type: object description: Request payload for sending a Multi-Partner Solution deactivation request properties: reason: type: string description: Optional reason for the deactivation request maxLength: 500 example: Solution no longer needed for current business operations WhatsAppBusinessSolutionDeactivationResponse: type: object description: Successful response for deactivation request submission required: - success - message properties: success: type: boolean description: Indicates whether the deactivation request was successfully submitted example: true message: type: string description: Human-readable message describing the result example: Deactivation request submitted successfully request_id: type: string description: Unique identifier for tracking the deactivation request example: deactivation_req_1234567890 AssignedWhatsAppBusinessAccount: type: object description: WhatsApp Business Account assigned to a user required: - id - name - status properties: id: type: string description: Unique identifier for the WhatsApp Business Account example: '1234567890123456' name: type: string description: Display name of the WhatsApp Business Account minLength: 1 maxLength: 100 example: Business Account Name status: $ref: '#/components/schemas/WhatsAppBusinessAccountStatus' assignment_date: type: string format: date-time description: Date and time when the account was assigned to the user example: '2023-10-15T14:30:00Z' permissions: type: array description: List of permissions granted to the user for this account items: $ref: '#/components/schemas/WhatsAppBusinessAccountPermission' example: - MANAGE - DEVELOP - MANAGE_TEMPLATES business_id: type: string description: Business ID that owns this WhatsApp Business Account example: '9876543210987654' phone_numbers: type: array description: Phone numbers associated with this WhatsApp Business Account items: $ref: '#/components/schemas/PhoneNumberInfo' WhatsAppBusinessAccountStatus: type: string description: Current status of the WhatsApp Business Account enum: - ACTIVE - PENDING - RESTRICTED - DISABLED example: ACTIVE WhatsAppBusinessAccountPermission: type: string description: Permission level for WhatsApp Business Account access enum: - MANAGE - DEVELOP - MANAGE_TEMPLATES - MANAGE_PHONE - VIEW_COST - MANAGE_EXTENSIONS - VIEW_PHONE_ASSETS - MANAGE_PHONE_ASSETS - VIEW_TEMPLATES - VIEW_INSIGHTS - RECEIVE_INCOMING_MESSAGES - MANAGE_BILLING - MANAGE_USERS - MESSAGING - FULL_CONTROL example: MANAGE PhoneNumberInfo_1: type: object description: Phone number information for WhatsApp Business Account properties: id: type: string description: Phone number ID example: '1234567890' display_phone_number: type: string description: Formatted phone number for display example: +1 (555) 123-4567 verified_name: type: string description: Verified business name for this phone number example: Business Name status: type: string description: Status of the phone number enum: - CONNECTED - DISCONNECTED - MIGRATED - PENDING - DELETED example: CONNECTED AssignedAccountsResponse: type: object description: Response containing assigned WhatsApp Business Accounts required: - data properties: data: type: array description: List of assigned WhatsApp Business Accounts items: $ref: '#/components/schemas/AssignedWhatsAppBusinessAccount' paging: $ref: '#/components/schemas/PagingInfo' PagingInfo_1: type: object description: Pagination information for the response properties: cursors: type: object properties: before: type: string description: Cursor for the previous page after: type: string description: Cursor for the next page next: type: string description: URL for the next page of results previous: type: string description: URL for the previous page of results WhatsAppAccountNumber: type: object description: WhatsApp Account Number details and configuration required: - id - display_phone_number - status properties: id: type: string description: Unique identifier for the WhatsApp Account Number example: '1234567890123456' display_phone_number: type: string description: Phone number in international format for display purposes example: +1 631-555-5555 verified_name: type: string description: Business name verified for this phone number example: Jasper's Market status: $ref: '#/components/schemas/WhatsAppAccountNumberStatus' quality_rating: $ref: '#/components/schemas/WhatsAppPhoneNumberQualityRating' country_code: type: string description: ISO 3166-1 alpha-2 country code example: US country_dial_code: type: string description: Country dialing code example: '1' code_verification_status: $ref: '#/components/schemas/WhatsAppCodeVerificationStatus' name_status: $ref: '#/components/schemas/WhatsAppDisplayNameStatus' messaging_limit_tier: type: string description: Current messaging limit tier for the account number enum: - TIER_50 - TIER_250 - TIER_1K - TIER_10K - TIER_100K - TIER_UNLIMITED example: TIER_1K account_mode: $ref: '#/components/schemas/WhatsAppBusinessSandboxEligibility' certificate: type: string description: Business certificate information for the account number example: certificate_data_placeholder is_official_business_account: type: boolean description: Whether this is an official business account example: false WhatsAppAccountNumberStatus: type: string description: Current status of the WhatsApp Account Number enum: - CONNECTED - DISCONNECTED - UNVERIFIED - PENDING - FLAGGED - RESTRICTED example: CONNECTED WhatsAppPhoneNumberQualityRating: type: string description: Quality rating based on message delivery and user feedback enum: - GREEN - YELLOW - RED - NA example: GREEN WhatsAppCodeVerificationStatus: type: string description: Two-step verification status for the phone number enum: - VERIFIED - UNVERIFIED example: VERIFIED WhatsAppDisplayNameStatus: type: string description: Status of the display name associated with the phone number enum: - APPROVED - AVAILABLE_WITHOUT_REVIEW - DECLINED - EXPIRED - PENDING_REVIEW - NONE example: AVAILABLE_WITHOUT_REVIEW WhatsAppBusinessSandboxEligibility: type: string description: Account mode indicating sandbox or live environment enum: - LIVE - SANDBOX example: LIVE AssignedUser: type: object description: User assigned to WhatsApp Business Account with permissions required: - id - name properties: id: type: string description: Unique identifier for the assigned user example: '1234567890123456' name: type: string description: Display name of the assigned user example: John Smith business: $ref: '#/components/schemas/BusinessNode' user_type: $ref: '#/components/schemas/AssignedUserType' AssignedUserType: type: string description: Type of user assignment enum: - BUSINESS_USER - SYSTEM_USER - PERSONAL_USER example: BUSINESS_USER BusinessNode: type: object description: Business entity associated with the user properties: id: type: string description: Unique identifier for the business example: '9876543210987654' name: type: string description: Name of the business example: Example Business Inc AssignedUsersResponse: type: object description: Response containing list of assigned users with pagination required: - data properties: data: type: array description: Array of assigned users items: $ref: '#/components/schemas/AssignedUser' paging: $ref: '#/components/schemas/CursorPaging' summary: $ref: '#/components/schemas/AssignedUsersSummary' AssignedUsersSummary: type: object description: Summary information about assigned users properties: total_count: type: integer description: Total number of assigned users example: 25 CursorPaging_6: type: object description: Cursor-based pagination information properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page of data example: QVFIUmx1WTBpMGpJWXprYzVYaVhabW9PVVhF after: type: string description: Cursor pointing to the end of the page of data example: QVFIUjJ5M2wwdmtONVFHbDZAMVQ4OGJBQUFBQQ next: type: string description: Graph API endpoint for the next page of results example: https://graph.facebook.com/v23.0/1234567890123456/assigned_users?access_token=YOUR_SYSTEM_USER_ACCESS_TOKEN&limit=25&after=QVFIUjJ5M2wwdmtONVFHbDZAMVQ4OGJBQUFBQQ previous: type: string description: Graph API endpoint for the previous page of results example: https://graph.facebook.com/v23.0/1234567890123456/assigned_users?access_token=YOUR_SYSTEM_USER_ACCESS_TOKEN&limit=25&before=QVFIUmx1WTBpMGpJWXprYzVYaVhabW9PVVhF SuccessResponse_1: type: object description: Standard success response for write operations required: - success properties: success: type: boolean description: Indicates whether the operation was successful example: true ConversationalAutomationRequest: type: object description: Request payload for configuring conversational automation settings properties: enable_welcome_message: type: boolean description: Whether to enable welcome messages for new conversations default: false example: true prompts: type: array description: List of conversation prompts (ice breakers) to help guide customer interactions items: type: string maxLength: 80 description: Individual conversation prompt text example: How can I help you today? maxItems: 3 default: [] example: - How can I help you today? - What product are you interested in? - Do you need support? commands: type: array description: List of bot commands for automated responses items: $ref: '#/components/schemas/BotCommand' maxItems: 30 default: [] example: - command_name: help command_description: Get help with your order - command_name: status command_description: Check your order status BotCommand: type: object description: Bot command configuration for automated responses required: - command_name - command_description properties: command_name: type: string description: Name of the bot command (without leading slash) maxLength: 30 pattern: ^[a-zA-Z0-9_]+$ example: help command_description: type: string description: Description of what the command does maxLength: 256 example: Get help with your order ConversationalAutomationResponse: type: object description: Response after successfully configuring conversational automation required: - success properties: success: type: boolean description: Indicates whether the automation configuration was successful example: true BusinessOwnedObjectOnBehalfOfRequest: type: object description: On-behalf request details for business owned objects required: - id - status - business_owned_object properties: id: type: string description: Unique identifier for the on-behalf request example: '1234567890123456' status: $ref: '#/components/schemas/BusinessRequestStatus' business_owned_object: type: string description: ID of the business owned object (WhatsApp Business Account) for this request example: '9876543210987654' receiving_business: $ref: '#/components/schemas/BusinessNode' requesting_business: $ref: '#/components/schemas/BusinessNode' BusinessRequestStatus: type: string description: Current status of the business request enum: - APPROVE - DECLINE - IN_PROGRESS - EXPIRED - PENDING - CANCELED - INVALID example: IN_PROGRESS BusinessNode_1: type: object description: Business entity information properties: id: type: string description: Unique identifier for the business example: '5678901234567890' name: type: string description: Name of the business example: Example Business Inc PaginationInfo_2: type: object description: Pagination information for cursor-based pagination properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page example: CURSOR_BEFORE_PLACEHOLDER after: type: string description: Cursor pointing to the end of the page example: CURSOR_AFTER_PLACEHOLDER paging: type: object properties: previous: type: string description: URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890123456/in_progress_onbehalf_request?before=CURSOR_BEFORE_PLACEHOLDER next: type: string description: URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890123456/in_progress_onbehalf_request?after=CURSOR_AFTER_PLACEHOLDER InProgressOnBehalfRequestResponse: type: object description: Response containing in-progress on-behalf requests with pagination required: - data properties: data: type: array description: Array of in-progress on-behalf requests items: $ref: '#/components/schemas/BusinessOwnedObjectOnBehalfOfRequest' paging: $ref: '#/components/schemas/PaginationInfo' OBOMobilityIntentNode: type: object description: WhatsApp Business Account OBO Mobility Intent Node required: - id - waba - solution properties: id: type: string description: Unique identifier for the OBO Mobility Intent Node example: '1234567890123456' waba: $ref: '#/components/schemas/WhatsAppBusinessAccount' solution: $ref: '#/components/schemas/WhatsAppBusinessSolution' status: type: string description: Current status of the OBO mobility intent enum: - PENDING - ACTIVE - COMPLETED - CANCELLED - FAILED example: ACTIVE created_time: type: string format: date-time description: Timestamp when the OBO mobility intent was created (ISO 8601 format) example: '2024-01-15T10:30:00Z' updated_time: type: string format: date-time description: Timestamp when the OBO mobility intent was last updated (ISO 8601 format) example: '2024-01-15T14:45:00Z' WhatsAppBusinessAccount_2: type: object description: WhatsApp Business Account information required: - id - name properties: id: type: string description: WhatsApp Business Account ID example: '1234567890123456' name: type: string description: Business account name example: My Business Account status: type: string description: Current status of the business account enum: - ACTIVE - INACTIVE - PENDING example: ACTIVE WhatsAppBusinessSolution_3: type: object description: WhatsApp Business Solution information required: - id - name properties: id: type: string description: Solution ID example: '2345678901234567' name: type: string description: Solution name example: My Business Solution partner_id: type: string description: Partner ID associated with the solution example: '3456789012345678' status: type: string description: Current status of the solution enum: - ACTIVE - INACTIVE - PENDING example: ACTIVE OBOMobilityIntentRequest: type: object description: Request payload for OBO mobility intent operations required: - solution_id - intent_type properties: solution_id: type: string description: Unique identifier for the WhatsApp Business Solution example: '2345678901234567' intent_type: $ref: '#/components/schemas/MobilityIntentType' target_solution_id: type: string description: Target solution ID for mobility operations (required for transfers) example: '3456789012345678' mobility_reason: type: string description: Reason for the mobility intent maxLength: 500 example: Transferring account management to new solution provider scheduled_execution_time: type: string format: date-time description: Scheduled time for mobility execution (ISO 8601 format) example: '2024-12-01T10:00:00Z' metadata: type: object description: Additional metadata for the mobility operation additionalProperties: true example: partner_approval_id: approval_123456 business_justification: Business restructuring MobilityIntentType: type: string description: Type of mobility intent operation enum: - INITIATE_TRANSFER - CONFIRM_TRANSFER - CANCEL_TRANSFER - REQUEST_HANDOVER - APPROVE_HANDOVER - REJECT_HANDOVER example: INITIATE_TRANSFER OBOMobilityIntentResponse: type: object description: Response for OBO mobility intent operations required: - success - mobility_intent_id properties: success: type: boolean description: Indicates if the mobility intent operation was successful example: true mobility_intent_id: type: string description: Unique identifier for the mobility intent request example: obo_mobility_123456789 status: type: string description: Current status of the mobility intent enum: - PENDING - APPROVED - REJECTED - SCHEDULED - IN_PROGRESS - COMPLETED - FAILED example: PENDING estimated_completion_time: type: string format: date-time description: Estimated completion time for the mobility operation (ISO 8601 format) example: '2024-12-01T12:00:00Z' approval_required: type: boolean description: Indicates if additional approval is required for the operation example: true next_steps: type: array description: List of next steps required to complete the mobility operation items: type: string example: - Await partner approval - Confirm transfer details WhatsAppBusinessAccountPhoneNumber: type: object description: WhatsApp Business Account phone number details and status information required: - id - display_phone_number - status properties: id: type: string description: Unique identifier for the phone number status record example: '1906385232743451' display_phone_number: type: string description: Phone number in international format for display purposes example: +1 631-555-5555 verified_name: type: string description: Business name verified for this phone number example: Jasper's Market status: $ref: '#/components/schemas/WhatsAppPhoneNumberStatus' quality_rating: $ref: '#/components/schemas/WhatsAppPhoneNumberQualityRating' country_code: type: string description: ISO 3166-1 alpha-2 country code example: US country_dial_code: type: string description: Country dialing code example: '1' code_verification_status: $ref: '#/components/schemas/WhatsAppCodeVerificationStatus' unified_cert_status: $ref: '#/components/schemas/WhatsAppBusinessUnifiedCertStatus' account_mode: $ref: '#/components/schemas/WhatsAppBusinessSandboxEligibility' host_platform: $ref: '#/components/schemas/WhatsAppBusinessAccountHostPlatform' messaging_limit_tier: type: string description: Current messaging limit tier for the phone number enum: - TIER_50 - TIER_250 - TIER_1K - TIER_10K - TIER_100K - TIER_UNLIMITED example: TIER_1K is_official_business_account: type: boolean description: Whether this is an official business account example: true username: type: string nullable: true description: WhatsApp username for the business account (if available) example: business_username WhatsAppPhoneNumberStatus: type: string description: Current status of the phone number in the WhatsApp Business Account enum: - PENDING - LINKED - UNLINKED - DELETED - MIGRATED - BANNED - RESTRICTED example: PENDING WhatsAppPhoneNumberQualityRating_1: type: string description: Quality rating for the phone number based on messaging patterns enum: - GREEN - YELLOW - RED - UNKNOWN example: GREEN WhatsAppCodeVerificationStatus_1: type: string description: Status of phone number verification code enum: - VERIFIED - NOT_VERIFIED example: NOT_VERIFIED WhatsAppBusinessUnifiedCertStatus: type: string description: Unified certification status combining business and name verification enum: - APPROVED - NAME_PENDING_REVIEW - NAME_NOT_APPROVED - ACCOUNT_REVIEW_NOT_STARTED - LIMITED_ACCESS example: APPROVED WhatsAppBusinessSandboxEligibility_1: type: string description: Account mode indicating sandbox or live environment eligibility enum: - LIVE - SANDBOX example: LIVE WhatsAppBusinessAccountHostPlatform: type: string description: Platform hosting the WhatsApp Business Account enum: - CLOUD_API - ON_PREMISE - NOT_APPLICABLE example: CLOUD_API WhatsAppBusinessAccountPhoneNumbersConnection: type: object description: Paginated collection of WhatsApp Business Account phone numbers required: - data properties: data: type: array items: $ref: '#/components/schemas/WhatsAppBusinessAccountPhoneNumber' description: Array of phone number records paging: $ref: '#/components/schemas/CursorPaging' CursorPaging_7: type: object description: Cursor-based pagination information properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page after: type: string description: Cursor pointing to the end of the page previous: type: string description: URL for the previous page of results next: type: string description: URL for the next page of results PhoneNumberCreateRequest: type: object description: Request payload for creating a new phone number registration required: - phone_number - verified_name properties: phone_number: type: string description: Phone number in E.164 format without the + prefix pattern: ^[1-9][0-9]{6,14}$ example: '16315551000' verified_name: type: string description: Business name to be verified for this phone number minLength: 2 maxLength: 75 example: My Business Name cc: type: string description: Country code for the phone number pattern: ^[0-9]{1,3}$ example: '1' migrate_phone_number: type: boolean description: Whether this is a phone number migration from on-premises default: false preverified_id: type: string description: Pre-verified phone number ID for BSP scenarios example: preverified_12345 PhoneNumberCreateResponse: type: object description: Response after successfully creating a phone number registration required: - id properties: id: type: string description: Unique identifier for the created phone number status record example: '1906385232743451' WhatsAppBusinessAccountSchedule: type: object description: WhatsApp Business Account schedule configuration and details required: - id - name - status - schedule_type properties: id: type: string description: Unique identifier for the schedule example: '1234567890123456' name: type: string description: Human-readable name for the schedule minLength: 1 maxLength: 100 example: Daily Business Hours Schedule status: $ref: '#/components/schemas/WhatsAppScheduleStatus' schedule_type: $ref: '#/components/schemas/WhatsAppScheduleType' description: type: string description: Optional description of the schedule purpose maxLength: 500 example: Automated responses during business hours start_time: type: string format: time description: Schedule start time in HH:MM format example: 09:00 end_time: type: string format: time description: Schedule end time in HH:MM format example: '17:00' timezone: type: string description: Timezone identifier for the schedule example: America/New_York days_of_week: type: array items: $ref: '#/components/schemas/DayOfWeek' description: Days of the week when the schedule is active example: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY created_time: type: string format: date-time description: ISO 8601 timestamp when the schedule was created example: '2024-01-15T10:30:00Z' updated_time: type: string format: date-time description: ISO 8601 timestamp when the schedule was last updated example: '2024-01-20T14:45:00Z' is_active: type: boolean description: Whether the schedule is currently active example: true recurrence_pattern: $ref: '#/components/schemas/RecurrencePattern' WhatsAppScheduleStatus: type: string description: Current status of the schedule enum: - ACTIVE - INACTIVE - PAUSED - EXPIRED - DRAFT example: ACTIVE WhatsAppScheduleType: type: string description: Type of schedule configuration enum: - BUSINESS_HOURS - AUTOMATED_RESPONSE - MESSAGE_CAMPAIGN - MAINTENANCE_WINDOW - CUSTOM example: BUSINESS_HOURS DayOfWeek: type: string description: Day of the week enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY example: MONDAY RecurrencePattern: type: object description: Pattern for recurring schedules properties: frequency: type: string enum: - DAILY - WEEKLY - MONTHLY - YEARLY example: WEEKLY interval: type: integer minimum: 1 description: Interval between recurrences example: 1 end_date: type: string format: date description: End date for the recurrence pattern example: '2024-12-31' WhatsAppBusinessAccountSchedulesConnection: type: object description: Paginated collection of WhatsApp Business Account schedules required: - data properties: data: type: array items: $ref: '#/components/schemas/WhatsAppBusinessAccountSchedule' description: Array of schedule records paging: $ref: '#/components/schemas/CursorPaging' CursorPaging_8: type: object description: Cursor-based pagination information properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page after: type: string description: Cursor pointing to the end of the page previous: type: string description: URL for the previous page of results next: type: string description: URL for the next page of results ScheduleCreateRequest: type: object description: Request payload for creating a new schedule required: - name - schedule_type - start_time - end_time properties: name: type: string description: Human-readable name for the schedule minLength: 1 maxLength: 100 example: Business Hours Schedule schedule_type: $ref: '#/components/schemas/WhatsAppScheduleType' description: type: string description: Optional description of the schedule purpose maxLength: 500 example: Automated responses during business hours start_time: type: string format: time description: Schedule start time in HH:MM format example: 09:00 end_time: type: string format: time description: Schedule end time in HH:MM format example: '17:00' timezone: type: string description: Timezone identifier for the schedule default: UTC example: America/New_York days_of_week: type: array items: $ref: '#/components/schemas/DayOfWeek' description: Days of the week when the schedule is active example: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY is_active: type: boolean description: Whether the schedule should be active upon creation default: true recurrence_pattern: $ref: '#/components/schemas/RecurrencePattern' ScheduleCreateResponse: type: object description: Response after successfully creating a schedule required: - id properties: id: type: string description: Unique identifier for the created schedule example: '1234567890123456' SetOBOMobilityIntentRequest: type: object description: Request payload for setting OBO mobility intent required: - waba_id properties: waba_id: type: string description: WhatsApp Business Account ID for which to set OBO mobility intent pattern: ^[0-9]+$ example: '1234567890123456' solution_id: type: string description: Unique identifier for the Multi-Partner Solution pattern: ^[0-9]+$ example: '2345678901234567' app_id: type: string description: Application ID requesting OBO mobility intent pattern: ^[0-9]+$ example: '3456789012345678' actor_id: type: string description: Actor ID performing the OBO mobility intent operation pattern: ^[0-9]+$ example: '4567890123456789' client_mutation_id: type: string description: Client-provided mutation identifier for request tracking maxLength: 255 example: obo_mobility_intent_mutation_123 SetOBOMobilityIntentResponse: type: object description: Response for setting OBO mobility intent required: - success properties: success: type: boolean description: Indicates if the OBO mobility intent was set successfully example: true intent_id: type: string description: Unique identifier for the created OBO mobility intent example: obo_intent_987654321 client_mutation_id: type: string description: Client-provided mutation identifier echoed back example: obo_mobility_intent_mutation_123 error_msg: type: string description: Error message if the operation failed example: null SetSolutionMigrationIntentRequest: type: object description: Request payload for setting solution migration intent required: - solution_id - migration_intent properties: solution_id: type: string description: Unique identifier for the Multi-Partner Solution pattern: ^[0-9]+$ example: '1234567890123456' migration_intent: $ref: '#/components/schemas/SolutionMigrationIntent' target_solution_id: type: string description: Target solution ID for migration (required for certain migration intents) pattern: ^[0-9]+$ example: '2345678901234567' migration_reason: type: string description: Reason for the migration intent maxLength: 500 example: Migrating to new solution provider for enhanced features scheduled_migration_time: type: string format: date-time description: Scheduled time for migration execution (ISO 8601 format) example: '2024-12-01T10:00:00Z' SolutionMigrationIntent: type: string description: Intent for solution migration enum: - INITIATE_MIGRATION - CANCEL_MIGRATION - CONFIRM_MIGRATION - SCHEDULE_MIGRATION example: INITIATE_MIGRATION SetSolutionMigrationIntentResponse: type: object description: Response for setting solution migration intent required: - success - migration_intent_id properties: success: type: boolean description: Indicates if the migration intent was set successfully example: true migration_intent_id: type: string description: Unique identifier for the migration intent request example: migration_intent_123456789 status: type: string description: Current status of the migration intent enum: - PENDING - APPROVED - REJECTED - SCHEDULED example: PENDING estimated_completion_time: type: string format: date-time description: Estimated completion time for the migration (ISO 8601 format) example: '2024-12-01T12:00:00Z' SolutionsList: type: object description: Paginated list of Multi-Partner Solutions required: - data properties: data: type: array description: Array of Multi-Partner Solutions associated with the WABA items: $ref: '#/components/schemas/WhatsAppBusinessSolution' paging: $ref: '#/components/schemas/Paging' Paging_1: type: object description: Pagination information for cursor-based pagination properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page of data that has been returned example: FAKE_CURSOR_BEFORE_123ABC after: type: string description: Cursor pointing to the end of the page of data that has been returned example: FAKE_CURSOR_AFTER_456DEF previous: type: string description: Graph API endpoint URL for the previous page of data example: https://graph.facebook.com/v23.0/1234567890/solutions?limit=25&before=FAKE_CURSOR_BEFORE_123ABC next: type: string description: Graph API endpoint URL for the next page of data example: https://graph.facebook.com/v23.0/1234567890/solutions?limit=25&after=FAKE_CURSOR_AFTER_456DEF GraphAPIError_12: type: object description: Standard Graph API error response required: - error properties: error: type: object required: - message - type - code properties: message: type: string description: Human-readable error message example: Invalid parameter type: type: string description: Error category type example: OAuthException code: type: integer description: Numeric error code example: 100 error_subcode: type: integer description: More specific error subcode when available example: 33 fbtrace_id: type: string description: Unique identifier for debugging and support requests with Meta example: FAKE_TRACE_ID_123ABC456DEF is_transient: type: boolean description: Indicates whether this error is temporary and the request should be retried example: false error_user_title: type: string description: User-friendly error title for display purposes example: Permission Denied error_user_msg: type: string description: User-friendly error message for display purposes example: Your app doesn't have permission to access this resource WhatsAppBusinessApiData_1: type: object description: Application subscription data for WhatsApp Business Account required: - id - name properties: id: type: string description: Unique identifier for the subscribed application example: '1234567890123456' name: type: string description: Name of the subscribed application example: Business Messaging App link: type: string description: URL link to the application example: https://www.facebook.com/games/?app_id=1234567890123456 SubscribedApp_1: type: object description: Subscribed application details required: - whatsapp_business_api_data properties: whatsapp_business_api_data: $ref: '#/components/schemas/WhatsAppBusinessApiData' override_callback_uri: type: string description: Custom webhook callback URL for this subscription example: https://your-webhook-endpoint.com/webhook SubscribedAppsResponse: type: object description: Response containing list of subscribed applications required: - data properties: data: type: array description: Array of subscribed applications items: $ref: '#/components/schemas/SubscribedApp' SubscriptionRequest: type: object description: Request body for subscribing to WABA webhooks properties: override_callback_uri: type: string description: Custom webhook callback URL to override app default example: https://your-webhook-endpoint.com/webhook verify_token: type: string description: Verification token for webhook security example: YOUR_VERIFY_TOKEN_PLACEHOLDER SubscriptionResponse: type: object description: Response after successful subscription operation required: - success properties: success: type: boolean description: Indicates whether the subscription operation was successful example: true data: type: array description: Array containing subscription details items: $ref: '#/components/schemas/SubscribedApp' WhatsAppBusinessAccountActivity: type: object description: WhatsApp Business Account activity record required: - id - activity_type - timestamp - actor_type properties: id: type: string description: Unique identifier for the activity record example: '1234567890123456' activity_type: $ref: '#/components/schemas/ActivityType' timestamp: type: string format: date-time description: ISO 8601 timestamp when the activity occurred example: '2023-10-15T14:30:00Z' actor_type: $ref: '#/components/schemas/ActorType' actor_id: type: string description: ID of the user or system that performed the activity example: '9876543210987654' actor_name: type: string description: Name of the user or system that performed the activity example: John Smith description: type: string description: Human-readable description of the activity example: Phone number configuration updated details: type: object description: Additional structured details about the activity additionalProperties: true example: phone_number: '+1234567890' previous_status: UNVERIFIED new_status: VERIFIED ip_address: type: string description: IP address from which the activity was performed (when available) example: 192.168.1.100 user_agent: type: string description: User agent string from the client that performed the activity example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ActivityType: type: string description: Type of activity performed on the WhatsApp Business Account enum: - ACCOUNT_CREATED - ACCOUNT_UPDATED - ACCOUNT_DELETED - PHONE_NUMBER_ADDED - PHONE_NUMBER_REMOVED - PHONE_NUMBER_VERIFIED - USER_ADDED - USER_REMOVED - USER_ROLE_CHANGED - PERMISSION_GRANTED - PERMISSION_REVOKED - TEMPLATE_CREATED - TEMPLATE_UPDATED - TEMPLATE_DELETED - WEBHOOK_CONFIGURED - API_ACCESS_GRANTED - API_ACCESS_REVOKED - BILLING_UPDATED - COMPLIANCE_ACTION - SECURITY_EVENT example: PHONE_NUMBER_VERIFIED ActorType: type: string description: Type of entity that performed the activity enum: - USER - SYSTEM - API - ADMIN - AUTOMATED_PROCESS example: USER ActivityList: type: object description: Paginated list of WhatsApp Business Account activities required: - data properties: data: type: array description: Array of activity records items: $ref: '#/components/schemas/WhatsAppBusinessAccountActivity' paging: $ref: '#/components/schemas/Paging' Paging_2: type: object description: Pagination information for activity results properties: cursors: type: object properties: before: type: string description: Cursor pointing to the start of the page of data example: MTAxNTExOTQ1MjAwNzI5NDE= after: type: string description: Cursor pointing to the end of the page of data example: NDMyNzQyODI3OTQw previous: type: string description: Graph API endpoint URL for the previous page of results example: https://graph.facebook.com/v23.0/1234567890/activities?limit=25&before=MTAxNTExOTQ1MjAwNzI5NDE= next: type: string description: Graph API endpoint URL for the next page of results example: https://graph.facebook.com/v23.0/1234567890/activities?limit=25&after=NDMyNzQyODI3OTQw WhatsAppBusinessAccount_3: type: object description: WhatsApp Business Account details and configuration required: - id - name properties: id: type: string description: Unique identifier for the WhatsApp Business Account example: '1234567890123456' name: type: string description: Human-readable name of the WhatsApp Business Account minLength: 1 maxLength: 100 example: My Business WhatsApp Account timezone_id: type: string description: Timezone identifier for the WhatsApp Business Account example: '1' message_template_namespace: type: string description: Message template namespace for the WhatsApp Business Account example: ba30dd89_2ebd_41e4_b805_f2c05ae04cc9 account_review_status: $ref: '#/components/schemas/WhatsAppBusinessAccountReviewStatus' business_verification_status: $ref: '#/components/schemas/WhatsAppBusinessAccountVerificationStatus' country: type: string description: Country code for the WhatsApp Business Account example: US ownership_type: $ref: '#/components/schemas/WhatsAppBusinessAccountOwnershipType' primary_business_location: type: string description: Primary business location for the WhatsApp Business Account example: US WhatsAppBusinessAccountReviewStatus: type: string description: Review status of the WhatsApp Business Account enum: - PENDING - APPROVED - REJECTED - LIMIT_REACHED example: APPROVED WhatsAppBusinessAccountVerificationStatus: type: string description: Business verification status of the WhatsApp Business Account enum: - VERIFIED - UNVERIFIED - PENDING example: VERIFIED WhatsAppBusinessAccountOwnershipType: type: string description: Ownership type of the WhatsApp Business Account enum: - SELF_OWNED - CLIENT_OWNED - AGENCY_OWNED example: SELF_OWNED WhatsAppBusinessBot: type: object description: WhatsApp Business Bot configuration and details required: - id properties: id: type: string description: Unique identifier for the WhatsApp Business Bot example: '1234567890123456' prompts: type: array description: List of bot prompts and automated responses items: type: string example: - Welcome to our service! - How can I help you today? commands: type: array description: List of available bot commands and their descriptions items: $ref: '#/components/schemas/WhatsAppBusinessBotCommand' enable_welcome_message: type: boolean description: Whether the welcome message is enabled for this bot example: true WhatsAppBusinessBotCommand: type: object description: Bot command configuration with name and description required: - command_name - command_description properties: command_name: type: string description: Name of the bot command example: help command_description: type: string description: Description of what the command does example: Display available commands and help information WhatsAppBusinessProfileNode: type: object description: WhatsApp Business Profile node details and configuration required: - id properties: id: type: string description: Unique identifier for the WhatsApp Business Profile example: '1234567890123456' account_name: type: string description: Name of the business account minLength: 1 maxLength: 75 example: E-commerce Business Account description: type: string description: Business description text minLength: 1 maxLength: 256 example: Leading e-commerce platform for quality products email: type: string format: email description: Contact email address of the business maxLength: 128 example: contact@business-example.com about: type: string description: About section text for the business profile minLength: 1 maxLength: 139 example: Quality products delivered worldwide address: type: string description: Physical address of the business maxLength: 256 example: 123 Business Street, Commerce City, CC 12345 vertical: $ref: '#/components/schemas/WhatsAppBusinessVertical' websites: type: array description: List of website URLs associated with the business maxItems: 2 items: type: string format: uri maxLength: 256 example: https://www.business-example.com example: - https://www.business-example.com - https://shop.business-example.com profile_picture_url: type: string format: uri description: URL of the business profile picture example: https://pps.whatsapp.net/v/profile-picture-url profile_picture_handle: type: string description: Handle of the profile picture for upload operations example: 4:VGVzdC5wbmc=:aW1hZ2UvanBlZw==:ARat4Mt-L09JON3f30SmDkdyPSuyBkDDYiB4TFXuXISjdgHoNp2b7j882_9Jzr2tPrdKxi92UygyVzTivJiOvmebMpZ6MIjTik3gTyI3ZCQAgQ:e:1659995302:2022308451254161:636685196:ARZf1ftR5N6-qSLtklU messaging_product: type: string description: The messaging service used enum: - whatsapp example: whatsapp WhatsAppBusinessProfileUpdateRequest_1: type: object description: Request payload for updating WhatsApp Business Profile information required: - messaging_product properties: messaging_product: type: string description: The messaging service used for the request enum: - whatsapp example: whatsapp account_name: type: string description: Name of the business account minLength: 1 maxLength: 75 example: Updated Business Account description: type: string description: Business description text minLength: 1 maxLength: 256 example: Updated business description email: type: string format: email description: Contact email address of the business maxLength: 128 example: updated@business-example.com about: type: string description: About section text for the business profile minLength: 1 maxLength: 139 example: Updated about text address: type: string description: Physical address of the business maxLength: 256 example: 456 Updated Street, New City, NC 54321 vertical: $ref: '#/components/schemas/WhatsAppBusinessVertical' websites: type: array description: List of website URLs associated with the business maxItems: 2 items: type: string format: uri maxLength: 256 example: https://www.updated-business.com example: - https://www.updated-business.com - https://shop.updated-business.com profile_picture_handle: type: string description: Handle of the profile picture generated from Resumable Upload API example: 4:VGVzdC5wbmc=:aW1hZ2UvanBlZw==:ARat4Mt-L09JON3f30SmDkdyPSuyBkDDYiB4TFXuXISjdgHoNp2b7j882_9Jzr2tPrdKxi92UygyVzTivJiOvmebMpZ6MIjTik3gTyI3ZCQAgQ:e:1659995302:2022308451254161:636685196:ARZf1ftR5N6-qSLtklU WhatsAppBusinessProfileUpdateResponse_1: type: object description: Response from updating WhatsApp Business Profile properties: id: type: string description: WhatsApp Business Profile ID that was updated example: '1234567890123456' success: type: boolean description: Indicates if the update was successful example: true WhatsAppBusinessVertical_1: type: string description: Industry vertical classification for the business enum: - UNDEFINED - OTHER - AUTO - BEAUTY - APPAREL - EDU - ENTERTAIN - EVENT_PLAN - FINANCE - GROCERY - GOVT - HOTEL - HEALTH - NONPROFIT - PROF_SERVICES - RETAIL - TRAVEL - RESTAURANT - NOT_A_BIZ example: RETAIL WebhookPayload: type: object properties: object: type: string description: Always 'whatsapp_business_account' for these webhooks. example: whatsapp_business_account entry: type: array items: $ref: '#/components/schemas/Entry' required: - object - entry Entry: type: object properties: id: type: string description: WhatsApp Business Account ID. example: '419561257915477' changes: type: array items: $ref: '#/components/schemas/Change' required: - id - changes Change: type: object properties: value: oneOf: - $ref: '#/components/schemas/IncomingMessageValueGeneral' - $ref: '#/components/schemas/IncomingMessageValueSystem' - $ref: '#/components/schemas/StatusMessageValue' - $ref: '#/components/schemas/GroupValue' field: type: string enum: - messages - group_lifecycle_update - group_settings_update - group_participant_update description: 'The field indicate to what object is the webhook related: - messages: the webhook is related to messages from consumer or status of message sent by business to consumer. - group_lifecycle_update: the webhook is related to group creation and deletion. - group_settings_update: the webhook is related to group settings update. - group_participant_update: the webhook is related to participants joining and leaving the groups. ' example: messages required: - value - field Metadata: type: object properties: display_phone_number: type: string description: Business display phone number. example: '15550783881' phone_number_id: type: string description: Business phone number ID. example: '106540352242922' required: - display_phone_number - phone_number_id ContactProfile: type: object properties: profile: type: object properties: name: type: string description: WhatsApp user's name as it appears in their profile in the WhatsApp client. example: Sheena Nelson required: - name wa_id: type: string description: WhatsApp user ID. Note that a WhatsApp user's ID and phone number may not always match. example: '16505551234' required: - profile IncomingMessageValueGeneral: type: object properties: messaging_product: type: string description: Always 'whatsapp'. example: whatsapp metadata: $ref: '#/components/schemas/Metadata' contacts: type: array description: Array of contact profiles for the sender. Included for all non-system incoming messages. items: $ref: '#/components/schemas/ContactProfile' messages: type: array description: Array of message objects. The structure varies based on the 'type' property. items: $ref: '#/components/schemas/IncomingMessage' required: - messaging_product - metadata - contacts - messages IncomingMessageValueSystem: type: object properties: messaging_product: type: string description: Always 'whatsapp'. example: whatsapp metadata: $ref: '#/components/schemas/Metadata' messages: type: array description: Array containing only 'system' message objects. items: $ref: '#/components/schemas/SystemMessage' required: - messaging_product - metadata - messages not: required: - contacts StatusMessageValue: type: object properties: messaging_product: type: string description: Always 'whatsapp'. example: whatsapp metadata: $ref: '#/components/schemas/Metadata' statuses: type: array description: Array of status objects. items: $ref: '#/components/schemas/Statuses' required: - messaging_product - metadata - statuses Statuses: type: object properties: id: type: string description: Unique WhatsApp message ID the status is associated with. status: type: string enum: - sent - delivered - read - failed timestamp: type: string recipient_id: type: string description: Recipeint phone number. group_id: type: string description: Group ID if the message was sent to a group. conversation: $ref: '#/components/schemas/Conversation' pricing: $ref: '#/components/schemas/Pricing' errors: type: array items: $ref: '#/components/schemas/StatusError' required: - id - status - timestamp - recipient_id Conversation: type: object properties: id: type: string expiration_timestamp: type: string origin: $ref: '#/components/schemas/ConversationOrigin' ConversationOrigin: type: object properties: type: type: string Pricing: type: object properties: billable: type: boolean pricing_model: type: string enum: - CBP - PMP category: type: string StatusError: type: object properties: code: type: integer title: type: string message: type: string error_data: $ref: '#/components/schemas/ErrorData' href: type: string ErrorData: type: object properties: details: type: string GroupValue: type: object properties: messaging_product: type: string description: Always 'whatsapp'. example: whatsapp metadata: $ref: '#/components/schemas/Metadata' groups: type: array description: Array of group objects. items: $ref: '#/components/schemas/Groups' required: - messaging_product - metadata - groups Groups: type: object required: - timestamp - group_id - type - request_id properties: timestamp: type: integer description: Unix timestamp of the group event group_id: type: string description: Unique identifier for the group type: type: string enum: - group_create - group_delete - group_settings_update - group_add_participants - group_remove_participants description: Type of group event request_id: type: string description: Unique identifier for the request subject: type: string description: Group subject/name description: type: string description: Group description added_participants: type: array items: $ref: '#/components/schemas/GroupParticipant' description: List of participants added to the group removed_participants: type: array items: $ref: '#/components/schemas/GroupParticipant' description: List of participants removed from the group profile_picture: $ref: '#/components/schemas/GroupProfilePicture' description: Group profile picture information GroupParticipant: type: object properties: input: type: string description: Input phone number or WhatsApp ID wa_id: type: string description: WhatsApp ID of the participant GroupProfilePicture: type: object properties: mime_type: type: string description: MIME type of the profile picture sha256: type: string description: SHA256 hash of the profile picture BaseMessageProperties_1: type: object properties: from: type: string description: WhatsApp user phone number. Note that a WhatsApp user's phone number and ID may not always match. example: '16505551234' id: type: string description: Unique WhatsApp message ID. example: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTRBNjU5OUFFRTAzODEwMTQ0RgA= timestamp: type: string description: Unix timestamp indicating when the webhook was triggered. example: '1749416383' required: - from - id - timestamp IncomingMessage: type: object discriminator: propertyName: type mapping: text: '#/components/schemas/TextMessage' reaction: '#/components/schemas/ReactionMessage' audio: '#/components/schemas/AudioMessage' document: '#/components/schemas/DocumentMessage' image: '#/components/schemas/ImageMessage' sticker: '#/components/schemas/StickerMessage' video: '#/components/schemas/VideoMessage' location: '#/components/schemas/LocationMessage' contacts: '#/components/schemas/ContactSharingMessage' unsupported: '#/components/schemas/UnsupportedMessage' unknown: '#/components/schemas/UnsupportedMessage' button: '#/components/schemas/ButtonMessage' interactive: '#/components/schemas/InteractiveMessageReply' order: '#/components/schemas/OrderMessage' oneOf: - $ref: '#/components/schemas/TextMessage' - $ref: '#/components/schemas/ReactionMessage' - $ref: '#/components/schemas/AudioMessage' - $ref: '#/components/schemas/DocumentMessage' - $ref: '#/components/schemas/ImageMessage' - $ref: '#/components/schemas/StickerMessage' - $ref: '#/components/schemas/VideoMessage' - $ref: '#/components/schemas/LocationMessage' - $ref: '#/components/schemas/ContactSharingMessage' - $ref: '#/components/schemas/UnsupportedMessage' - $ref: '#/components/schemas/ButtonMessage' - $ref: '#/components/schemas/InteractiveMessageReply' - $ref: '#/components/schemas/OrderMessage' TextMessage_2: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - text example: text text: type: object properties: body: type: string description: Text body of the message. example: Does it come in another color? required: - body context: $ref: '#/components/schemas/ContextObject' referral: $ref: '#/components/schemas/ReferralObject' required: - type - text example: from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTRBNjU5OUFFRTAzODEwMTQ0RgA= timestamp: '1749416383' type: text text: body: Does it come in another color? ContextObject: type: object description: Only included if message via a "Message business" button. properties: from: type: string description: Business display phone number. example: '15550783881' id: type: string description: WhatsApp message ID of the message the user used to access the "Message business" button. example: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGA9wcm9kdWN0X2lucXVpcnkA referred_product: type: object properties: catalog_id: type: string description: Product catalog ID. example: '194836987003835' product_retailer_id: type: string description: Product ID. example: di9ozbzfi4 required: - catalog_id - product_retailer_id required: - from - id - referred_product ReferralObject: type: object description: Only included if message via a Click to WhatsApp ad. properties: source_url: type: string description: Ad URL. example: https://fb.me/3cr4Wqqkv source_id: type: string description: Ad ID. example: '120226305854810726' source_type: type: string enum: - ad - post example: ad body: type: string description: Ad primary text. example: Summer Succulents are here! headline: type: string description: Ad headline. example: Chat with us media_type: type: string enum: - image - video example: image image_url: type: string description: Only included for image media_type. example: https://scontent.xx.fbcdn.net/v/t45.1... video_url: type: string description: Only included for video media_type. example: https://example.com/video.mp4 thumbnail_url: type: string description: Only included for video media_type. example: https://example.com/thumbnail.jpg ctwa_clid: type: string description: Ad click ID. example: Aff-n8ZTODiE79d22KtAwQKj9e_mIEOOj27vDVwFjN80dp4_0NiNhEgpGo0AHemvuSoifXaytfTzcchptiErTKCqTrJ5nW1h7IHYeYymGb5K5J5iTROpBhWAGaIAeUzHL50 welcome_message: type: object properties: text: type: string description: Ad greeting text. example: Hi there! Let us know how we can help! required: - text required: - source_url - source_id - source_type - body - headline - media_type - ctwa_clid ReactionMessage_1: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - reaction example: reaction reaction: type: object properties: message_id: type: string description: WhatsApp message ID of the message the WhatsApp user reacted to. example: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI0RTJEOTc2ODVERUY5RDlGNkYA emoji: type: string description: Emoji sent by the WhatsApp user as a reaction. example: 👍 required: - message_id - emoji required: - type - reaction example: from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTRBNjU5OUFFRTAzODEwMTQ0RgA= timestamp: '1749419544' type: reaction reaction: message_id: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI0RTJEOTc2ODVERUY5RDlGNkYA emoji: 👍 MediaMessageProperties: type: object properties: mime_type: type: string description: Media asset MIME type. example: image/jpeg sha256: type: string description: Media asset SHA-256 hash. example: SfInY0gGKTsJlUWbwxC1k+FAD0FZHvzwfpvO0zX0GUI= id: type: string description: Media asset ID. A GET request on this ID can provide the asset URL. example: '1003383421387256' required: - mime_type - sha256 - id AudioMessage_1: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - audio example: audio audio: allOf: - $ref: '#/components/schemas/MediaMessageProperties' - type: object properties: voice: type: boolean description: Boolean indicating if audio is a recording made with the WhatsApp client voice recording feature (true) or not (false). example: true required: - voice required: - type - audio DocumentMessage_1: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - document example: document document: allOf: - $ref: '#/components/schemas/MediaMessageProperties' - type: object properties: filename: type: string description: Media asset filename. example: receipt.pdf required: - filename required: - type - document ImageMessage_1: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - image example: image image: allOf: - $ref: '#/components/schemas/MediaMessageProperties' - type: object properties: caption: type: string description: Media asset caption text. example: Taj Mahal required: - type - image example: from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTRBNjU5OUFFRTAzODEwMTQ0RgA= timestamp: '1744344496' type: image image: caption: Taj Mahal mime_type: image/jpeg sha256: SfInY0gGKTsJlUWbwxC1k+FAD0FZHvzwfpvO0zX0GUI= id: '1003383421387256' StickerMessage_1: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - sticker example: sticker sticker: allOf: - $ref: '#/components/schemas/MediaMessageProperties' - type: object properties: animated: type: boolean description: Boolean indicating if the sticker is animated (true) or not (false). example: true required: - animated required: - type - sticker VideoMessage_1: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - video example: video video: allOf: - $ref: '#/components/schemas/MediaMessageProperties' - type: object properties: caption: type: string description: Media asset caption text. example: My vacation video required: - type - video LocationMessage_1: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - location example: location location: type: object properties: address: type: string description: Location address. example: 101 Forest Ave, Palo Alto, CA 94301 latitude: type: number format: float description: Location latitude. example: 37.44221496582 longitude: type: number format: float description: Location longitude. example: -122.16165924072 name: type: string description: Location name. example: Philz Coffee url: type: string description: Location URL. Usually only included for business locations. example: https://philzcoffee.com/ required: - address - latitude - longitude - name required: - type - location example: from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTU2MjZEMDBGRkE3MENEMDE0RQA= timestamp: '1744344496' type: location location: address: 101 Forest Ave, Palo Alto, CA 94301 latitude: 37.44221496582 longitude: -122.16165924072 name: Philz Coffee url: https://philzcoffee.com/ ContactSharingMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - contacts example: contacts contacts: type: array description: Array of contact objects. Many contact object properties may be omitted if the WhatsApp user chooses not to share them, or their device prevents them from being shared. items: $ref: '#/components/schemas/ContactObject' required: - type - contacts example: from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTRBNjU5OUFFRTAzODEwMTQ0RgA= timestamp: '1744344496' type: contacts contacts: - name: first_name: Lucía last_name: Gómez formatted_name: Lucía Gómez org: company: Google phones: - phone: +1 (983) 555-2319 wa_id: '19835552319' type: MOBILE ContactObject_1: type: object properties: addresses: type: array items: type: object properties: city: type: string description: City mentioned in the contact address example: Menlo Park country: type: string description: Country mentioned in the contact address example: United States country_code: type: string description: ISO country code for the contact address example: US state: type: string description: State mentioned in the contact address example: CA street: type: string description: Street mentioned in the contact address example: 1 Hacker Way type: type: string description: Type of address, such as home or work example: Home zip: type: string description: Zip code in the contact address example: '94025' birthday: type: string format: date description: Contact birthday (YYYY-MM-DD). example: '1999-01-23' emails: type: array items: type: object properties: email: type: string format: email description: Email address of the contact example: foo@gmail.com type: type: string description: Type of email, such as personal or work example: Personal name: type: object properties: formatted_name: type: string description: Contact's formatted name example: Barbara J. Johnson first_name: type: string description: Contact’s first name example: Barbara last_name: type: string description: Contact’s last name example: Johnson middle_name: type: string description: Contact’s middle name example: Joana suffix: type: string description: Contact’s name suffix example: Esq. prefix: type: string description: Contact’s name prefix example: Dr. required: - formatted_name org: type: object properties: company: type: string description: Name of the company where the contact works example: Meta Inc department: type: string description: Name of the department where the contact works example: Engineering title: type: string description: Contact's job title example: Software Engineer phones: type: array items: type: object properties: phone: type: string description: Contact’s Phone number example: '+14125550829' wa_id: type: string description: Contact's WhatsApp Number. Note that a WhatsApp user's ID and phone number may not always match. example: '14125550829' type: type: string description: Type of phone number. For example, cell, mobile, main, iPhone, home, work, etc. example: CELL urls: type: array items: type: object properties: url: type: string format: uri description: Website URL associated with the contact or their company example: meta.com type: type: string description: Type of website. For example, company, work, personal, Facebook Page, Instagram, etc. example: Company UnsupportedMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - unsupported - unknown example: unsupported errors: type: array items: $ref: '#/components/schemas/ErrorObject' required: - type - errors example: from: '16505551234' id: wamid.HBgLMTQyMDU1NTA3NDkVAgASGBI5N0MwRjg0RTVBNUI1RDA2OTkA timestamp: '1750090702' errors: - code: 131051 title: Message type unknown message: Message type unknown error_data: details: Message type is currently not supported. type: unsupported ErrorObject_2: type: object properties: code: type: integer description: Error code. example: 131051 title: type: string description: Error code title. example: Message type unknown message: type: string description: Error code message. example: Message type unknown error_data: type: object properties: details: type: string description: Error code details. example: Message type is currently not supported. required: - details href: type: string format: uri description: Link to error code documentation. example: https://developers.facebook.com/docs/business-messaging/whatsapp/support/error-codes/ required: - code - title - message - error_data ButtonMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - button example: button context: type: object properties: from: type: string description: Business display phone number. example: '15550783881' id: type: string description: WhatsApp message ID of the message containing the button the WhatsApp user tapped. example: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJFNjk2OTMwNEZCQjhGMzUyQUYA required: - from - id button: type: object properties: payload: type: string description: Quick-reply button payload. example: Unsubscribe text: type: string description: Quick-reply button label text. example: Unsubscribe required: - payload - text required: - type - context - button example: from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUU0M0MxQzQzMUJCMTMwNUZFOQA= timestamp: '1750091045' type: button context: from: '15550783881' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJFNjk2OTMwNEZCQjhGMzUyQUYA button: payload: Unsubscribe text: Unsubscribe InteractiveMessageReply: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - interactive example: interactive context: type: object properties: from: type: string description: Business display phone number. example: '15550783881' id: type: string description: WhatsApp message ID of the message containing the interactive component the user tapped. example: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJGMzEyNzhENTZDMzNGODlDRDgA required: - from - id interactive: type: object discriminator: propertyName: type mapping: list_reply: '#/components/schemas/InteractiveListReplyContent' button_reply: '#/components/schemas/InteractiveButtonReplyContent' properties: type: type: string description: Type of interactive reply (list_reply or button_reply). enum: - list_reply - button_reply example: list_reply required: - type required: - type - context - interactive example: from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUJDQ0NDM0FEODY4ODkzOTc5RgA= timestamp: '1749854575' type: interactive context: from: '15550783881' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJGMzEyNzhENTZDMzNGODlDRDgA interactive: type: list_reply list_reply: id: priority_express title: Priority Mail Express description: Next Day to 2 Days InteractiveListReplyContent: type: object properties: list_reply: type: object properties: id: type: string description: Row ID. example: priority_express title: type: string description: Row title. example: Priority Mail Express description: type: string description: Row description. example: Next Day to 2 Days required: - id - title - description required: - list_reply InteractiveButtonReplyContent: type: object properties: button_reply: type: object properties: id: type: string description: Button ID. example: cancel-button title: type: string description: Button label text. example: Cancel required: - id - title required: - button_reply OrderMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - order example: order order: type: object properties: catalog_id: type: string description: Product catalog ID. example: '194836987003835' text: type: string description: Empty string. example: '' product_items: type: array items: type: object properties: product_retailer_id: type: string description: Product ID. example: di9ozbzfi4 quantity: type: integer description: Product quantity. example: 2 item_price: type: number format: float description: Individual product price. example: 30.0 currency: type: string description: Catalog currency code. example: USD required: - product_retailer_id - quantity - item_price - currency required: - catalog_id - text - product_items required: - type - order example: from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTEyQjFGNzI1QTQxMjI5QTMyOQA= timestamp: '1750096325' type: order order: catalog_id: '194836987003835' text: '' product_items: - product_retailer_id: di9ozbzfi4 quantity: 2 item_price: 30 currency: USD - product_retailer_id: nqryix03ez quantity: 1 item_price: 25 currency: USD SystemMessage: allOf: - $ref: '#/components/schemas/BaseMessageProperties' - type: object properties: type: type: string enum: - system example: system system: type: object properties: body: type: string description: Description of the system change (e.g., user changed number). example: User Sheena Nelson changed from 16505551234 to 12195555358 wa_id: type: string description: New WhatsApp user ID. example: '12195555358' type: type: string enum: - user_changed_number description: Type of system message. example: user_changed_number required: - body - type required: - type - system example: from: '16505551234' id: wamid.HBgLMTk4MzU1NTE5NzQVAgASGAoxMTgyMDg2MjY3AA== timestamp: '1750269342' type: system system: body: User Sheena Nelson changed from 16505551234 to 12195555358 wa_id: '12195555358' type: user_changed_number parameters: UserAgent: name: User-Agent in: header description: The user agent string identifying the client software making the request. required: false schema: type: string default: Meta-Business-Messaging-OpenAPI/1.0.0;spec=2025-10-21 pattern: ^[a-zA-Z0-9\-_]+\/[0-9]+\.[0-9]+\.[0-9]+(;[a-zA-Z0-9\-=\.]+)?(\s+[a-zA-Z0-9\-_]+\/[0-9\-\.]+)?$ example: Meta-Business-Messaging-OpenAPI/1.0.0;spec=2025-10-21 ContentType: name: Content-Type in: header description: Media type of the request body required: true schema: type: string enum: - application/json - application/x-www-form-urlencoded - multipart/form-data default: application/json example: application/json Accept: name: Accept in: header description: Media types acceptable for the response required: false schema: type: string default: application/json example: application/json Authorization: name: Authorization in: header description: 'Bearer token for API authentication. This should be a valid access token obtained through the appropriate OAuth flow or system user token. ' required: true schema: type: string pattern: ^Bearer\s+[A-Za-z0-9\-_.]+.*$ example: Bearer EAABwzLixnjYBOzYmNMJJGfHq9DgNh... parameterGroups: StandardRequestHeaders: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/Authorization' MinimalRequestHeaders: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Accept' - $ref: '#/components/parameters/Authorization' RequiredRequestHeaders: - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Authorization' headers: Access-Control-Allow-Origin: schema: type: string example: '*' description: CORS policy allowing access from any origin Alt-Svc: schema: type: string example: h3=":443"; ma=86400 description: Alternative service advertisement for HTTP/3 Cache-Control: schema: type: string example: private, no-cache, no-store, must-revalidate description: Cache control directives for the response Connection: schema: type: string example: keep-alive description: Connection management directive Content-Length: schema: type: string example: '25' description: Size of the response body in bytes Content-Encoding: schema: type: string example: br description: Encoding applied to the response body (e.g., br for Brotli) Date: schema: type: string example: Fri, 24 Jan 2025 00:48:41 GMT description: Date and time when the response was generated ETag: schema: type: string example: '"eb11a43a8f1e633acc57540de90158ed9ede1eb6"' description: Entity tag for caching and conditional requests Expires: schema: type: string example: Sat, 01 Jan 2000 00:00:00 GMT description: Expiration date for cached responses Pragma: schema: type: string example: no-cache description: Legacy cache control directive Strict-Transport-Security: schema: type: string example: max-age=15552000; preload description: HSTS header enforcing HTTPS connections Vary: schema: type: string example: Accept-Encoding description: Headers that affect caching and content negotiation cross-origin-resource-policy: schema: type: string example: cross-origin description: Cross-origin resource sharing policy X-FB-Connection-Quality: schema: type: string example: EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=372, tp=-1, tpl=-1, uplat=527, ullat=0 description: Facebook connection quality metrics X-FB-Debug: schema: type: string example: 52zkUgodnaVRhbBE+3RiGz6TnmjmDEGunwYd+vKSc4synE+Xii//dy6twB/7yKgOJiMUuV0OF248UAZ1qL3v0A== description: Facebook debug information for troubleshooting facebook-api-version: schema: type: string example: v22.0 description: Facebook Graph API version used for the request x-business-use-case-usage: schema: type: string example: '{"102290129340398":[{"type":"whatsapp_business_management","call_count":1,"total_cputime":1,"total_time":1,"estimated_time_to_regain_access":0},{"type":"whatsapp","call_count":1,"total_cputime":1,"total_time":1,"estimated_time_to_regain_access":0}]}' description: Business use case usage metrics and rate limiting information x-app-usage: schema: type: string example: '{"call_count":0,"total_cputime":0,"total_time":0}' description: Application usage metrics x-fb-request-id: schema: type: string example: AGaOBl2yM-g8gdON-dhzl5y description: Unique identifier for the request for debugging purposes x-fb-rev: schema: type: string example: '1019544279' description: Facebook internal revision number x-fb-rlafr: schema: type: string example: '0' description: Facebook rate limiting and feature restriction status x-fb-trace-id: schema: type: string example: E7riEe9OW2e description: Facebook trace identifier for request tracking Access-Control-Allow-Origin_1: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc_1: $ref: '#/components/headers/Alt-Svc' Cache-Control_1: $ref: '#/components/headers/Cache-Control' Connection_1: $ref: '#/components/headers/Connection' Content-Length_1: $ref: '#/components/headers/Content-Length' Date_1: $ref: '#/components/headers/Date' Expires_1: $ref: '#/components/headers/Expires' Pragma_1: $ref: '#/components/headers/Pragma' Strict-Transport-Security_1: $ref: '#/components/headers/Strict-Transport-Security' Vary_1: $ref: '#/components/headers/Vary' X-FB-Connection-Quality_1: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug_1: $ref: '#/components/headers/X-FB-Debug' facebook-api-version_1: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage_1: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id_1: $ref: '#/components/headers/x-fb-request-id' x-fb-rev_1: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id_1: $ref: '#/components/headers/x-fb-trace-id' Access-Control-Allow-Origin_2: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc_2: $ref: '#/components/headers/Alt-Svc' Cache-Control_2: $ref: '#/components/headers/Cache-Control' Connection_2: $ref: '#/components/headers/Connection' Content-Length_2: $ref: '#/components/headers/Content-Length' Date_2: $ref: '#/components/headers/Date' Expires_2: $ref: '#/components/headers/Expires' Pragma_2: $ref: '#/components/headers/Pragma' Strict-Transport-Security_2: $ref: '#/components/headers/Strict-Transport-Security' Vary_2: $ref: '#/components/headers/Vary' X-FB-Connection-Quality_2: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug_2: $ref: '#/components/headers/X-FB-Debug' facebook-api-version_2: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage_2: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id_2: $ref: '#/components/headers/x-fb-request-id' x-fb-rev_2: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id_2: $ref: '#/components/headers/x-fb-trace-id' Access-Control-Allow-Origin_3: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc_3: $ref: '#/components/headers/Alt-Svc' Cache-Control_3: $ref: '#/components/headers/Cache-Control' Connection_3: $ref: '#/components/headers/Connection' Content-Length_3: $ref: '#/components/headers/Content-Length' Date_3: $ref: '#/components/headers/Date' Expires_3: $ref: '#/components/headers/Expires' Pragma_3: $ref: '#/components/headers/Pragma' Strict-Transport-Security_3: $ref: '#/components/headers/Strict-Transport-Security' Vary_3: $ref: '#/components/headers/Vary' X-FB-Connection-Quality_3: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug_3: $ref: '#/components/headers/X-FB-Debug' facebook-api-version_3: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage_3: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id_3: $ref: '#/components/headers/x-fb-request-id' x-fb-rev_3: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id_3: $ref: '#/components/headers/x-fb-trace-id' Access-Control-Allow-Origin_4: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc_4: $ref: '#/components/headers/Alt-Svc' Cache-Control_4: $ref: '#/components/headers/Cache-Control' Connection_4: $ref: '#/components/headers/Connection' Content-Length_4: $ref: '#/components/headers/Content-Length' Date_4: $ref: '#/components/headers/Date' Expires_4: $ref: '#/components/headers/Expires' Pragma_4: $ref: '#/components/headers/Pragma' Strict-Transport-Security_4: $ref: '#/components/headers/Strict-Transport-Security' Vary_4: $ref: '#/components/headers/Vary' X-FB-Connection-Quality_4: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug_4: $ref: '#/components/headers/X-FB-Debug' facebook-api-version_4: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage_4: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id_4: $ref: '#/components/headers/x-fb-request-id' x-fb-rev_4: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id_4: $ref: '#/components/headers/x-fb-trace-id' Access-Control-Allow-Origin_5: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc_5: $ref: '#/components/headers/Alt-Svc' Cache-Control_5: $ref: '#/components/headers/Cache-Control' Connection_5: $ref: '#/components/headers/Connection' Content-Length_5: $ref: '#/components/headers/Content-Length' Date_5: $ref: '#/components/headers/Date' Expires_5: $ref: '#/components/headers/Expires' Pragma_5: $ref: '#/components/headers/Pragma' Strict-Transport-Security_5: $ref: '#/components/headers/Strict-Transport-Security' Vary_5: $ref: '#/components/headers/Vary' X-FB-Connection-Quality_5: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug_5: $ref: '#/components/headers/X-FB-Debug' facebook-api-version_5: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage_5: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id_5: $ref: '#/components/headers/x-fb-request-id' x-fb-rev_5: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id_5: $ref: '#/components/headers/x-fb-trace-id' Access-Control-Allow-Origin_6: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc_6: $ref: '#/components/headers/Alt-Svc' Cache-Control_6: $ref: '#/components/headers/Cache-Control' Connection_6: $ref: '#/components/headers/Connection' Content-Length_6: $ref: '#/components/headers/Content-Length' Date_6: $ref: '#/components/headers/Date' Expires_6: $ref: '#/components/headers/Expires' Pragma_6: $ref: '#/components/headers/Pragma' Strict-Transport-Security_6: $ref: '#/components/headers/Strict-Transport-Security' Vary_6: $ref: '#/components/headers/Vary' X-FB-Connection-Quality_6: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug_6: $ref: '#/components/headers/X-FB-Debug' facebook-api-version_6: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage_6: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id_6: $ref: '#/components/headers/x-fb-request-id' x-fb-rev_6: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id_6: $ref: '#/components/headers/x-fb-trace-id' Access-Control-Allow-Origin_7: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc_7: $ref: '#/components/headers/Alt-Svc' Cache-Control_7: $ref: '#/components/headers/Cache-Control' Connection_7: $ref: '#/components/headers/Connection' Content-Length_7: $ref: '#/components/headers/Content-Length' Date_7: $ref: '#/components/headers/Date' Expires_7: $ref: '#/components/headers/Expires' Pragma_7: $ref: '#/components/headers/Pragma' Strict-Transport-Security_7: $ref: '#/components/headers/Strict-Transport-Security' Vary_7: $ref: '#/components/headers/Vary' X-FB-Connection-Quality_7: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug_7: $ref: '#/components/headers/X-FB-Debug' facebook-api-version_7: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage_7: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id_7: $ref: '#/components/headers/x-fb-request-id' x-fb-rev_7: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id_7: $ref: '#/components/headers/x-fb-trace-id' responses: StandardSuccessHeaders: description: Standard response headers for successful API requests headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' ExtendedSuccessHeaders: description: Extended response headers for successful API requests with additional Facebook-specific headers headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Connection-Quality: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' CachedResponseHeaders: description: Response headers for cached API responses including ETag for conditional requests headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' ETag: $ref: '#/components/headers/ETag' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' AppUsageResponseHeaders: description: Response headers including application usage metrics and rate limiting information headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' cross-origin-resource-policy: $ref: '#/components/headers/cross-origin-resource-policy' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-app-usage: $ref: '#/components/headers/x-app-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-rlafr: $ref: '#/components/headers/x-fb-rlafr' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' GetBlockedUsersResponse: description: Get blocked users headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' ETag: $ref: '#/components/headers/ETag' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: $ref: '#/components/schemas/GetBlockedUsersData' examples: Get blocked users: value: data: - messaging_product: whatsapp wa_id: '16505551234' paging: cursors: after: eyJvZAmZAzZAXQiOjAsInZAlcnNpb25JZACI6IjE3Mzc2Nzk2ODgzODM1ODQifQZDZD before: eyJvZAmZAzZAXQiOjAsInZAlcnNpb25JZACI6IjE3Mzc2Nzk2ODgzODM1ODQifQZDZD BlockUsersResponse: description: Block user(s) headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Connection-Quality: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: $ref: '#/components/schemas/BlockUsersData' examples: Block user(s): value: block_users: added_users: - input: '+16505551234' wa_id: '16505551234' messaging_product: whatsapp UnblockUsersResponse: description: Unblock user(s) headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Connection-Quality: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: $ref: '#/components/schemas/UnblockUsersData' examples: Unblock user(s): value: block_users: removed_users: - input: '+16505551234' wa_id: '16505551234' messaging_product: whatsapp BadRequest: description: Bad Request - Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidTemplateParameters: summary: Invalid template name or parameters value: error: message: Invalid template name or parameters type: OAuthException code: 100 MalformedRequest: summary: Malformed request body value: error: message: Invalid JSON in request body type: OAuthException code: 100 MissingFeatureSetting: summary: One feature setting must be specified value: error: message: One feature setting must be specified type: OAuthException code: 100 Unauthorized: description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InvalidAccessToken: summary: Invalid OAuth access token value: error: message: Invalid OAuth access token type: OAuthException code: 190 MissingAccessToken: summary: Missing access token value: error: message: An access token is required to request this resource type: OAuthException code: 104 Forbidden: description: Forbidden - Template not approved or insufficient permissions content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: TemplateNotApproved: summary: Template not approved for marketing use value: error: message: Template not approved for marketing use type: OAuthException code: 200 InsufficientPermissions: summary: Insufficient permissions for this operation value: error: message: This operation requires additional permissions type: OAuthException code: 200 FeatureNotSupported: summary: Feature not supported value: error: message: Not supported type: OAuthException code: 10 NotFound: description: Not Found - The requested resource was not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: PhoneNumberNotFound: summary: Phone number not found value: error: message: Phone number not found type: OAuthException code: 100 TemplateNotFound: summary: Template not found value: error: message: Template not found type: OAuthException code: 132000 TooManyRequests: description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: RateLimitExceeded: summary: Rate limit exceeded value: error: message: Rate limit exceeded type: OAuthException code: 4 InternalServerError: description: Internal Server Error - An unexpected error occurred content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UnexpectedError: summary: Unexpected server error value: error: message: An unexpected error occurred type: OAuthException code: 1 BadRequest_1: $ref: '#/components/responses/BadRequest' Unauthorized_1: $ref: '#/components/responses/Unauthorized' InternalServerError_1: $ref: '#/components/responses/InternalServerError' paths: /{Version}/{Application-ID}/connected_client_businesses: get: summary: Get Connected Client Businesses description: 'Retrieve a list of client businesses connected to the specified application. **Use Cases:** - Monitor application-business client relationships - Verify connected business configurations - Retrieve business connection status and details - Manage client business access and permissions **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Business connection data can be cached for moderate periods, but status information may change. Implement appropriate cache invalidation strategies. ' operationId: getConnectedClientBusinesses tags: - Application Business Connections parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Application-ID in: path required: true description: 'Your Meta Application ID. This ID is provided when you create the application and can be found in your App Dashboard. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, name, verification_status, business_status). Available fields: id, name, verification_status, business_status, created_time, updated_time ' schema: type: string example: id,name,verification_status,business_status - name: limit in: query required: false description: 'Maximum number of connected client businesses to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 - name: after in: query required: false description: 'Cursor for pagination. Use this to get the next page of results. ' schema: type: string example: QVFIUjNpUWpVWmRBd0Rn - name: before in: query required: false description: 'Cursor for pagination. Use this to get the previous page of results. ' schema: type: string example: QVFIUjNpUWpVWmRBd0Dn responses: '200': description: Successfully retrieved connected client businesses content: application/json: schema: $ref: '#/components/schemas/ConnectedClientBusinessesResponse' examples: multiple_businesses: summary: Multiple connected client businesses value: data: - id: '1234567890123456' name: Example Client Business A verification_status: VERIFIED business_status: ACTIVE created_time: '2023-01-15T10:30:00Z' updated_time: '2023-06-20T14:45:00Z' - id: '2345678901234567' name: Example Client Business B verification_status: PENDING business_status: PENDING_APPROVAL created_time: '2023-03-10T09:15:00Z' updated_time: '2023-03-10T09:15:00Z' paging: cursors: after: QVFIUjNpUWpVWmRBd0Rn next: https://graph.facebook.com/v23.0/1234567890/connected_client_businesses?after=QVFIUjNpUWpVWmRBd0Rn single_business: summary: Single connected client business value: data: - id: '1234567890123456' name: Example Client Business verification_status: VERIFIED business_status: ACTIVE empty_response: summary: No connected client businesses value: data: [] '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: application_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access connected client businesses for this application type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Application ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this application type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Application-ID}/whatsapp_business_solution: post: summary: Create Multi-Partner Solution description: 'Create a new Multi-Partner Solution that defines permission distribution between a solution owner app and a partner app for WhatsApp Business messaging collaboration. **Permission Logic:** - Only one partner (owner or partner app) can have MESSAGING permission - At least one partner must have MESSAGING permission - Both partners automatically receive default solution partner permissions - Empty permission arrays indicate no configurable permissions for that partner **Solution Lifecycle:** - Solutions are created with INITIATED status - Require subsequent activation workflow through solution management - Can be managed through Partner Dashboard or solution management APIs **Rate Limiting:** Standard Graph API rate limits apply with WhatsApp Business Management throttling. Use appropriate retry logic with exponential backoff for rate-limited requests. **Validation:** - Partner app must be accessible and have proper capabilities - Permission combinations are validated against business logic rules - Solution names must meet length and content requirements ' operationId: createWhatsAppBusinessSolution tags: - Multi-Partner Solutions - WhatsApp Business API parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines API behavior and available features. Use the latest stable version for new integrations. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Application-ID in: path required: true description: 'Your Facebook Application ID that will serve as the solution owner. This application will be the primary owner of the created solution. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolutionCreateRequest' examples: owner_has_messaging: summary: Owner app has messaging permission description: Solution where the owner app handles messaging operations value: owner_permissions: - MESSAGING partner_app_id: '9876543210987654' partner_permissions: [] solution_name: Owner-Managed Messaging Solution partner_has_messaging: summary: Partner app has messaging permission description: Solution where the partner app handles messaging operations value: owner_permissions: [] partner_app_id: '9876543210987654' partner_permissions: - MESSAGING solution_name: Partner-Managed Messaging Solution responses: '200': description: 'Multi-Partner Solution created successfully. The solution is created with INITIATED status and can be managed through subsequent API calls or Partner Dashboard. ' content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolutionCreateResponse' examples: successful_creation: summary: Successful solution creation value: solution_id: '1234567890123456' '400': description: 'Bad Request - Invalid parameters provided. This includes validation failures for permission logic, malformed IDs, or constraint violations. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_permissions: summary: Invalid permission combination value: error: message: Invalid Permissions for either of the partners type: OAuthException code: 100 fbtrace_id: A1B2C3D4E5F6G7H8 invalid_app_id: summary: Invalid partner application ID value: error: message: Invalid parameter value for partner_app_id type: OAuthException code: 100 fbtrace_id: A1B2C3D4E5F6G7H8 '401': description: 'Unauthorized - Authentication required or invalid access token provided. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_token: summary: Invalid or expired access token value: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: A1B2C3D4E5F6G7H8 '403': description: 'Forbidden - Insufficient permissions or missing required capabilities. App may lack whatsapp_business_management permission or required granular scopes. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: insufficient_permissions: summary: Missing required permissions value: error: message: Insufficient permissions for this operation type: OAuthException code: 200 fbtrace_id: A1B2C3D4E5F6G7H8 error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: 'Not Found - Application ID not found or not accessible to the requesting entity. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: app_not_found: summary: Application not found value: error: message: Application not found type: GraphMethodException code: 803 fbtrace_id: A1B2C3D4E5F6G7H8 '422': description: 'Unprocessable Entity - Request is well-formed but contains business logic violations. This includes cases where both partners have MESSAGING permission or neither has it. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: business_logic_violation: summary: Business logic constraint violation value: error: message: Invalid Permissions for either of the partners type: GraphMethodException code: 100 fbtrace_id: A1B2C3D4E5F6G7H8 '429': description: 'Too Many Requests - Rate limiting threshold exceeded. Implement exponential backoff retry logic. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: rate_limited: summary: Rate limit exceeded value: error: message: Application request limit reached type: OAuthException code: 4 is_transient: true fbtrace_id: A1B2C3D4E5F6G7H8 '500': description: 'Internal Server Error - Unexpected server-side error occurred. These errors are typically transient and should be retried. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: server_error: summary: Internal server error value: error: message: An unexpected error occurred type: GraphMethodException code: 2 is_transient: true fbtrace_id: A1B2C3D4E5F6G7H8 security: - bearerAuth: [] /{Version}/{Application-ID}/whatsapp_business_solutions: get: summary: Get Multi-Partner Solutions for Application description: 'Retrieve all WhatsApp Business Multi-Partner Solutions associated with the specified application. This includes both solutions owned by the application and solutions where the application acts as a partner. **Use Cases:** - Retrieve all solutions for an application''s portfolio management - Filter solutions by ownership role (owner vs partner) - Monitor solution lifecycle and status changes across multiple solutions - Verify solution configuration before business onboarding operations - Check pending approval requests and status transitions **Filtering:** Use the `role` parameter to filter solutions by the application''s relationship: - `OWNER`: Only solutions owned by this application - `PARTNER`: Only solutions where this application is a partner - No role parameter: All solutions (both owned and partnered) **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Solution details can be cached for short periods, but status information may change frequently during transitions. Implement appropriate cache invalidation strategies. ' operationId: getApplicationWhatsAppBusinessSolutions tags: - Multi-Partner Solutions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Application-ID in: path required: true description: 'Your Meta Application ID. This ID can be found in your App Dashboard and represents the application for which you want to retrieve associated Multi-Partner Solutions. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: role in: query required: false description: 'Filter solutions by the application''s relationship role. If not specified, all solutions (both owned and partnered) will be returned. ' schema: $ref: '#/components/schemas/WhatsAppBusinessSolutionApplicationRole' example: OWNER - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (name, status, status_for_pending_request). Available fields: id, name, status, status_for_pending_request, owner_app, owner_permissions ' schema: type: string example: id,name,status,owner_app - name: limit in: query required: false description: 'Maximum number of solutions to return in a single request. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 50 - name: after in: query required: false description: 'Cursor for pagination. Use this to get the next page of results. ' schema: type: string example: MTAxNTExOTQ1MjAwNzI5NDE - name: before in: query required: false description: 'Cursor for pagination. Use this to get the previous page of results. ' schema: type: string example: MAZDZD responses: '200': description: Successfully retrieved Multi-Partner Solutions for the application content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolutionsResponse' examples: multiple_solutions: summary: Application with multiple solutions (owner and partner) value: data: - id: '1234567890123456' name: E-commerce Integration Solution status: ACTIVE status_for_pending_request: NONE owner_app: id: '9876543210987654' name: Solution Partner App owner_permissions: - MANAGE - DEVELOP - MANAGE_TEMPLATES - VIEW_INSIGHTS - id: '2345678901234567' name: Customer Support Solution status: DRAFT status_for_pending_request: PENDING_ACTIVATION paging: cursors: after: MTAxNTExOTQ1MjAwNzI5NDE next: https://graph.facebook.com/v23.0/1234567890123456/whatsapp_business_solution?after=MTAxNTExOTQ1MjAwNzI5NDE owner_only_solutions: summary: Application as owner only (with role=OWNER filter) value: data: - id: '1234567890123456' name: E-commerce Integration Solution status: ACTIVE status_for_pending_request: NONE paging: cursors: {} empty_results: summary: No solutions found for application value: data: [] paging: cursors: {} '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: application_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access Multi-Partner Solutions for this application type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Application ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for these solutions type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Business-ID}/add_phone_numbers: post: summary: Add Phone Number to Business Account description: 'Add a preverified phone number to a WhatsApp Business Account. This endpoint is used by Partners to create a pool of Partner owned numbers that end clients can purchase. **Use Cases:** - Add new phone numbers to scale messaging operations - Set up phone numbers for different business locations - Manage phone number inventory for business messaging - Configure phone numbers for specific messaging workflows **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Phone Number Requirements:** - Must be in E.164 format (e.g., +1234567890) - Must not be already registered to another WhatsApp Business Account - Must be capable of receiving SMS for verification - Must comply with WhatsApp''s business messaging policies ' operationId: addPhoneNumbers tags: - Business Phone Numbers parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Business-ID in: path required: true description: 'Your WhatsApp Business Account ID. This ID can be found in your Business Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true description: Phone number to add to the business account content: application/json: schema: $ref: '#/components/schemas/AddPhoneNumbersRequest' examples: basic_phone_number: summary: Add phone number with E.164 format value: phone_number: '+1234567890' responses: '200': description: Phone number successfully added content: application/json: schema: $ref: '#/components/schemas/AddPhoneNumbersResponse' examples: success: summary: Phone number successfully added value: id: '1234567890123456' '400': description: Bad Request - Invalid parameters, malformed request, or phone number already registered content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_phone_number: summary: Invalid phone number value: error: message: Invalid phone number type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to add phone numbers to this business account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Business ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Maximum number of phone numbers per business account exceeded type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Business-ID}: get: tags: - Business Portfolio summary: Get Business Portfolio (Specific Fields) description: 'Endpoint reference: [Business](https://developers.facebook.com/docs/marketing-api/reference/business/)' operationId: getBusinessPortfolioSpecificFields parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: fields in: query schema: type: string example: id,name,timezone_id responses: '200': description: Example response headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' cross-origin-resource-policy: $ref: '#/components/headers/cross-origin-resource-policy' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-app-usage: $ref: '#/components/headers/x-app-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-rlafr: $ref: '#/components/headers/x-fb-rlafr' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: type: object properties: id: type: string example: '506914307656634' name: type: string example: Lucky Shrub timezone_id: type: number example: 0 examples: Example response: value: id: '506914307656634' name: Lucky Shrub timezone_id: 0 security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: Business-ID in: path required: true schema: type: string /{Version}/{Business-ID}/preverified_numbers: get: summary: Get Pre-Verified Phone Numbers description: 'Retrieve pre-verified phone numbers available for use with the specified business. This endpoint provides information about phone numbers that have been pre-verified and are ready for immediate use with WhatsApp Business messaging operations. **Use Cases:** - Retrieve available pre-verified phone numbers for business messaging setup - Check verification status and availability of phone numbers - Monitor pre-verified phone number inventory - Validate phone number options before WhatsApp Business Account configuration - Facilitate quick business messaging setup with pre-verified numbers **Filtering and Pagination:** - Results can be filtered by verification status, availability, and country - Cursor-based pagination is supported for large result sets - Default page size is 25 items, maximum is 100 items per page **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Phone number information can be cached for short periods, but availability status may change frequently. Implement appropriate cache invalidation strategies. ' operationId: getPreVerifiedPhoneNumbers tags: - Pre-Verified Phone Numbers parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Business-ID in: path required: true description: 'Your Business ID for which to retrieve pre-verified phone numbers. This ID can be found in your Meta Business Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, display_phone_number, verification_status). Available fields: id, display_phone_number, country_prefix, verification_status, availability_status, created_time, last_updated, supported_features, country_code, region ' schema: type: string example: id,display_phone_number,verification_status,availability_status - name: limit in: query required: false description: 'Maximum number of phone numbers to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 50 - name: after in: query required: false description: 'Cursor for pagination. Use this to retrieve the next page of results. This value is provided in the ''paging'' object of previous responses. ' schema: type: string example: QVFIUjJ5WjBpMGpJWXprYzVYaVhabW9PVks4ZD0 - name: before in: query required: false description: 'Cursor for pagination. Use this to retrieve the previous page of results. This value is provided in the ''paging'' object of previous responses. ' schema: type: string example: QVFIUmx1WTBpMGpJWXprYzVYaVhabW9PVks4ZD0 - name: verification_status in: query required: false description: 'Filter results by verification status. Only phone numbers with the specified verification status will be returned. ' schema: $ref: '#/components/schemas/PhoneNumberVerificationStatus' example: VERIFIED - name: availability_status in: query required: false description: 'Filter results by availability status. Only phone numbers with the specified availability status will be returned. ' schema: $ref: '#/components/schemas/PhoneNumberAvailabilityStatus' example: AVAILABLE - name: country_code in: query required: false description: 'Filter results by country code. Only phone numbers from the specified country will be returned. Use ISO 3166-1 alpha-2 country codes. ' schema: type: string pattern: ^[A-Z]{2}$ example: US responses: '200': description: Successfully retrieved pre-verified phone numbers content: application/json: schema: $ref: '#/components/schemas/PreVerifiedPhoneNumbersResponse' examples: basic_response: summary: Basic response with pre-verified phone numbers value: data: - id: '1234567890123456' display_phone_number: +1 (555) 123-4567 country_prefix: 1 verification_status: VERIFIED availability_status: AVAILABLE created_time: '2024-01-15T10:30:00Z' last_updated: '2024-01-20T14:45:00Z' supported_features: - MESSAGING - BUSINESS_PROFILE - WEBHOOKS country_code: US region: North America - id: '2345678901234567' display_phone_number: +44 20 1234 5678 country_prefix: 44 verification_status: VERIFIED availability_status: AVAILABLE created_time: '2024-01-10T08:15:00Z' last_updated: '2024-01-18T16:20:00Z' supported_features: - MESSAGING - TEMPLATES - ANALYTICS country_code: GB region: Europe paging: cursors: after: QVFIUjJ5WjBpMGpJWXprYzVYaVhabW9PVks4ZD0 next: https://graph.facebook.com/v23.0/1234567890123456/preverified_numbers?after=QVFIUjJ5WjBpMGpJWXprYzVYaVhabW9PVks4ZD0 filtered_response: summary: Filtered response by country and status value: data: - id: '1234567890123456' display_phone_number: +1 (555) 123-4567 country_prefix: 1 verification_status: VERIFIED availability_status: AVAILABLE country_code: US region: North America paging: cursors: {} empty_response: summary: Empty response when no phone numbers are available value: data: [] paging: cursors: {} '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_business_id: summary: Invalid business ID format value: error: message: 'Invalid parameter: business_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_limit: summary: Invalid limit parameter value: error: message: 'Invalid parameter: limit must be between 1 and 100' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_cursor: summary: Invalid pagination cursor value: error: message: 'Invalid parameter: cursor is malformed or expired' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: insufficient_permissions: summary: Insufficient permissions to access pre-verified phone numbers value: error: message: Your app doesn't have permission to access pre-verified phone numbers for this business type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource business_access_denied: summary: Business access denied value: error: message: Business is not accessible to your app type: OAuthException code: 200 error_subcode: 1349175 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Access Denied error_user_msg: Cannot access the specified business '404': description: Not Found - Business does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Business not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: business_not_eligible: summary: Business not eligible for pre-verified phone numbers value: error: message: Business is not eligible for pre-verified phone number access type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_filter_combination: summary: Invalid filter parameter combination value: error: message: 'Invalid filter combination: specified filters cannot be used together' type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Business-ID}/client_whatsapp_business_accounts: get: summary: Get Client WhatsApp Business Accounts description: 'Retrieve a list of WhatsApp Business Accounts that have been shared with the specified business. **Use Cases:** - Monitor shared WABA relationships and permissions - Verify WABA configuration and status information - Retrieve WABA details for business integrations - Manage multi-business WhatsApp messaging setups **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** WABA information can be cached for moderate periods, but status information may change frequently. Implement appropriate cache invalidation strategies. ' operationId: getClientWhatsAppBusinessAccounts tags: - Client WhatsApp Business Accounts parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Business-ID in: path required: true description: 'Your Business ID. This ID can be found in your Meta Business Suite URL or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: 1234567890123456 - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, name, currency, timezone_id). Available fields: id, name, account_review_status, purchase_order_number, audiences, ownership_type, subscribed_apps, business_verification_status, country, currency, timezone_id, on_behalf_of_business_info, schedules, is_enabled_for_insights, dcc_config, message_templates, phone_numbers ' schema: type: string example: id,name,account_review_status,currency,country - name: business_type in: query required: false description: 'Filter results by WhatsApp Business Account type ' schema: type: array items: type: string enum: - STANDARD - PREMIUM - ENTERPRISE example: - STANDARD - PREMIUM - name: limit in: query required: false description: 'Maximum number of WhatsApp Business Accounts to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 - name: after in: query required: false description: 'Cursor for pagination. Use this to get the next page of results. ' schema: type: string example: QVFIUjNpUWpVWmRBd0Rn - name: before in: query required: false description: 'Cursor for pagination. Use this to get the previous page of results. ' schema: type: string example: QVFIUjNpUWpVWmRBd0Dn - name: find in: query required: false description: 'Find a specific WhatsApp Business Account by ID ' schema: type: string example: '9876543210987654' responses: '200': description: Successfully retrieved client WhatsApp Business Accounts content: application/json: schema: $ref: '#/components/schemas/ClientWhatsAppBusinessAccountsResponse' examples: multiple_accounts: summary: Multiple client WhatsApp Business Accounts value: data: - id: '1234567890123456' name: Client Business WABA A account_review_status: APPROVED currency: USD country: US timezone_id: '1' business_verification_status: VERIFIED ownership_type: CLIENT_OWNED is_enabled_for_insights: true - id: '2345678901234567' name: Client Business WABA B account_review_status: PENDING currency: EUR country: DE timezone_id: '5' business_verification_status: PENDING ownership_type: AGENCY_OWNED is_enabled_for_insights: false paging: cursors: after: QVFIUjNpUWpVWmRBd0Rn next: https://graph.facebook.com/v23.0/1234567890/client_whatsapp_business_accounts?after=QVFIUjNpUWpVWmRBd0Rn single_account: summary: Single client WhatsApp Business Account value: data: - id: '1234567890123456' name: Client Business WABA account_review_status: APPROVED currency: USD country: US timezone_id: '1' business_verification_status: VERIFIED ownership_type: CLIENT_OWNED empty_response: summary: No client WhatsApp Business Accounts value: data: [] '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: business_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access client WhatsApp Business Accounts for this business type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Business ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Business not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this business type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Business-ID}/onboard_partners_to_mm_lite: post: summary: Onboard Partners to MM Lite description: 'Send a request from the partner to onboard an end business to MM Lite. This creates a business agreement request and sets OBO mobility intents on eligible WhatsApp Business Accounts. **Business Flow:** 1. Validates partner business and app permissions 2. Checks end business eligibility for MM Lite 3. Identifies eligible shared WABAs and OBO WABAs 4. Sets mobility intents on eligible OBO WABAs (BSPs only) 5. Creates business agreement request 6. Returns request ID for tracking **BSP vs TP Behavior:** - BSPs (Business Solution Providers): Can create OBO WABAs and set mobility intents - TPs (Technology Partners): Can only create onboarding requests, no OBO WABA management **Rate Limiting:** Subject to business partner integrations use case throttling limits. Use appropriate retry logic with exponential backoff. **Idempotency:** If a pending request already exists between the same partner and end business, the existing request ID is returned instead of creating a duplicate. ' operationId: onboardPartnersToMMLite tags: - MM Lite Onboarding parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Business-ID in: path required: true description: 'The end business ID that will receive the MM Lite onboarding request. This is the business that the partner wants to establish an MM Lite relationship with. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: solution_id in: query required: false description: 'Optional WhatsApp Business Solution ID to associate with the onboarding request. If provided, the solution will be linked to the business agreement and OBO mobility intents. ' schema: type: string pattern: ^[0-9]+$ example: '9876543210987654' responses: '200': description: Successfully created MM Lite onboarding request content: application/json: schema: $ref: '#/components/schemas/MMLiteOnboardingRequest' examples: new_request: summary: New onboarding request created value: request_id: '1234567890123456' existing_request: summary: Existing pending request returned value: request_id: '2345678901234567' '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_business_id: summary: Invalid business ID format value: error: message: 'Invalid parameter: business_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_solution_id: summary: Invalid solution ID format value: error: message: 'Invalid parameter: solution_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn no_eligible_wabas: summary: No eligible WABAs found value: error: message: No eligible WhatsApp Business Accounts found for MM Lite onboarding type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: missing_permissions: summary: App missing required permissions value: error: message: Your app doesn't have the required whatsapp_business_management permission type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource business_not_eligible: summary: End business not eligible for MM Lite value: error: message: End business is not eligible for MM Lite onboarding type: GraphMethodException code: 200 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn duplicate_request: summary: Duplicate onboarding request exists value: error: message: A business agreement request already exists between these parties type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '404': description: Not Found - Business ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Business not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: obo_mobility_error: summary: Error setting OBO mobility intents value: error: message: Failed to set OBO mobility intent on one or more WhatsApp Business Accounts type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn solution_not_found: summary: Solution ID not found or not accessible value: error: message: WhatsApp Business Solution not found or not accessible type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Business-ID}/owned_whatsapp_business_accounts: get: summary: Get Owned WhatsApp Business Accounts description: 'Retrieve WhatsApp Business Accounts owned by the specified business. This endpoint provides comprehensive information about all WABAs owned by the business, including account details, configuration, and status information. **Use Cases:** - Retrieve all WhatsApp Business Accounts owned by a business - Filter accounts by business type - Find specific accounts by ID - Monitor business portfolio of WhatsApp Business Accounts - Manage account access and permissions across multiple WABAs **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Account information can be cached for short periods, but status and configuration may change frequently. Implement appropriate cache invalidation strategies. ' operationId: getOwnedWhatsAppBusinessAccounts tags: - Owned WhatsApp Business Accounts parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Business-ID in: path required: true description: 'Your Business ID. This ID represents the business portfolio that owns the WhatsApp Business Accounts and can be found in your Business Manager settings. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: business_type in: query required: false description: 'Filter accounts by business type. Can specify multiple types as comma-separated values. Use this to filter between enterprise and small-medium business accounts. ' schema: type: array items: $ref: '#/components/schemas/WhatsAppBusinessType' style: form explode: false example: - ENTERPRISE - SMB - name: after in: query required: false description: 'Cursor for forward pagination. Use the cursor from the previous response to get the next page of results. ' schema: type: string example: QVFIUjBrRUs5QVJuUDhDSmZARMlc2dXRYNXBmMjMtRUt3SmFlbk9PRk43azdiN1VQaW1HcnRkejFzZATNoNDdTdGVWMDhjamVvY25HWnI4WjIzX0hYSk40NHhB - name: first in: query required: false description: 'Number of results to return in forward pagination. Maximum value is 100. Use with ''after'' cursor for forward pagination. ' schema: type: integer minimum: 1 maximum: 100 example: 25 - name: before in: query required: false description: 'Cursor for backward pagination. Use the cursor from the previous response to get the previous page of results. ' schema: type: string example: QVFIUnpPVXRnY3BPN19rTVItOG51T291YURjV3BaeXRXU29adDVreS04ekhSNl9YWTlfdmN3SHlyTEk1a2FRdnlWanBqM1FuQm1uZAHhfYl9UMTNCYjM3MWV3 - name: last in: query required: false description: 'Number of results to return in backward pagination. Maximum value is 100. Use with ''before'' cursor for backward pagination. ' schema: type: integer minimum: 1 maximum: 100 example: 25 - name: find in: query required: false description: 'Find a specific WhatsApp Business Account by ID within the owned accounts. Use this to quickly locate a specific account. ' schema: type: string pattern: ^[0-9]+$ example: '104996122399160' responses: '200': description: Successfully retrieved owned WhatsApp Business Accounts content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessAccountsConnection' examples: multiple_accounts: summary: Multiple owned WhatsApp Business Accounts value: data: - id: '104996122399160' name: Lucky Shrub message_template_namespace: 58e6d318_b627_4112_b9c7_2961197553ea timezone_id: '1' - id: '102290129340398' name: Test WhatsApp Business Account message_template_namespace: ba30dd89_2ebd_41e4_b805_f2c05ae04cc9 timezone_id: '1' paging: cursors: after: QVFIUjBrRUs5QVJuUDhDSmZARMlc2dXRYNXBmMjMtRUt3SmFlbk9PRk43azdiN1VQaW1HcnRkejFzZATNoNDdTdGVWMDhjamVvY25HWnI4WjIzX0hYSk40NHhB before: QVFIUnpPVXRnY3BPN19rTVItOG51T291YURjV3BaeXRXU29adDVreS04ekhSNl9YWTlfdmN3SHlyTEk1a2FRdnlWanBqM1FuQm1uZAHhfYl9UMTNCYjM3MWV3 single_account: summary: Single owned WhatsApp Business Account value: data: - id: '104996122399160' name: Lucky Shrub message_template_namespace: 58e6d318_b627_4112_b9c7_2961197553ea timezone_id: '1' empty_result: summary: No owned accounts found value: data: [] '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: business_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this business's WhatsApp Business Accounts type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Business ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Business not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested filter combination is not supported type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Business-ID}/share_preverified_numbers: post: summary: Share Pre-Verified Phone Number with Another Business description: 'Share a pre-verified phone number with another business entity, granting specified permissions for collaborative WhatsApp Business messaging operations. **Use Cases:** - Enable partner businesses to use your pre-verified phone numbers for messaging - Share phone number resources between parent and subsidiary businesses - Facilitate multi-business WhatsApp integrations with shared phone number access - Establish temporary or permanent phone number sharing relationships **Business Logic:** - Only businesses with appropriate ownership or sharing rights can share phone numbers - Shared phone numbers maintain original ownership while granting usage permissions - Multiple businesses can have access to the same phone number with different permission levels - Sharing relationships can be time-limited with automatic expiration **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Validation:** - Pre-verified phone number must exist and be accessible to the requesting business - Target business must be a valid and accessible business entity - Requested permissions must be valid and within the scope of allowed sharing permissions - Sharing operation must comply with business relationship and access control policies ' operationId: sharePreVerifiedPhoneNumber tags: - Pre-Verified Phone Number Sharing parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Business-ID in: path required: true description: 'Your Business ID that owns or has sharing rights to the pre-verified phone number. This ID can be found in your Meta Business Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: 1234567890123456 requestBody: required: true description: Phone number sharing configuration and target business details content: application/json: schema: $ref: '#/components/schemas/PreVerifiedPhoneNumberShareRequest' examples: basic_sharing: summary: Basic phone number sharing value: preverified_id: '1234567890123456' partner_business_id: '9876543210987654' responses: '200': description: Successfully shared pre-verified phone number with target business content: application/json: schema: $ref: '#/components/schemas/PreVerifiedPhoneNumberShareResponse' examples: successful_sharing: summary: Successful phone number sharing operation value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_phone_number_id: summary: Invalid pre-verified phone number ID value: error: message: 'Invalid preverified_id: must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_business_id: summary: Invalid partner business ID value: error: message: 'Invalid partner_business_id: business not found or not accessible' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: insufficient_permissions: summary: Insufficient permissions to share phone number value: error: message: Your business doesn't have permission to share this pre-verified phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your business doesn't have permission to share this phone number business_relationship_denied: summary: Business relationship access denied value: error: message: Target business is not accessible or sharing is not allowed type: OAuthException code: 200 error_subcode: 1349175 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Access Denied error_user_msg: Cannot share with the specified business '404': description: Not Found - Resource does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: phone_number_not_found: summary: Pre-verified phone number not found value: error: message: Pre-verified phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn business_not_found: summary: Business not found value: error: message: Business not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: phone_number_not_shareable: summary: Phone number is not in a shareable state value: error: message: Pre-verified phone number is not in a shareable state type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn already_shared: summary: Phone number already shared with target business value: error: message: Pre-verified phone number is already shared with the target business type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn business_relationship_invalid: summary: Invalid business relationship for sharing value: error: message: Business relationship does not allow phone number sharing type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/block_users: get: tags: - Block Users summary: Get blocked users description: "- Guide: [Block Users](https://developers.facebook.com/docs/business-messaging/whatsapp/block-users)\n \n- Endpoint reference: [GET WhatsApp Buiness Phone Number > block_users](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/block_users/#Reading)" operationId: getBlockedUsers parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' responses: '200': $ref: '#/components/responses/GetBlockedUsersResponse' security: - bearerAuth: [] post: tags: - Block Users summary: Block user(s) description: "- Guide: [Block Users](https://developers.facebook.com/docs/business-messaging/whatsapp/block-users)\n \n- Endpoint reference: [POST WhatsApp Buiness Phone Number > block_users](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/block_users/#Creating)" operationId: blockUserS parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: type: object properties: block_users: type: array items: type: object properties: user: type: string example: '+16505551234' example: - user: '+16505551234' messaging_product: type: string example: whatsapp examples: Block user(s): value: block_users: - user: '+16505551234' messaging_product: whatsapp responses: '200': $ref: '#/components/responses/BlockUsersResponse' security: - bearerAuth: [] delete: tags: - Block Users summary: Unblock user(s) description: "- Guide: [Block Users](https://developers.facebook.com/docs/business-messaging/whatsapp/block-users)\n \n- Endpoint reference: [DELETE WhatsApp Buiness Phone Number > block_users](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/block_users/#Deleting)" operationId: unblockUserS parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: type: object properties: block_users: type: array items: type: object properties: user: type: string example: '+16505551234' example: - user: '+16505551234' messaging_product: type: string example: whatsapp examples: Unblock user(s): value: block_users: - user: '+16505551234' messaging_product: whatsapp responses: '200': $ref: '#/components/responses/UnblockUsersResponse' security: - bearerAuth: [] parameters: - name: Version in: path required: true schema: type: string - name: Phone-Number-ID in: path required: true schema: type: string /{Version}/{Phone-Number-ID}/call_permissions: get: tags: - Call Permissions summary: Check Call Permissions description: 'Check whether you have permission to call a WhatsApp user and what actions are available. This endpoint returns the current permission status for calling a specific user, along with available actions and their limits. **Permission Status:** - `granted`: You have active permission to call this user - `pending`: A permission request has been sent but not yet approved - `denied`: The user has denied call permissions - `expired`: Previous permission has expired **Available Actions:** - `start_call`: Initiate a new call to this user - `send_call_permission_request`: Send a permission request to this user **Error Handling:** This endpoint may return various error codes including rate limiting errors if too many permission checks are made within a short period. ' operationId: checkCallPermissions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: user_wa_id in: query required: true schema: type: string example: '14085551234' description: The WhatsApp ID of the user you want to check call permissions for responses: '200': description: Call Permissions Check Success headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Connection-Quality: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: $ref: '#/components/schemas/CallPermissionCheckResponsePayload' examples: Granted Permission: value: messaging_product: whatsapp permission: status: granted expiration_time: 1735689600 actions: - action_name: start_call can_perform_action: true limits: - time_period: 24h current_usage: 5 max_allowed: 100 limit_expiration_time: 1735689600 - action_name: send_call_permission_request can_perform_action: false limits: null Pending Permission: value: messaging_product: whatsapp permission: status: pending actions: - action_name: start_call can_perform_action: false - action_name: send_call_permission_request can_perform_action: false Denied Permission: value: messaging_product: whatsapp permission: status: denied actions: - action_name: start_call can_perform_action: false - action_name: send_call_permission_request can_perform_action: true limits: - time_period: 24h current_usage: 2 max_allowed: 5 limit_expiration_time: 1735689600 '400': $ref: '#/components/responses/BadRequest' '429': $ref: '#/components/responses/TooManyRequests' '403': $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' security: - bearerAuth: [] parameters: - name: Version in: path required: true schema: type: string example: v21.0 description: The API version to use - name: Phone-Number-ID in: path required: true schema: type: string example: '102290129340398' description: The ID of the phone number registered with your WhatsApp Business Account /{Version}/{Phone-Number-ID}/calls: post: tags: - Calls summary: Manage Calls description: 'Use this endpoint to initiate, accept, reject, or terminate WhatsApp calls. **For initiating or managing a call:** Send a POST request with the appropriate action (connect, pre_accept, accept, reject, terminate). **For terminating a call:** Send a POST request with action "terminate" and the call_id. **Note:** Response with error code 138006 indicates a lack of a call request permission for this business number from the WhatsApp user. ' operationId: manageCalls parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: oneOf: - $ref: '#/components/schemas/CallRequestPayload' - $ref: '#/components/schemas/CallTerminateRequestPayload' examples: Connect Call: value: messaging_product: whatsapp to: '14085551234' action: connect session: sdp_type: offer sdp: 'v=0 o=- 3626166318745852955 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 a=extmap-allow-mixed a=msid-semantic: WMS d8b26053-4474-4eb7-b3c3-c93d6c8c9b2e m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 0 8 110 126 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:4g1c a=ice-pwd:qY/Bb+jQzg5ICn6X4fhJQetk a=ice-options:trickle a=fingerprint:sha-256 35:47:24:24:9F:93:C4:3E:DB:37:7F:BB:ED:F8:20:B5:AD:AC:DC:35:C2:7D:67:EE:6C:35:54:DF:A6:00:5C:4A a=setup:actpass a=mid:0 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid a=sendrecv a=msid:d8b26053-4474-4eb7-b3c3-c93d6c8c9b2e 5b4d3d96-ea9b-44a8-87e6-11a1ad21a3bc a=rtcp-mux a=rtpmap:111 opus/48000/2 a=rtcp-fb:111 transport-cc a=fmtp:111 minptime=10;useinbandfec=1 a=rtpmap:63 red/48000/2 a=fmtp:63 111/111 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:110 telephone-event/48000 a=rtpmap:126 telephone-event/8000 a=ssrc:2220762577 cname:w/zwpg3jXNiTFTdZ a=ssrc:2220762577 msid:d8b26053-4474-4eb7-b3c3-c93d6c8c9b2e 5b4d3d96-ea9b-44a8-87e6-11a1ad21a3bc ' biz_opaque_callback_data: 0fS5cePMok Terminate Call: value: messaging_product: whatsapp call_id: wacid.HBgLMTIxODU1NTI4MjgVAgARGCAyODRQIAFRoA action: terminate Accept Call: value: messaging_product: whatsapp to: '14085551234' action: accept session: sdp_type: answer sdp: 'v=0 o=- 3626166318745852955 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 a=extmap-allow-mixed a=msid-semantic: WMS d8b26053-4474-4eb7-b3c3-c93d6c8c9b2e m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 0 8 110 126 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:4g1c a=ice-pwd:qY/Bb+jQzg5ICn6X4fhJQetk a=ice-options:trickle a=fingerprint:sha-256 35:47:24:24:9F:93:C4:3E:DB:37:7F:BB:ED:F8:20:B5:AD:AC:DC:35:C2:7D:67:EE:6C:35:54:DF:A6:00:5C:4A a=setup:actpass a=mid:0 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid a=sendrecv a=msid:d8b26053-4474-4eb7-b3c3-c93d6c8c9b2e 5b4d3d96-ea9b-44a8-87e6-11a1ad21a3bc a=rtcp-mux a=rtpmap:111 opus/48000/2 a=rtcp-fb:111 transport-cc a=fmtp:111 minptime=10;useinbandfec=1 a=rtpmap:63 red/48000/2 a=fmtp:63 111/111 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:110 telephone-event/48000 a=rtpmap:126 telephone-event/8000 a=ssrc:2220762577 cname:w/zwpg3jXNiTFTdZ a=ssrc:2220762577 msid:d8b26053-4474-4eb7-b3c3-c93d6c8c9b2e 5b4d3d96-ea9b-44a8-87e6-11a1ad21a3bc ' Reject Call: value: messaging_product: whatsapp to: '14085551234' action: reject responses: '200': description: Call Management Success headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Connection-Quality: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: oneOf: - $ref: '#/components/schemas/CallResponsePayload' - $ref: '#/components/schemas/CallTerminateResponsePayload' examples: Connect Call Response: value: messaging_product: whatsapp calls: - id: wacid.ABGGFjFVU2AfAgo6V Terminate Call Response: value: success: true security: - bearerAuth: [] parameters: - name: Version in: path required: true schema: type: string example: v21.0 description: The API version to use - name: Phone-Number-ID in: path required: true schema: type: string example: '102290129340398' description: The ID of the phone number registered with your WhatsApp Business Account /{Version}/{Phone-Number-ID}/groups: post: summary: Create Group description: Create a new group and get an invite link operationId: createGroup parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: Phone-Number-ID in: path required: true description: Business phone number ID schema: type: string example: '12784358810' requestBody: required: true content: application/json: schema: type: object required: - messaging_product - subject properties: messaging_product: type: string enum: - whatsapp description: Messaging product subject: type: string maxLength: 128 description: Group subject. Maximum 128 characters. Whitespace is trimmed. example: New Purchase Inquiry description: type: string maxLength: 2048 description: Group description. Maximum 2048 characters. example: Jim, an existing client, would like to learn about new car purchase options for current year models. join_approval_mode: type: string enum: - approval_required - auto_approve default: auto_approve description: 'Indicates if WhatsApp users who click the invitation link can join the group with or without being approved first. - approval_required: WhatsApp users must be approved via join request before they can access the group - auto_approve: WhatsApp users can join the group without approval ' responses: '200': description: Group creation request submitted successfully content: application/json: schema: type: object properties: messaging_product: type: string example: whatsapp request_id: type: string description: Group creation request ID example: '106540352242922' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '500': $ref: '#/components/responses/InternalServerError' security: - bearerAuth: [] get: summary: Get Active Groups description: Retrieve a list of active groups for a given business phone number operationId: getActiveGroups parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: Phone-Number-ID in: path required: true description: Business phone number ID schema: type: string - name: limit in: query description: Number of groups to fetch in the request schema: type: integer minimum: 1 maximum: 1024 default: 25 - name: after in: query description: Cursor that points to the end of a page of data schema: type: string - name: before in: query description: Cursor that points to the beginning of a page of data schema: type: string responses: '200': description: List of active groups content: application/json: schema: type: object properties: data: type: object properties: groups: type: array items: type: object properties: id: type: string description: Group ID subject: type: string description: Group subject created_at: type: string description: Group creation timestamp paging: $ref: '#/components/schemas/PagingInfo' security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/marketing_messages: post: tags: - Marketing Messages summary: Send Marketing Template Message description: Send marketing template messages using pre-approved templates. Supports optional product policy controls and message activity sharing settings. operationId: sendMarketingMessage parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true description: WhatsApp API version (e.g., v20.0) schema: type: string example: v20.0 - name: Phone-Number-ID in: path required: true description: WhatsApp Business Phone Number ID schema: type: string example: '102290129340398' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MarketingMessageRequestPayload' examples: Simple Template Message: summary: Basic marketing template message value: messaging_product: whatsapp recipient_type: individual to: '16315552222' type: template template: name: hello_world language: code: en Template with Product Policy: summary: Template message with optional product policy value: messaging_product: whatsapp recipient_type: individual to: '16315552222' type: template template: name: welcome_offer language: code: en_US product_policy: CLOUD_API_FALLBACK message_activity_sharing: true Parameterized Template: summary: Template message with parameters value: messaging_product: whatsapp recipient_type: individual to: '16315552222' type: template template: name: promotional_offer language: code: en components: - type: body parameters: - type: text text: John Doe - type: currency currency: fallback_value: $25.00 code: USD amount_1000: 25000 product_policy: STRICT message_activity_sharing: false responses: '200': description: Marketing message sent successfully headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Connection-Quality: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: $ref: '#/components/schemas/MarketingMessageResponsePayload' examples: Successful Response: summary: Successful marketing message response value: contacts: - input: '16315552222' wa_id: '16315552222' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp success: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/media: post: tags: - Media summary: Upload Image description: This request uploads an image as .jpeg. The parameters are specified as **form-data** in the request **body**. operationId: uploadImage parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string example: v21.0 - name: Phone-Number-ID in: path required: true schema: type: string example: '102290129340398' requestBody: content: application/json: schema: type: object properties: file: type: string example: '@/local/path/file.ogg;type=ogg' messaging_product: type: string example: whatsapp examples: Upload Audio: value: file: '@/local/path/file.ogg;type=ogg' messaging_product: whatsapp Upload Image: value: file: '@/local/path/file.jpg;type=image/jpeg' messaging_product: whatsapp Upload Sticker: value: file: '@/local/path/file.webp;type=webp' messaging_product: whatsapp multipart/form-data: schema: type: object properties: file: type: string format: binary messaging_product: type: string example: whatsapp responses: '200': description: Upload Image JSON / Upload Sticker File (form-data) / Upload Sticker File JSON / Upload Audio (form-data) / Upload Audio JSON content: application/json: schema: type: object properties: id: type: string example: '4490709327384033' examples: Upload Audio (form-data): value: id: Upload Audio JSON: value: id: '4490709327384033' Upload Image JSON: value: id: '4490709327384033' Upload Sticker File (form-data): value: id: Upload Sticker File JSON: value: id: '4490709327384033' security: - bearerAuth: [] parameters: - name: Version in: path required: true schema: type: string - name: Phone-Number-ID in: path required: true schema: type: string /{Version}/{Phone-Number-ID}/messages: post: tags: - Messages summary: Send Message. description: Send Message. operationId: sendMessage parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' requestBody: content: application/json: schema: $ref: '#/components/schemas/Message' examples: Send Audio Message by ID: value: audio: id: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: audio Send Audio Message by URL: value: audio: link: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: audio Send Catalog Message: value: interactive: action: name: catalog_message parameters: thumbnail_product_retailer_id: 2lc20305pt body: text: Hello! Thanks for your interest. Ordering is easy. Just visit our catalog and add items to purchase. footer: text: Best grocery deals on WhatsApp! type: catalog_message messaging_product: whatsapp recipient_type: individual to: '+16505551234' type: interactive Send Catalog Template Message: value: messaging_product: whatsapp recipient_type: individual template: components: - parameters: - text: '100' type: text - text: '400' type: text - text: '3' type: text type: body - index: 0 parameters: - action: thumbnail_product_retailer_id: 2lc20305pt type: action sub_type: CATALOG type: button language: code: en_US name: intro_catalog_offer to: '+16505551234' type: template Send Contact Message: value: contacts: - 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: HOME name: first_name: John formatted_name: John Smith last_name: Smith middle_name: D. prefix: Dr suffix: Jr 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 - type: HOME url: https://www.whatsapp.com messaging_product: whatsapp to: '{{Recipient-Phone-Number}}' type: contacts Send Document Message by ID: value: document: caption: filename: id: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: document Send Document Message by URL: value: document: caption: link: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: document Send Draft Flow by ID: value: interactive: action: name: flow parameters: flow_action: navigate flow_action_payload: data: : screen: flow_cta: Not shown in draft mode flow_id: '{{Flow-ID}}' flow_message_version: '3' flow_token: mode: draft body: text: Not shown in draft mode footer: text: Not shown in draft mode header: text: Not shown in draft mode type: text type: flow messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: interactive Send Draft Flow by Name: value: interactive: action: name: flow parameters: flow_action: navigate flow_action_payload: data: : screen: flow_cta: Not shown in draft mode flow_message_version: '3' flow_name: '{{Flow-Name}}' flow_token: mode: draft body: text: Not shown in draft mode footer: text: Not shown in draft mode header: text: Not shown in draft mode type: text type: flow messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: interactive Send Flow Template Message: value: messaging_product: whatsapp template: components: - index: '0' parameters: - action: flow_action_data: : flow_token: type: action sub_type: flow type: button language: code: en_US name: to: '{{Recipient-Phone-Number}}' type: template Send Image Message by ID: value: image: id: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: image Send Image Message by URL: value: image: link: http(s)://image-url messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: image Send List Message: value: interactive: action: button: sections: - rows: - description: id: title: - description: id: title: title: - rows: - description: id: title: - description: id: title: title: body: text: footer: text: header: text: type: text type: list messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: interactive Send Location Message: value: location: address: 1 Hacker Way, Menlo Park, CA 94025 latitude: 37.758056 longitude: -122.425332 name: META HQ messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: location Send Message Template Interactive: value: messaging_product: whatsapp recipient_type: individual template: components: - parameters: - image: link: http(s)://the-image-url type: image type: header - parameters: - text: text-string type: text - currency: amount_1000: 100990 code: USD fallback_value: $100.99 type: currency - date_time: calendar: GREGORIAN day_of_month: 25 day_of_week: 5 fallback_value: February 25, 1977 hour: 15 minute: 33 month: 2 year: 1977 type: date_time type: body - index: '0' parameters: - payload: aGlzIHRoaXMgaXMgY29v type: payload sub_type: quick_reply type: button - index: '1' parameters: - payload: 9rwnB8RbYmPF5t2Mn09x4h type: payload sub_type: quick_reply type: button language: code: language-and-locale-code name: template-name to: '{{Recipient-Phone-Number}}' type: template Send Message Template Media: value: messaging_product: whatsapp recipient_type: individual template: components: - parameters: - image: link: http(s)://the-image-url type: image type: header - parameters: - text: text-string type: text - currency: amount_1000: 100990 code: USD fallback_value: $100.99 type: currency - date_time: calendar: GREGORIAN day_of_month: 25 day_of_week: 5 fallback_value: February 25, 1977 hour: 15 minute: 33 month: 2 year: 1977 type: date_time type: body language: code: language-and-locale-code name: template-name to: '{{Recipient-Phone-Number}}' type: template Send Message Template Text: value: messaging_product: whatsapp recipient_type: individual template: components: - parameters: - text: text-string type: text - currency: amount_1000: 100990 code: USD fallback_value: $100.99 type: currency - date_time: calendar: GREGORIAN day_of_month: 25 day_of_week: 5 fallback_value: February 25, 1977 hour: 15 minute: 33 month: 2 year: 1977 type: date_time type: body language: code: language-and-locale-code name: template-name to: '{{Recipient-Phone-Number}}' type: template Send Multi-Product Message: value: interactive: action: catalog_id: '146265584024623' sections: - product_items: - product_retailer_id: - product_retailer_id: title: - product_items: - product_retailer_id: - product_retailer_id: title: body: text: footer: text: header: text: type: type: product_list messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: interactive Send Order Details Message: value: interactive: action: name: review_and_pay parameters: currency: INR order: discount: description: optional_text discount_program_name: optional_text offset: 100 value: 100 items: - amount: offset: 100 value: 1500 name: bread quantity: 1 retailer_id: '1234567' sale_amount: offset: 100 value: 1000 shipping: description: optional_text offset: 100 value: 100 status: pending subtotal: offset: 100 value: 1000 tax: description: optional_text offset: 100 value: 100 payment_configuration: my-payment-config-name payment_type: upi reference_id: unique-reference-id total_amount: offset: 100 value: 1100 type: digital-goods body: text: your-text-body-content footer: text: your-text-footer-content header: image: link: https://upload.wikimedia.org/wikipedia/commons/thumb/3/3b/Home_made_sour_dough_bread.jpg/640px-Home_made_sour_dough_bread.jpg type: image type: order_details messaging_product: whatsapp recipient_type: individual to: '{{Recipient-WA-Phone-Number}}' type: interactive Send Order Status Message: value: interactive: action: name: review_order parameters: order: description: optional-text status: processing reference_id: unique-reference-id-from-order-details-msg body: text: your-text-body-content type: order_status messaging_product: whatsapp recipient_type: individual to: '{{Recipient-WA-Phone-Number}}' type: interactive Send Published Flow by ID: value: interactive: action: name: flow parameters: flow_action: navigate flow_action_payload: data: : screen: flow_cta: Open Flow! flow_id: '{{Flow-ID}}' flow_message_version: '3' flow_token: body: text: footer: text: header: text: type: text type: flow messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: interactive Send Published Flow by Name: value: interactive: action: name: flow parameters: flow_action: navigate flow_action_payload: data: : screen: flow_cta: Open Flow! flow_message_version: '3' flow_name: '{{Flow-Name}}' flow_token: body: text: footer: text: header: text: type: text type: flow messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: interactive Send Reply Button: value: interactive: action: buttons: - reply: id: title: type: reply - reply: id: title: type: reply body: text: type: button messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: interactive Send Reply to Audio Message by ID: value: audio: id: context: message_id: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: audio Send Reply to Audio Message by URL: value: audio: link: http(s)://audio-url context: message_id: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: audio Send Reply to Contact Message: value: contacts: - 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: HOME name: first_name: John formatted_name: John Smith last_name: Smith middle_name: D. prefix: Dr suffix: Jr 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 - type: HOME url: https://www.whatsapp.com context: message_id: messaging_product: whatsapp to: '{{Recipient-Phone-Number}}' type: contacts Send Reply to Document Message by ID: value: context: message_id: document: caption: filename: id: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: document Send Reply to Document Message by URL: value: context: message_id: document: caption: link: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: document Send Reply to Image Message by ID: value: context: message_id: image: id: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: image Send Reply to Image Message by URL: value: context: message_id: image: link: http(s)://image-url messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: image Send Reply to List Message: value: context: message_id: interactive: action: button: sections: - rows: - description: id: title: - description: id: title: title: - rows: - description: id: title: - description: id: title: title: body: text: footer: text: header: text: type: text type: list messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' Send Reply to Location Message: value: context: message_id: location: address: 1 Hacker Way, Menlo Park, CA 94025 latitude: 37.758056 longitude: -122.425332 name: META HQ messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: location Send Reply to Sticker Message by ID: value: context: message_id: messaging_product: whatsapp recipient_type: individual sticker: id: to: '{{Recipient-Phone-Number}}' type: sticker Send Reply to Sticker Message by URL: value: context: message_id: messaging_product: whatsapp recipient_type: individual sticker: link: to: '{{Recipient-Phone-Number}}' type: sticker Send Reply to Text Message: value: context: message_id: messaging_product: whatsapp recipient_type: individual text: body: preview_url: false to: '{{Recipient-Phone-Number}}' type: text Send Reply to Video Message by ID: value: context: message_id: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: video video: caption: id: Send Reply to Video Message by URL: value: context: message_id: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: video video: caption: link: Send Reply with Reaction Message: value: messaging_product: whatsapp reaction: emoji: 😀 message_id: wamid.HBgLM... recipient_type: individual to: '{{Recipient-Phone-Number}}' type: reaction Send Sample Issue Resolution Template: value: messaging_product: whatsapp template: components: - parameters: - text: '*Mr. Jones*' type: text type: body - index: 0 parameters: - text: true type: text sub_type: quick_reply type: button - index: 1 parameters: - text: false type: text sub_type: quick_reply type: button language: code: en_US policy: deterministic name: sample_issue_resolution to: '{{Recipient-Phone-Number}}' type: template Send Sample Shipping Confirmation Template: value: messaging_product: whatsapp recipient_type: individual template: components: - parameters: - text: text-string type: text - currency: amount_1000: 100990 code: USD fallback_value: $100.99 type: currency - date_time: calendar: GREGORIAN day_of_month: 25 day_of_week: 5 fallback_value: February 25, 1977 hour: 15 minute: 33 month: 2 year: 1977 type: date_time type: body language: code: language-and-locale-code name: template-name to: '16315555555' type: template Send Sample Text Message: value: messaging_product: whatsapp recipient_type: individual template: components: - parameters: - text: text-string type: text - currency: amount_1000: 100990 code: USD fallback_value: $100.99 type: currency - date_time: calendar: GREGORIAN day_of_month: 25 day_of_week: 5 fallback_value: February 25, 1977 hour: 15 minute: 33 month: 2 year: 1977 type: date_time type: body language: code: language-and-locale-code name: template-name to: '16315555555' type: template Send Single Product Message: value: interactive: action: catalog_id: '367025965434465' product_retailer_id: body: text: footer: text: type: product messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: interactive Send Sticker Message by ID: value: messaging_product: whatsapp recipient_type: individual sticker: id: to: '{{Recipient-Phone-Number}}' type: sticker Send Sticker Message by URL: value: messaging_product: whatsapp recipient_type: individual sticker: link: to: '{{Recipient-Phone-Number}}' type: sticker Send Test Message: value: messaging_product: whatsapp template: language: code: en_US name: hello_world to: '{{Recipient-Phone-Number}}' type: template Send Text Message: value: messaging_product: whatsapp recipient_type: individual text: body: text-message-content preview_url: false to: '{{Recipient-Phone-Number}}' type: text Send Text Message with Preview URL: value: messaging_product: whatsapp text: body: Please visit https://youtu.be/hpltvTEiRrY. preview_url: true to: '{{Recipient-Phone-Number}}' Send Video Message by ID: value: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: video video: caption: id: Send Video Message by URL: value: messaging_product: whatsapp recipient_type: individual to: '{{Recipient-Phone-Number}}' type: video video: caption: link: Send typing indicator and read receipt: value: message_id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUYzMjEzNDM2RTZGQ0MzMDJBRgA= messaging_product: whatsapp status: read typing_indicator: type: text responses: '200': description: Send Test Message / Send Text Message / Send Reply to Text Message / Send Reply with Reaction Message / Send Image Message by ID / Send Reply to Image Message by ID / Send Image Message by URL / Send Reply to Image Message by URL / Send Audio Message by ID / Send Reply to Audio Message by ID / Send Audio Message By URL / Send Reply to Audio Message by URL / Send Document Message by ID / Send Reply to Document Message by ID / Send Document Message by URL / Send Reply to Document Message by URL / Send Sticker Message By ID / Send Reply to Sticker Message by ID / Send Sticker Message By URL / Send Reply to Sticker Message by URL / Send Video Message By ID / Send Reply to Video Message by ID / Send Video Message By URL / Send Reply to Video Message by URL / Send Contact Message / Send Reply to Contact Message / Send Location Messages / Send Reply to Location Message / Send Message Template Text / Send Message Template Media / Send Interactive Message Template / Send List Message / Send Reply to List Message / Send Reply Button / Send Single Product Message / Example response / Example response / Send Draft Flow by Name / Send Draft Flow by ID / Send Published Flow by Name / Send Published Flow by ID / Send Flow Template Message / Send typing indicator and read receipt / Send Sample Text message / Send Sample Shipping Confirmation Template / Send Sample Issue Resolution Template headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Connection-Quality: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: $ref: '#/components/schemas/MessageResponsePayload' examples: Example response: value: contacts: - input: '+16505551234' wa_id: '16505551234' messages: - id: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJCOTY3NDc0NDFDRUI3NTA0Q0UA messaging_product: whatsapp Send Audio Message By URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Audio Message by ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Contact Message: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Document Message by ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Document Message by URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Draft Flow by ID: value: contacts: - input: '18055555555' wa_id: '18055555555' messages: - id: wamid.HBgL... messaging_product: whatsapp Send Draft Flow by Name: value: contacts: - input: '18055555555' wa_id: '18055555555' messages: - id: wamid.HBgL... messaging_product: whatsapp Send Flow Template Message: value: contacts: - input: '18055555555' wa_id: '18055555555' messages: - id: wamid.HBgL... messaging_product: whatsapp Send Image Message by ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Image Message by URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Interactive Message Template: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send List Message: value: contacts: - input: '15555551234' wa_id: messages: - id: wamid.ID messaging_product: whatsapp Send Location Messages: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Message Template Media: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Message Template Text: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Published Flow by ID: value: contacts: - input: '18055555555' wa_id: '18055555555' messages: - id: wamid.HBgL... messaging_product: whatsapp Send Published Flow by Name: value: contacts: - input: '18055555555' wa_id: '18055555555' messages: - id: wamid.HBgL... messaging_product: whatsapp Send Reply Button: value: contacts: - input: PHONE_NUMBER wa_id: WHATSAPP_ID messages: - id: wamid.ID messaging_product: whatsapp Send Reply to Audio Message by ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Audio Message by URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Contact Message: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Document Message by ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Document Message by URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Image Message by ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Image Message by URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to List Message: value: contacts: - input: '15555551234' wa_id: messages: - id: wamid.ID messaging_product: whatsapp Send Reply to Location Message: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Sticker Message by ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Sticker Message by URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Text Message: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Video Message by ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply to Video Message by URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Reply with Reaction Message: value: contacts: - input: wa_id: messages: - id: wamid.HBgLM... messaging_product: whatsapp Send Sample Shipping Confirmation Template: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Sample Text message: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Single Product Message: value: contacts: - input: +1-631-555-5555 wa_id: '16315555555' messages: - id: wamid.gBGGFlaCGg0xcvAdgmZ9plHrf2Mh-o messaging_product: whatsapp Send Sticker Message By ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Sticker Message By URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Test Message: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Text Message: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Video Message By ID: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send Video Message By URL: value: contacts: - input: 48XXXXXXXXX wa_id: '48XXXXXXXXX ' messages: - id: wamid.gBGGSFcCNEOPAgkO_KJ55r4w_ww messaging_product: whatsapp Send typing indicator and read receipt: value: success: true security: - bearerAuth: [] parameters: - name: Version in: path required: true schema: type: string - name: Phone-Number-ID in: path required: true schema: type: string /{Version}/{Phone-Number-ID}/message_qrdls: get: summary: List All Message QR Codes description: 'Retrieve all message QR codes for a phone number, sorted by creation time (newest first). Supports field selection, filtering by code, cursor-based pagination, and QR image generation. ' operationId: listAllQrCodes tags: - QR Code Collection parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'The WhatsApp Business Account phone number ID for which to list QR codes. This ID is provided when you add a phone number to your WhatsApp Business Account. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. Available fields: - code: QR code identifier (always included) - prefilled_message: Pre-filled message text (always included) - deep_link_url: WhatsApp deep link URL (always included) - creation_time: Unix timestamp when QR code was created (first-party apps only) - qr_image_url.format(FORMAT): QR code image URL where FORMAT is SVG or PNG Example: "code,prefilled_message,qr_image_url.format(SVG)" ' schema: type: string example: code,prefilled_message,deep_link_url,qr_image_url.format(SVG) - name: code in: query required: false description: 'Filter results to a specific QR code by its unique identifier. When provided, only the matching QR code will be returned (if it exists). ' schema: type: string pattern: ^[A-Z2-7]{14}$ minLength: 14 maxLength: 14 example: ANED2T5QRU7HG1 - name: limit in: query required: false description: 'Maximum number of QR codes to return in a single response. Default and maximum limit is typically 25. ' schema: type: integer minimum: 1 maximum: 25 default: 25 example: 10 - name: after in: query required: false description: 'Cursor for pagination. Use this to get the next page of results. Obtain this value from the paging.cursors.after field in previous responses. ' schema: type: string example: MTYwNDYxNzIwMQ== - name: before in: query required: false description: 'Cursor for pagination. Use this to get the previous page of results. Obtain this value from the paging.cursors.before field in previous responses. ' schema: type: string example: MTYwNDYxNzIwMA== responses: '200': description: Successfully retrieved the list of message QR codes content: application/json: schema: $ref: '#/components/schemas/QrCodeList' examples: default_fields: summary: Default fields response description: Response with default fields (code, prefilled_message, deep_link_url) value: data: - code: 5QBPAD2DC6L5A1 prefilled_message: Show me Cyber Tuesday deals! deep_link_url: https://wa.me/message/5QBPAD2DC6L5A1 - code: ANED2T5QRU7HG1 prefilled_message: Show me Cyber Monday deals! deep_link_url: https://wa.me/message/ANED2T5QRU7HG1 - code: WOMVT6TJ2BP7A1 prefilled_message: Tell me more about your production workshop deep_link_url: https://wa.me/message/WOMVT6TJ2BP7A1 with_qr_image: summary: Response with QR code image description: Response including QR code image URL in SVG format value: data: - code: FO7JXE4BG3RFG1 prefilled_message: Tell me more about your event planning packages deep_link_url: https://wa.me/message/FO7JXE4BG3RFG1 qr_image_url: https://scontent-iad3-1.xx.fbcdn.net/m1/v/t6/An-H7T8OyTqO07lcRGHlKteuPMKDnx07nua3dGb4i560bVxDscweOV4KoKD_4wCDFoHR_C5LyVjxQISKPxwora1bbFhUEo2nA19ZPLBUVoQSmV12l1x-nuu312jKty-5rmojmde_a0g?ccb=10-5&oh=00_AfASq_vjojFza_9A-HDeRgHM3wZ8yjNprpYBjNKOn8RkSg&oe=64550A9E&_nc_sid=f36290 single_qr_code: summary: Filtered by specific QR code description: Response when filtering by a specific QR code ID value: data: - code: ANED2T5QRU7HG1 prefilled_message: Show me Cyber Monday deals! deep_link_url: https://wa.me/message/ANED2T5QRU7HG1 empty_response: summary: No QR codes found description: Response when no QR codes exist or match the filter criteria value: data: [] '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid fields parameter. Check field names and format specifications type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to list QR codes for this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Too many API calls. Please try again later type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Create or Update Message QR Code description: 'Create a new QR code (without code parameter) or update existing QR code (with code parameter). Supports optional QR image generation in PNG or SVG format. ' operationId: createOrUpdateQrCode tags: - QR Code Collection parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'The WhatsApp Business Account phone number ID for which to create or update the QR code. This ID is provided when you add a phone number to your WhatsApp Business Account. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: oneOf: - $ref: '#/components/schemas/CreateQrCodeRequest' - $ref: '#/components/schemas/UpdateQrCodeRequest' examples: create_qr_code: summary: Create new QR code with SVG image description: Creates a new QR code and generates an SVG image value: prefilled_message: Hi! I'm interested in your products. Can you help me? generate_qr_image: SVG create_qr_code_png: summary: Create new QR code with PNG image description: Creates a new QR code and generates a PNG image value: prefilled_message: Hello! I'd like to get more information about your services. generate_qr_image: PNG create_qr_code_no_image: summary: Create new QR code without image description: Creates a new QR code without generating an image file value: prefilled_message: I'm interested in learning more about your business! update_existing_qr_code: summary: Update existing QR code message description: Updates the pre-filled message for an existing QR code value: code: ANED2T5QRU7HG1 prefilled_message: Hello! I'd like to know more about your latest offers. responses: '200': description: Successfully created or updated the message QR code content: application/json: schema: $ref: '#/components/schemas/QrCodeResponse' examples: created_qr_code_with_image: summary: Newly created QR code with image value: code: ANED2T5QRU7HG1 prefilled_message: Hi! I'm interested in your products. Can you help me? deep_link_url: https://wa.me/message/ANED2T5QRU7HG1 qr_image_url: https://scontent-iad3-2.xx.fbcdn.net/m1/v/t6/An-psFmLBls2NFXnhhkSVqwIHEqCTQoNKTLxxlOeci0Wbsukd2RLiwZalHrXwqT5RTFSzOhyw6OLvJJO0itaQtJI1BS2WkNcV67wR3GNx7ZX1tFSNCbpo1e6KPptKF1GbVGzmUfkgSPX?ccb=10-5&oh=00_AfAOAr6oRA2OKV_Ur3GUh4em57sACxUkfhXHsObiFrxOsA&oe=64DCCEF6&_nc_sid=5a413f updated_qr_code: summary: Updated existing QR code value: code: WOMVT6TJ2BP7A1 prefilled_message: Hello! I'd like to know more about your latest offers. deep_link_url: https://wa.me/message/WOMVT6TJ2BP7A1 '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid prefilled_message length. Maximum 140 characters allowed type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to manage QR codes for this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or QR code not found for update content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Too many QR code operations. Please try again later type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/message_qrdls/{QR-Code-ID}: get: summary: Get Individual Message QR Code description: 'Retrieve details for a specific QR code by its unique identifier. Supports field selection and QR image generation. Response returns QR code in data array for consistency. ' operationId: getIndividualQrCode tags: - Individual QR Code parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'The WhatsApp Business Account phone number ID that owns the QR code. This ID is provided when you add a phone number to your WhatsApp Business Account. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: QR-Code-ID in: path required: true description: 'The unique 14-character identifier of the QR code to retrieve. This is the code value returned when the QR code was created. ' schema: type: string pattern: ^[A-Z2-7]{14}$ minLength: 14 maxLength: 14 example: ANED2T5QRU7HG1 - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. Available fields: - code: QR code identifier (always included) - prefilled_message: Pre-filled message text (always included) - deep_link_url: WhatsApp deep link URL (always included) - creation_time: Unix timestamp when QR code was created (first-party apps only) - qr_image_url.format(FORMAT): QR code image URL where FORMAT is SVG or PNG Example: "code,prefilled_message,qr_image_url.format(SVG)" ' schema: type: string example: code,prefilled_message,deep_link_url,qr_image_url.format(SVG) responses: '200': description: Successfully retrieved the message QR code details content: application/json: schema: $ref: '#/components/schemas/QrCodeResponse' examples: default_fields: summary: Default fields response description: Response with default fields (code, prefilled_message, deep_link_url) value: data: - code: ANED2T5QRU7HG1 prefilled_message: Show me Cyber Monday deals! deep_link_url: https://wa.me/message/ANED2T5QRU7HG1 with_qr_image_svg: summary: Response with SVG QR code image description: Response including QR code image URL in SVG format value: data: - code: ANED2T5QRU7HG1 prefilled_message: Show me Cyber Monday deals! deep_link_url: https://wa.me/message/ANED2T5QRU7HG1 qr_image_url: https://scontent-iad3-1.xx.fbcdn.net/m1/v/t6/An-H7T8OyTqO07lcRGHlKteuPMKDnx07nua3dGb4i560bVxDscweOV4KoKD_4wCDFoHR_C5LyVjxQISKPxwora1bbFhUEo2nA19ZPLBUVoQSmV12l1x-nuu312jKty-5rmojmde_a0g?ccb=10-5&oh=00_AfASq_vjojFza_9A-HDeRgHM3wZ8yjNprpYBjNKOn8RkSg&oe=64550A9E&_nc_sid=f36290 with_creation_time: summary: Response with creation time (first-party apps only) description: Response including creation timestamp for first-party applications value: data: - code: ANED2T5QRU7HG1 prefilled_message: Show me Cyber Monday deals! deep_link_url: https://wa.me/message/ANED2T5QRU7HG1 creation_time: 1672531200 '400': description: Bad Request - Invalid QR code ID format or parameters content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid QR code ID format. Expected 14-character alphanumeric string type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access QR codes for this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID or QR code does not exist content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: QR code not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: QR Code Not Found error_user_msg: The QR code you're trying to access doesn't exist or has been deleted '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Too many API calls. Please try again later type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] delete: summary: Delete Individual Message QR Code description: 'Permanently delete a specific QR code. Once deleted, the QR code and deep link become invalid. Deletion cannot be undone and affects any existing marketing materials using the QR code. ' operationId: deleteIndividualQrCode tags: - Individual QR Code parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'The WhatsApp Business Account phone number ID that owns the QR code to be deleted. This ID is provided when you add a phone number to your WhatsApp Business Account. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: QR-Code-ID in: path required: true description: 'The unique 14-character identifier of the QR code to delete. This is the code value returned when the QR code was created. ' schema: type: string pattern: ^[A-Z2-7]{14}$ minLength: 14 maxLength: 14 example: ANED2T5QRU7HG1 responses: '200': description: Successfully deleted the message QR code content: application/json: schema: $ref: '#/components/schemas/DeleteQrCodeResponse' examples: successful_deletion: summary: QR code successfully deleted description: Confirmation that the QR code has been permanently deleted value: success: true '400': description: Bad Request - Invalid QR code ID format content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid QR code ID format. Expected 14-character alphanumeric string type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to delete QR codes for this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID or QR code does not exist content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: qr_code_not_found: summary: QR code not found description: The specified QR code doesn't exist or has already been deleted value: error: message: QR code not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: QR Code Not Found error_user_msg: The QR code you're trying to delete doesn't exist or has already been deleted phone_number_not_found: summary: Phone number not found description: The specified phone number ID doesn't exist or is not accessible value: error: message: Phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Phone Number Not Found error_user_msg: The phone number you're trying to access doesn't exist or is not available '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Too many deletion attempts. Please try again later type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/messages_encrypted: post: tags: - Encrypted Messages summary: Send Encrypted Message description: 'Send encrypted messages using JWE (JSON Web Encryption) format. This endpoint provides an additional layer of security on top of existing standard TLS/SSL by accepting pre-encrypted message payloads and returning encrypted responses. **Important Notes:** - Only successful responses will be encrypted - Error responses will be returned unencrypted if the underlying JSON is incorrectly formatted - Payload encryption must be enabled for the phone number using the `POST //settings` endpoint - The encrypted payload must follow the same structure as the original `/messages` endpoint **Prerequisites:** - User Access Token with `whatsapp_business_messaging` permission - Valid `Phone-Number-ID` for your registered WhatsApp Business account - Payload encryption enabled for the phone number - Properly formatted JWE token containing encrypted message payload using supported algorithms **Supported Algorithms:** - **Content Encryption:** A128GCM, A256GCM...' operationId: sendEncryptedMessage parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true description: API version (e.g., v21.0, v22.0) schema: type: string example: v22.0 - name: Phone-Number-ID in: path required: true description: The ID of the phone number used to send the message. Retrieved from the WhatsApp Business Account. schema: type: string example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EncryptedMessageRequest' examples: Send Encrypted Text Message: summary: Send an encrypted text message value: messaging_product: whatsapp encrypted_contents: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ... Send Encrypted Media Message: summary: Send an encrypted media message value: messaging_product: whatsapp encrypted_contents: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ.encrypted_media_payload... Send Encrypted Template Message: summary: Send an encrypted template message value: messaging_product: whatsapp encrypted_contents: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ.encrypted_template_payload... responses: '200': description: Encrypted message sent successfully headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Connection-Quality: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: $ref: '#/components/schemas/EncryptedMessageResponse' examples: Encrypted Message Success Response: summary: Successful encrypted message response value: encrypted_contents: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ.encrypted_response_payload... Encrypted Text Message Response: summary: Response for encrypted text message value: encrypted_contents: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ... Encrypted Media Message Response: summary: Response for encrypted media message value: encrypted_contents: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhDQkMtSFMyNTYifQ.media_response... '400': description: 'Bad Request - Invalid JWE token or malformed request. Note: Error responses are returned unencrypted even when payload encryption is enabled.' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Invalid JWE Token: summary: Invalid JWE token format value: error: message: Invalid JWE token format type: OAuthException code: 400 error_subcode: 1234567 Missing Required Fields: summary: Missing required fields value: error: message: Missing required field messaging_product type: OAuthException code: 400 error_subcode: 1234568 '401': description: 'Unauthorized - Invalid access token. Note: Error responses are returned unencrypted.' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Invalid Access Token: summary: Invalid access token value: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 460 '403': description: 'Forbidden - Insufficient permissions. Note: Error responses are returned unencrypted.' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Insufficient Permissions: summary: Insufficient permissions value: error: message: Insufficient permissions for this operation type: OAuthException code: 403 error_subcode: 1234569 '429': description: 'Too Many Requests - Rate limit exceeded. Note: Error responses are returned unencrypted.' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Rate Limit Exceeded: summary: Rate limit exceeded value: error: message: Rate limit exceeded type: OAuthException code: 4 error_subcode: 2018001 '500': description: 'Internal Server Error. Note: Error responses are returned unencrypted.' content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Internal Server Error: summary: Internal server error value: error: message: An internal error occurred type: OAuthException code: 2 error_subcode: 1675030 security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/official_business_account: get: summary: Get Official Business Account Status description: 'Retrieve the Official Business Account (OBA) status and related information for a WhatsApp Business Account phone number. **Use Cases:** - Check current OBA verification status - Monitor OBA application progress - Retrieve status messages for business account verification - Validate business credibility status **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** OBA status information can be cached for moderate periods, but status may change during verification processes. Implement appropriate cache invalidation strategies. ' operationId: getOfficialBusinessAccountStatus tags: - Official Business Account parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business phone number ID. This ID represents the phone number status entity and can be obtained from your WhatsApp Business Account phone numbers list. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (oba_status, status_message). Available fields: oba_status, status_message ' schema: type: string example: oba_status,status_message responses: '200': description: Successfully retrieved Official Business Account status content: application/json: schema: $ref: '#/components/schemas/OfficialBusinessAccountStatus' examples: pending_status: summary: Pending OBA application value: id: '1234567890123456' oba_status: PENDING status_message: Your Official Business Account application is under review approved_status: summary: Approved OBA status value: id: '2345678901234567' oba_status: APPROVED status_message: Your Official Business Account has been approved rejected_status: summary: Rejected OBA application value: id: '3456789012345678' oba_status: REJECTED status_message: Your Official Business Account application was rejected. Please review the requirements and reapply. '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: phone_number_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Account phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this phone number type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Update Official Business Account Status description: 'Update or modify the Official Business Account (OBA) status for a WhatsApp Business Account phone number. This endpoint allows businesses to submit new applications, withdraw existing applications, or resubmit after addressing rejection reasons. **Use Cases:** - Submit initial Official Business Account application - Withdraw pending OBA application - Resubmit OBA application after addressing rejection feedback - Update application data for pending applications **Application Data Requirements:** When submitting or resubmitting an OBA application, certain business information may be required depending on the current status and previous submissions. **Rate Limiting:** Standard Graph API rate limits apply with additional restrictions on application submissions to prevent abuse. Use appropriate retry logic with exponential backoff. **Status Transitions:** - Applications can only be submitted when no active application exists - Withdrawals are only allowed for pending applications - Resubmissions are only allowed after rejection ' operationId: GraphWhatsAppBusinessAccountToNumberCurrentStatusOfficialBusinessAccountPost tags: - Official Business Account parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business phone number ID. This ID represents the phone number status entity and can be obtained from your WhatsApp Business Account phone numbers list. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true description: Official Business Account status update request content: application/json: schema: $ref: '#/components/schemas/OfficialBusinessAccountUpdateRequest' examples: submit_application: summary: Submit new OBA application value: action: SUBMIT_APPLICATION application_data: business_name: Acme Corporation Ltd business_description: Leading provider of innovative business solutions and consulting services website_url: https://www.acmecorp.com contact_email: business@acmecorp.com withdraw_application: summary: Withdraw pending application value: action: WITHDRAW_APPLICATION resubmit_application: summary: Resubmit after rejection value: action: RESUBMIT_APPLICATION application_data: business_name: Acme Corporation Ltd business_description: Updated business description addressing previous feedback website_url: https://www.acmecorp.com contact_email: business@acmecorp.com responses: '200': description: Successfully updated Official Business Account status content: application/json: schema: $ref: '#/components/schemas/OfficialBusinessAccountUpdateResponse' examples: successful_submission: summary: Successful application submission value: success: true message: Official Business Account application submitted successfully updated_status: id: '1234567890123456' oba_status: PENDING status_message: Your Official Business Account application is under review tracking_id: oba_req_1234567890abcdef successful_withdrawal: summary: Successful application withdrawal value: success: true message: Official Business Account application withdrawn successfully updated_status: id: '1234567890123456' oba_status: CANCELLED status_message: Official Business Account application has been cancelled tracking_id: oba_req_fedcba0987654321 '400': description: Bad Request - Invalid parameters, malformed request, or invalid state transition content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_action: summary: Invalid action for current status value: error: message: 'Cannot submit application: An active application already exists' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn missing_data: summary: Missing required application data value: error: message: 'Missing required application data: business_name is required for SUBMIT_APPLICATION' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to modify this WhatsApp Business Account phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to modify this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '409': description: Conflict - Invalid state transition or conflicting request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_transition: summary: Invalid status transition value: error: message: 'Cannot withdraw application: No pending application found' type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn concurrent_modification: summary: Concurrent modification detected value: error: message: Application status was modified by another request. Please refresh and try again type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request is valid but cannot be processed due to business rules content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_data: summary: Invalid application data format value: error: message: 'Invalid website URL format: URL must be a valid HTTPS URL' type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn business_rules: summary: Business rule violation value: error: message: Business name cannot exceed 255 characters type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded or too many application attempts content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: rate_limit: summary: Standard rate limit exceeded value: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true application_limit: summary: Application submission limit reached value: error: message: Too many application attempts. Please wait before submitting again type: OAuthException code: 4 error_subcode: 2446080 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}: get: tags: - Phone Numbers summary: Retrieve WhatsApp Business Phone Number Information description: 'Retrieve comprehensive information about a WhatsApp Business phone number using its unique ID (CSID). This endpoint provides phone number status, verification details, quality metrics, and configuration information. **Core Information Returned:** - Phone number ID and display format - Verification status and verified business name - Quality rating based on message delivery performance - Code verification status for two-step verification - Display name certification status (when requested) **Quality Rating System:** The quality rating reflects how recipients have been receiving messages from this phone number: - **GREEN**: High quality - messages are being delivered and engaged with well - **YELLOW**: Medium quality - some delivery or engagement issues detected - **RED**: Low quality - significant delivery or engagement problems - **NA**: Quality rating not yet determined (new phone numbers) **Display Name Status:** When requesting the `name_status` field, you''ll receive the current certification status: - **APPROVED**: Business name verified and certificate available for download - **AVAILABLE_WITHOUT_REVIEW**: Certificate ready without additional review required - **DECLINED**: Business name verification rejected - **EXPIRED**: Existing certificate has expired and needs renewal - **PENDING_REVIEW**: Name verification request is under review - **NONE**: No certificate or verification request exists **Code Verification Status:** Indicates the two-step verification status: - **VERIFIED**: Phone number has completed two-step verification - **UNVERIFIED**: Two-step verification is pending or incomplete **Use Cases:** - Monitor phone number quality and delivery performance - Check verification and certification status - Validate phone number configuration before sending messages - Retrieve display information for business profiles - Audit phone number compliance and status For more information on quality ratings, see [WhatsApp Business Account Message Quality Rating](https://www.facebook.com/business/help/896873687365001). ' operationId: getPhoneNumberById parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. Use the latest stable version for optimal performance and feature support. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business Account phone number ID (CSID). This unique identifier is assigned when you register the phone number with WhatsApp Business API and can be found in your WhatsApp Business Manager. ' schema: type: string pattern: ^[0-9]+$ example: '106853218861309' - name: fields in: query required: false schema: type: string example: name_status,code_verification_status description: 'Comma-separated list of additional fields to include in the response. If not specified, only default fields (id, display_phone_number, verified_name, quality_rating) are returned. **Available Fields:** - `name_status`: Display name certification status for business verification - `code_verification_status`: Two-step verification status for the phone number **Field Values:** **name_status** values: - `APPROVED`: Business name approved, certificate available for download - `AVAILABLE_WITHOUT_REVIEW`: Certificate ready without additional review - `DECLINED`: Business name verification rejected - `EXPIRED`: Certificate expired and needs renewal - `PENDING_REVIEW`: Name verification under review - `NONE`: No certificate or verification request exists **code_verification_status** values: - `VERIFIED`: Phone number has completed two-step verification - `UNVERIFIED`: Two-step verification pending or incomplete ' responses: '200': description: 'Successfully retrieved phone number information. The response includes core phone number details and any additional fields requested via the `fields` parameter. ' content: application/json: schema: $ref: '#/components/schemas/PhoneNumberInfo' examples: default_response: summary: Default phone number information description: Basic phone number details without additional fields value: id: '106853218861309' display_phone_number: +1 555-555-5555 verified_name: Jaspers Market quality_rating: GREEN with_name_status: summary: Phone number with display name status description: Includes business name certification status value: id: '106853218861309' display_phone_number: +1 555-555-5555 verified_name: Jaspers Market quality_rating: GREEN name_status: AVAILABLE_WITHOUT_REVIEW with_verification_status: summary: Phone number with code verification status description: Includes two-step verification status value: id: '106853218861309' display_phone_number: +1 555-555-5555 verified_name: Jaspers Market quality_rating: GREEN code_verification_status: VERIFIED comprehensive_response: summary: Full phone number information description: All available fields included in response value: id: '106853218861309' display_phone_number: +1 555-555-5555 verified_name: Jaspers Market quality_rating: GREEN name_status: APPROVED code_verification_status: VERIFIED '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_version: summary: Invalid API version format value: error: message: Invalid version format. Use format like 'v23.0' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_phone_id: summary: Invalid phone number ID format value: error: message: Invalid phone number ID format. Must be numeric. type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_fields: summary: Invalid fields parameter value: error: message: 'Invalid field requested. Available fields: name_status, code_verification_status' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_token: summary: Invalid access token value: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn expired_token: summary: Expired access token value: error: message: 'Error validating access token: Session has expired' type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn missing_token: summary: Missing access token value: error: message: An access token is required to request this resource type: OAuthException code: 104 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: insufficient_permissions: summary: Insufficient app permissions value: error: message: Your app doesn't have permission to access this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn not_linked_to_waba: summary: App not linked to WhatsApp Business Account value: error: message: Your app is not linked to the WhatsApp Business Account that owns this phone number type: OAuthException code: 200 error_subcode: 1349175 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn missing_permissions: summary: Missing required permissions value: error: message: Requires whatsapp_business_messaging or whatsapp_business_management permission type: OAuthException code: 200 error_subcode: 1349176 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: phone_not_found: summary: Phone number not found value: error: message: Phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn deleted_phone: summary: Phone number has been deleted value: error: message: This phone number has been deleted and is no longer accessible type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn waba_not_found: summary: WhatsApp Business Account not found value: error: message: The WhatsApp Business Account associated with this phone number could not be found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: phone_not_registered: summary: Phone number not registered value: error: message: The phone number is not registered with WhatsApp Business API type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn phone_in_review: summary: Phone number under review value: error: message: Phone number is currently under review and information is not available type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn temporarily_unavailable: summary: Phone number temporarily unavailable value: error: message: Phone number information is temporarily unavailable. Please try again later. type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: rate_limit_exceeded: summary: Application rate limit exceeded value: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true user_rate_limit: summary: User-level rate limit exceeded value: error: message: User request limit reached type: OAuthException code: 17 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true business_rate_limit: summary: Business-level rate limit exceeded value: error: message: Business request limit reached for WhatsApp Business Account type: OAuthException code: 80007 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: internal_error: summary: Generic internal server error value: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true service_unavailable: summary: WhatsApp service temporarily unavailable value: error: message: WhatsApp Business API service is temporarily unavailable type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true database_error: summary: Database connectivity error value: error: message: Database temporarily unavailable. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Update WhatsApp Business Account Phone Number Status and Configuration description: 'Update the status and configuration of a WhatsApp Business Account phone number. This endpoint supports comprehensive phone number management including status updates, webhook configuration, security settings, and business profile management. **Supported Operations:** - Update connection status between WhatsApp Business Account and phone number - Configure webhook endpoints for message delivery notifications - Set up two-step verification and security notifications - Update display names for name verification - Configure search visibility and privacy settings - Set username for the WhatsApp Business Account - Override webhook callback URIs for message notifications **Business Logic Requirements:** - App must be linked to the WhatsApp Business Account - Webhook subscription must exist before configuring callback URI overrides - Callback URI verification is performed for external URLs - Internal URLs are allowed for development environments **Rate Limiting:** WhatsApp use case throttling applies. Use appropriate retry logic with exponential backoff. **Security Validations:** - App-to-WABA linking validation enforced - Webhook callback URI verification required for external URLs - Business integration system user checks for AI bot onboarding - Capability checks for first-party app access ' operationId: updatePhoneNumberStatus tags: - Phone Numbers parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business Account phone number ID (CSID). This ID is provided when you register the phone number and can be found in your WhatsApp Business Manager. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: false description: 'Configuration parameters for updating phone number status and settings. All parameters are optional and can be combined in a single request. ' content: application/json: schema: $ref: '#/components/schemas/PhoneNumberStatusUpdateRequest' examples: update_connection_status: summary: Update connection status value: connection_status: CONNECTED configure_webhook: summary: Configure webhook URL value: webhook_url: https://your-domain.com/webhook webhook_configuration: override_callback_uri: https://your-domain.com/webhook/override verify_token: YOUR_VERIFY_TOKEN update_security_settings: summary: Update security and notification settings value: whatsapp_business_api_data: pin: '123456' show_security_notifications: true notify_user_change_number: false search_visibility: VISIBLE update_display_name: summary: Update display name for verification value: new_display_name: My New Business Name set_username: summary: Set WhatsApp Business Account username value: username: mynewbusiness comprehensive_update: summary: Comprehensive status and configuration update value: connection_status: CONNECTED webhook_url: https://your-domain.com/webhook whatsapp_business_api_data: pin: '123456' show_security_notifications: true notify_user_change_number: false search_visibility: VISIBLE webhook_configuration: override_callback_uri: https://your-domain.com/webhook/override verify_token: YOUR_VERIFY_TOKEN new_display_name: My Business Name username: mybusiness responses: '200': description: Operation completed successfully content: application/json: schema: oneOf: - $ref: '#/components/schemas/MessageResponse' - $ref: '#/components/schemas/SuccessResponse' examples: message_sent: summary: Message sent successfully value: messaging_product: whatsapp contacts: - input: '+1234567890' wa_id: '1234567890' messages: - id: wamid.HBgLMTY3NzE4NDM4NjAVAgARGBI5QTRCMEM4RjA2NzY4RTlBNAA= settings_updated: summary: Settings updated successfully value: success: true phone_registered: summary: Phone number registered successfully value: success: true code_verified: summary: Verification code verified successfully value: success: true two_step_verification_set: summary: Two-step verification code set successfully value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: recipient phone number format is incorrect' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The phone number is not registered type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/deregister: post: summary: Deregister WhatsApp Business Phone Number description: 'Deregister a WhatsApp Business phone number from the Facebook Hosted System. This operation removes the phone number from the WhatsApp Business Platform and makes it available for re-registration if needed. **Important Notes:** - Phone number must be currently linked in Facebook Hosted System - Phone number must be registered on the WhatsApp Business Platform - Cannot deregister phone numbers associated with SMB accounts - Rate limiting is enforced to prevent abuse - Deregistration triggers activity logging for audit purposes **Rate Limiting:** Standard Graph API rate limits apply with additional restrictions for registration operations. Use appropriate retry logic with exponential backoff. **Caching:** Deregistration status changes are immediate and should not be cached. ' operationId: deregisterPhoneNumber tags: - Phone Number Management parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'The ID of the phone number to deregister. This ID is provided when you register the phone number and can be found in your WhatsApp Business Account settings. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' responses: '200': description: Successfully deregistered the phone number content: application/json: schema: $ref: '#/components/schemas/DeregisterResponse' examples: successful_deregistration: summary: Successful phone number deregistration value: success: true '400': description: Bad Request - Invalid parameters or phone number state content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: phone_not_linked: summary: Phone number not linked in Facebook Hosted System value: error: message: Phone number is not currently linked in Facebook Hosted System type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn smb_account_error: summary: SMB account deregistration not allowed value: error: message: Deregister endpoint is not available for API solution for SMB businesses. type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn phone_not_registered: summary: Phone number not registered on platform value: error: message: Phone number not registered on the WhatsApp Business Platform. type: OAuthException code: 100 error_subcode: 2207051 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The phone number cannot be deregistered in its current state type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Rate limit exceeded for deregistration requests type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/message_history: get: summary: Get WhatsApp Business Account Message History description: 'Retrieve paginated message history for a WhatsApp Business Account phone number, including delivery status events, timestamps, and webhook update information. **Use Cases:** - Track message delivery status and events - Monitor webhook delivery and update states - Retrieve historical message delivery information - Debug message delivery issues and webhook failures **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Message history data can be cached for moderate periods, but delivery status events may change frequently. Implement appropriate cache invalidation strategies. **Pagination:** This endpoint supports cursor-based pagination. Use the `after` and `before` cursors from the response to navigate through results. ' operationId: getMessageHistory tags: - Message History parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business Account phone number ID. This ID is provided when you register the phone number and can be found in your WhatsApp Business Manager or through phone number APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: message_id in: query required: false description: 'Filter results by specific WhatsApp message ID (WAMID). When provided, only message history for this specific message will be returned. ' schema: type: string example: wamid.HBgLMTY0NzM3Nzc3NzUVAgARGBI5QTNEQTA2RjdGMEY4RTRGAA== - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, message_id). Available fields: id, message_id, events{delivery_status,webhook_update_state,timestamp,application,webhook_uri,error_description} ' schema: type: string example: id,message_id,events{delivery_status,timestamp,webhook_update_state} - name: limit in: query required: false description: 'Maximum number of message history entries to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 - name: after in: query required: false description: 'Cursor for pagination. Use this to get the next page of results. This value comes from the `paging.cursors.after` field in previous responses. ' schema: type: string example: MTAxNTExOTQ1MjAwNzI5NDE= - name: before in: query required: false description: 'Cursor for pagination. Use this to get the previous page of results. This value comes from the `paging.cursors.before` field in previous responses. ' schema: type: string example: MAZDZD responses: '200': description: Successfully retrieved WhatsApp Business Account message history content: application/json: schema: $ref: '#/components/schemas/MessageHistoryResponse' examples: message_history_with_events: summary: Message history with delivery status events value: data: - id: '1234567890123456' message_id: wamid.HBgLMTY0NzM3Nzc3NzUVAgARGBI5QTNEQTA2RjdGMEY4RTRGAA== events: data: - id: '2345678901234567' delivery_status: SENT timestamp: 1640995200 webhook_update_state: DELIVERED application: id: '9876543210987654' webhook_uri: https://example.com/webhook - id: '3456789012345678' delivery_status: DELIVERED timestamp: 1640995260 webhook_update_state: DELIVERED application: id: '9876543210987654' webhook_uri: https://example.com/webhook - id: '4567890123456789' message_id: wamid.HBgLMTY0NzM3Nzc3NzUVAgARGBI5QTNEQTA2RjdGMEY4RTJHAA== events: data: - id: '5678901234567890' delivery_status: READ timestamp: 1640995320 webhook_update_state: DELIVERED application: id: '9876543210987654' webhook_uri: https://example.com/webhook paging: cursors: after: MTAxNTExOTQ1MjAwNzI5NDE= before: MAZDZD next: https://graph.facebook.com/v23.0/1234567890123456/message_history?after=MTAxNTExOTQ1MjAwNzI5NDE= filtered_by_message_id: summary: Message history filtered by specific message ID value: data: - id: '1234567890123456' message_id: wamid.HBgLMTY0NzM3Nzc3NzUVAgARGBI5QTNEQTA2RjdGMEY4RTRGAA== events: data: - id: '2345678901234567' delivery_status: SENT timestamp: 1640995200 webhook_update_state: DELIVERED - id: '3456789012345678' delivery_status: DELIVERED timestamp: 1640995260 webhook_update_state: DELIVERED - id: '4567890123456789' delivery_status: READ timestamp: 1640995320 webhook_update_state: DELIVERED '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: message_id format is invalid' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access message history for this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested message_id was not found in the message history type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/register: post: summary: Register WhatsApp Business Phone Number description: 'Register a WhatsApp Business phone number for messaging capabilities and enable two-step verification. This is a required step before sending messages through the WhatsApp Business Cloud API. **Registration Process:** 1. Phone number must be in UNVERIFIED status 2. Provide a 6-digit PIN for two-step verification 3. Optionally provide backup data for account migration 4. Registration activates messaging capabilities **Migration Support:** For migrating from on-premises WhatsApp Business API, include backup data with password and encrypted account information. **Rate Limiting:** Registration attempts are rate-limited to prevent abuse. Standard Graph API rate limits apply with additional restrictions for registration endpoints. **Security Requirements:** - Two-step verification is mandatory for all registered numbers - PIN must be securely stored and managed by the business - Registration enables webhook delivery and message sending capabilities ' operationId: registerWhatsAppBusinessPhoneNumber tags: - Phone Number Registration parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'The ID of the phone number to register. This ID is provided when the phone number is added to your WhatsApp Business Account and can be found in WhatsApp Manager. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true description: Registration request payload with PIN and optional migration data content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessPhoneNumberRegistrationRequest' examples: basic_registration: summary: Basic phone number registration description: Register a new phone number with two-step verification value: messaging_product: whatsapp pin: '123456' migration_registration: summary: Account migration registration description: Register phone number with backup data for migration value: messaging_product: whatsapp pin: '123456' backup: password: YOUR_BACKUP_PASSWORD data: YOUR_BACKUP_DATA advanced_registration: summary: Registration with data localization settings description: Register with specific data localization settings value: messaging_product: whatsapp pin: '123456' data_localization_region: AE responses: '200': description: Successfully registered WhatsApp Business phone number content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessPhoneNumberRegistrationResponse' examples: successful_registration: summary: Successful registration value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid PIN format. PIN must be exactly 6 digits type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to register this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Phone number cannot be registered in current state content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number is already registered or in invalid state for registration type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Registration rate limit exceeded type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred during registration. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/request_code: post: summary: Request Phone Number Verification Code description: 'Request a verification code for a WhatsApp Business phone number via SMS or voice call. This is the first step in the phone number verification process. **Use Cases:** - Initial verification of newly added phone numbers - Re-verification when phone number status requires it - Switching between SMS and voice verification methods **Rate Limiting:** Standard Graph API rate limits apply. Additional rate limiting may be enforced for verification code requests to prevent abuse. **Security:** Verification codes are sent only to the registered phone number and expire after a short time period. Multiple failed attempts may result in temporary blocking. ' operationId: requestVerificationCode tags: - Phone Number Verification parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business phone number ID. This ID represents the phone number status entity (EntWhatsAppBusinessAccountToNumberCurrentStatus) and can be obtained from your WhatsApp Business Account phone numbers list. ' schema: type: string pattern: ^[0-9]+$ example: 1234567890123456 requestBody: required: true description: Verification code request parameters content: application/json: schema: $ref: '#/components/schemas/RequestCodeRequest' examples: sms_verification: summary: Request SMS verification code value: code_method: SMS language: en_US voice_verification: summary: Request voice verification code value: code_method: VOICE language: es_ES responses: '200': description: Successfully requested verification code content: application/json: schema: $ref: '#/components/schemas/RequestCodeResponse' examples: success_response: summary: Successful verification code request value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: code_method must be SMS or VOICE' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number is not eligible for verification at this time type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/settings: get: tags: - Settings summary: Get phone number settings description: 'Retrieve current settings for a WhatsApp Business phone number. Returns calling settings, payload encryption settings, and data storage configurations. ' operationId: getPhoneNumberSettings parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string example: v22.0 - name: Phone-Number-ID in: path required: true schema: type: string example: '123456789012345' - name: include_sip_credentials in: query required: false schema: type: boolean default: false description: Include SIP credentials in the response (requires additional permissions) responses: '200': description: Current phone number settings retrieved successfully content: application/json: schema: $ref: '#/components/schemas/PhoneNumberSettingsResponse' examples: Basic settings response: value: calling: status: enabled call_icon_visibility: visible ip_addresses: default: - 157.240.0.1 - 157.240.0.2 callback_permission_status: enabled video: status: enabled payload_encryption: status: disabled storage_configuration: status: default Settings with SIP and encryption: value: calling: status: enabled call_icon_visibility: visible ip_addresses: default: - 157.240.0.1 - 157.240.0.2 callback_permission_status: enabled srtp_key_exchange_protocol: DTLS-SRTP sip: status: enabled servers: - app_id: '12345' hostname: sip.whatsapp.com port: 5060 video: status: enabled payload_encryption: status: enabled client_encryption_key_fingerprint: SHA256:abcd1234... cloud_encryption_key: eyJhbGc... storage_configuration: status: in_country_storage_enabled data_localization_region: us '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' security: - bearerAuth: [] post: tags: - Settings summary: Update phone number settings description: 'Update various settings for a WhatsApp Business phone number. You can configure calling settings, user identity change settings, payload encryption, and data storage configurations. Only one feature setting can be specified per request. ' operationId: updatePhoneNumberSettings parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string example: v22.0 - name: Phone-Number-ID in: path required: true schema: type: string example: '123456789012345' requestBody: content: application/json: schema: type: object oneOf: - $ref: '#/components/schemas/CallingSettingsRequest' - $ref: '#/components/schemas/UserIdentityChangeSettingsRequest' - $ref: '#/components/schemas/PayloadEncryptionSettingsRequest' - $ref: '#/components/schemas/StorageConfigurationSettingsRequest' examples: Enable calling with video: value: calling: status: enabled call_icon_visibility: visible video: status: enabled Disable calling: value: calling: status: disabled Enable SIP calling: value: calling: status: enabled sip: status: enabled srtp_key_exchange_protocol: DTLS-SRTP Enable payload encryption: value: payload_encryption: status: enabled client_encryption_key: LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJOUUVGQUFLQ0FRRUEzT2RoQzloK1FjYUpwUGxXWWJ0NE40NTFucFRKUHBnWAotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0= Disable payload encryption: value: payload_encryption: status: disabled Enable user identity change: value: user_identity_change: enabled: true Configure data storage: value: storage_configuration: enabled: true region: us responses: '200': description: Settings updated successfully headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Connection-Quality: $ref: '#/components/headers/X-FB-Connection-Quality' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: type: object properties: success: type: boolean example: true examples: Settings updated successfully: value: success: true '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/verify_code: post: summary: Verify Phone Number Verification Code description: 'Verify a phone number verification code for a WhatsApp Business Account phone number. This endpoint is used to complete the phone number verification process by submitting the verification code received via SMS or voice call. **Use Cases:** - Complete phone number verification during initial setup - Verify phone number ownership for messaging capabilities - Finalize phone number registration process - Complete phone number migration verification **Rate Limiting:** Verification attempts are rate-limited to prevent abuse. Failed attempts may result in temporary blocking. Use appropriate retry logic with exponential backoff. **Security:** Verification codes are time-limited (typically 10 minutes) and single-use. Multiple failed attempts may trigger additional security measures. ' operationId: verifyPhoneNumberCode tags: - Phone Number Verification parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'The WhatsApp Business Account phone number ID that needs verification. This ID is provided when you add a phone number to your WhatsApp Business Account. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VerifyCodeRequest' examples: verify_code: summary: Verify phone number with 6-digit code value: code: '123456' responses: '200': description: Successfully verified the phone number verification code content: application/json: schema: $ref: '#/components/schemas/VerifyCodeResponse' examples: successful_verification: summary: Successful verification response value: success: true id: '1234567890123456' '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid verification code format type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to verify this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Invalid or expired verification code content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The verification code is invalid or has expired type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Verification Failed error_user_msg: The verification code you entered is invalid or has expired '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Too many verification attempts. Please try again later type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/whatsapp_business_encryption: get: summary: Get Business Encryption Public Key description: 'Retrieve the current business public key and its signature verification status. This endpoint returns the public key that is currently configured for encrypting message payloads and indicates whether the stored signature is valid or has a mismatch. **Use Cases:** - Verify current encryption configuration - Check public key signature validation status - Retrieve public key for client-side encryption setup - Monitor encryption key status for security compliance **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Public key information can be cached for moderate periods, but signature status may change and should be checked regularly for security validation. ' operationId: getBusinessEncryptionPublicKey tags: - Flows - Setup Endpoint Encryption - Business Encryption parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business phone number ID. This ID represents the phone number entity and can be obtained from your WhatsApp Business Account phone numbers list. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, all available fields will be returned. Available fields: business_public_key, business_public_key_signature_status ' schema: type: string example: business_public_key,business_public_key_signature_status responses: '200': description: Successfully retrieved business encryption public key information content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/WhatsAppBusinessEncryptionInfo' examples: valid_key: summary: Valid public key with verified signature value: data: - business_public_key: '-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA... -----END PUBLIC KEY----- ' business_public_key_signature_status: VALID mismatch_key: summary: Public key with signature mismatch value: data: - business_public_key: ' ' business_public_key_signature_status: MISMATCH '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: phone_number_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this phone number type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Set Business Encryption Public Key description: 'Upload and configure a business public key for message payload encryption. This endpoint accepts a business public key in PEM format, validates it, and stores it with a cryptographic signature for future use in encrypting message payloads and data channel requests. **Use Cases:** - Initial setup of encryption for WhatsApp Business messaging - Update existing public key for key rotation - Enable secure payload encryption for sensitive business communications - Configure encryption keys for compliance requirements **Key Requirements:** - Must be a valid RSA public key in PEM format - Key must meet Meta''s security standards for encryption - Only one active public key per phone number at a time - Previous keys are replaced when new ones are uploaded **Rate Limiting:** Standard Graph API rate limits apply. Key uploads may have additional security-related rate limiting to prevent abuse. ' operationId: setBusinessEncryptionPublicKey tags: - Business Encryption parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business phone number ID. This ID represents the phone number entity and can be obtained from your WhatsApp Business Account phone numbers list. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/WhatsAppBusinessEncryptionUploadRequest' examples: upload_key: summary: Upload business public key value: business_public_key: '-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA... -----END PUBLIC KEY----- ' responses: '200': description: Successfully uploaded and configured business encryption public key content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessEncryptionUploadResponse' examples: success: summary: Successful key upload value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_key: summary: Invalid public key format value: error: message: Business public key is invalid type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Invalid Public Key error_user_msg: The provided public key format is invalid missing_parameter: summary: Missing required parameter value: error: message: 'Missing required parameter: business_public_key' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to modify encryption settings for this WhatsApp Business phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to modify this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number is not eligible for encryption configuration type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/whatsapp_business_profile: get: summary: Get WhatsApp Business Profile description: 'Retrieve comprehensive information about a WhatsApp Business Profile, including business details, contact information, and profile settings. **Use Cases:** - Retrieve current business profile information - Check business contact details and settings - Verify business vertical and website information - Get profile picture URL and about section **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Business profile information can be cached for moderate periods, but should be refreshed periodically to ensure accuracy. ' operationId: getWhatsAppBusinessProfile tags: - WhatsApp Business Profile parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business phone number ID. This ID represents the phone number status entity and can be obtained from your WhatsApp Business Account phone numbers list. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (messaging_product, about, address, description, email, profile_picture_url, websites, vertical). Available fields: messaging_product, about, address, description, email, profile_picture_url, websites, vertical ' schema: type: string example: messaging_product,about,address,description,email,websites,vertical responses: '200': description: Successfully retrieved WhatsApp Business Profile information content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessProfileResponse' examples: business_profile_details: summary: Complete business profile information value: data: - business_profile: messaging_product: whatsapp about: Welcome to our business! We provide excellent service. address: 123 Business Street, City, State 12345 description: We are a leading provider of quality products and services. email: contact@business.com profile_picture_url: https://pps.whatsapp.net/v/profile_picture_url websites: - https://www.business.com - https://www.facebook.com/business vertical: RESTAURANT '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: phone_number_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Profile type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone Number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Profile not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this profile type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Update WhatsApp Business Profile description: 'Update WhatsApp Business Profile information including business details, contact information, and profile settings. **Use Cases:** - Update business description and contact information - Modify business address and website information - Change business vertical classification - Update profile picture using Resumable Upload API - Update profile picture and about section **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Profile Picture Updates:** To update the profile picture, first use the Resumable Upload API to obtain a profile_picture_handle, then include it in the request. ' operationId: updateWhatsAppBusinessProfileInformation tags: - WhatsApp Business Profile parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business phone number ID. This ID represents the phone number status entity and can be obtained from your WhatsApp Business Account phone numbers list. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessProfileUpdateRequest' examples: complete_profile_update: summary: Complete business profile update value: messaging_product: whatsapp about: Welcome to our business! We provide excellent service. address: 123 Business Street, City, State 12345 description: We are a leading provider of quality products and services. email: contact@business.com profile_picture_handle: 4:VGVzdC5wbmc=:aW1hZ2UvanBlZw==:ARat4Mt-L09JON3f30SmDkdyPSuyBkDDYiB4TFXuXISjdgHoNp2b7j882_9Jzr2tPrdKxi92UygyVzTivJiOvmebMpZ6MIjTik3gTyI3ZCQAgQ:e:1659995302:2022308451254161:636685196:ARZf1ftR5N6-qSLtklU websites: - https://www.business.com - https://www.facebook.com/business vertical: RESTAURANT minimal_profile_update: summary: Minimal business profile update value: messaging_product: whatsapp description: Updated business description responses: '200': description: Successfully updated WhatsApp Business Profile content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessProfileUpdateResponse' examples: profile_update_success: summary: Successful profile update value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: email must be a valid email address' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to modify this WhatsApp Business Profile type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone Number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Profile not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The profile picture handle is invalid or expired type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/whatsapp_commerce_settings: get: tags: - Commerce Settings summary: Get commerce settings description: '- Guide: [Sell Products & Services](https://developers.facebook.com/docs/business-messaging/whatsapp/catalogs/sell-products-and-services) (Cloud API) - Guide: [Sell Products & Services](https://developers.facebook.com/docs/whatsapp/on-premises/guides/commerce-guides) (On-Premises API) - Endpoint reference: [WhatsApp Business Phone Number > WhatsApp Commerce Settings](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/whatsapp_commerce_settings)' operationId: getCommerceSettings responses: '200': description: Example response headers: Access-Control-Allow-Origin: schema: type: string example: '*' Alt-Svc: schema: type: string example: h3=":443"; ma=86400 Cache-Control: schema: type: string example: private, no-cache, no-store, must-revalidate Connection: schema: type: string example: keep-alive Content-Length: schema: type: string example: '84' Date: schema: type: string example: Fri, 07 Apr 2023 20:02:54 GMT ETag: schema: type: string example: '"be665e167cf848b6b62159f1d6828c494dc47008"' Expires: schema: type: string example: Sat, 01 Jan 2000 00:00:00 GMT Pragma: schema: type: string example: no-cache Strict-Transport-Security: schema: type: string example: max-age=15552000; preload Vary: schema: type: string example: Origin X-FB-Debug: schema: type: string example: N/Bc7wjn7wzoGQzxpah+q29b3kn3Cu3Q5Vexydxna3Nq00SaWCkxw7wXuyFyLggvngmTAGNe60aQ2TTFzvT2hQ== facebook-api-version: schema: type: string example: v16.0 x-business-use-case-usage: schema: type: string example: '{"102290129340398":[{"type":"whatsapp_business_management","call_count":1,"total_cputime":1,"total_time":1,"estimated_time_to_regain_access":0}]}' x-fb-request-id: schema: type: string example: ATqienUCgZnGDTAHjSt_s1u x-fb-rev: schema: type: string example: '1007268877' x-fb-rlafr: schema: type: string example: '0' x-fb-trace-id: schema: type: string example: BZ2vk4sqqeh content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string example: '527759822865714' is_cart_enabled: type: boolean example: true is_catalog_visible: type: boolean example: true example: - id: '527759822865714' is_cart_enabled: true is_catalog_visible: true examples: Example response: value: data: - id: '527759822865714' is_cart_enabled: true is_catalog_visible: true security: - bearerAuth: [] post: tags: - Commerce Settings summary: Set or update commerce settings description: '- Guide: [Sell Products & Services](https://developers.facebook.com/docs/business-messaging/whatsapp/catalogs/sell-products-and-services) (Cloud API) - Guide: [Sell Products & Services](https://developers.facebook.com/docs/whatsapp/on-premises/guides/commerce-guides) (On-Premises API) - Endpoint reference: [WhatsApp Business Phone Number > WhatsApp Commerce Settings](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account-to-number-current-status/whatsapp_commerce_settings)' operationId: setOrUpdateCommerceSettings parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: is_cart_enabled in: query schema: type: string example: 'true' - name: is_catalog_visible in: query schema: type: string example: 'true' responses: '200': description: Example response headers: Access-Control-Allow-Origin: schema: type: string example: '*' Alt-Svc: schema: type: string example: h3=":443"; ma=86400 Cache-Control: schema: type: string example: private, no-cache, no-store, must-revalidate Connection: schema: type: string example: keep-alive Content-Length: schema: type: string example: '16' Date: schema: type: string example: Fri, 07 Apr 2023 20:01:14 GMT Expires: schema: type: string example: Sat, 01 Jan 2000 00:00:00 GMT Pragma: schema: type: string example: no-cache Strict-Transport-Security: schema: type: string example: max-age=15552000; preload Vary: schema: type: string example: Origin X-FB-Debug: schema: type: string example: 03bVIwTYJnh6qJe3sqWWNGapvvRoU/yKE+3nC45djcuaeV41y+6Z4SgWhK/SRB+WUUBEKWInR4hxFzHnKZ1+7Q== cross-origin-resource-policy: schema: type: string example: cross-origin facebook-api-version: schema: type: string example: v16.0 x-app-usage: schema: type: string example: '{"call_count":0,"total_cputime":0,"total_time":0}' x-fb-request-id: schema: type: string example: AB0EvD-U5WkosUqnPBMwXhB x-fb-rev: schema: type: string example: '1007268877' x-fb-rlafr: schema: type: string example: '0' x-fb-trace-id: schema: type: string example: A5pEgwxfemZ content: application/json: schema: type: object properties: success: type: boolean example: true examples: Example response: value: success: true security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: Phone-Number-ID in: path required: true schema: type: string /{Version}/{Phone-Number-ID}/business_compliance_info: get: summary: Get Business Compliance Information description: 'Retrieve comprehensive business compliance information for a WhatsApp Business Account phone number, including entity details, registration status, and required contact information for regulatory compliance. **Use Cases:** - Retrieve business compliance information for regulatory reporting - Verify business entity registration status and contact details - Access grievance officer and customer care information - Support compliance audits and regulatory verification processes **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Compliance information can be cached for moderate periods, but should be refreshed regularly to ensure accuracy for regulatory purposes. Implement appropriate cache invalidation strategies. ' operationId: getBusinessComplianceInfo tags: - Business Compliance parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business Account phone number ID. This ID can be found in your WhatsApp Business Manager or through phone number management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned. Available fields: messaging_product, entity_name, entity_type, entity_type_custom, is_registered, grievance_officer_details, customer_care_details ' schema: type: string example: entity_name,entity_type,is_registered,grievance_officer_details responses: '200': description: Successfully retrieved business compliance information content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BusinessComplianceInfo' examples: complete_compliance_info: summary: Complete compliance information with all details value: data: - whatsapp_business_account_id: '1234567890123456' messaging_product: whatsapp entity_name: Lucky Shrub Private Limited entity_type: Partnership entity_type_custom: null is_registered: true grievance_officer_details: name: Chandravati P. email: chandravati@luckyshrub.com mobile_number: '+913854559033' landline_number: '+913857614343' customer_care_details: email: support@luckyshrub.com mobile_number: '+913854559033' landline_number: '+913857614343' minimal_compliance_info: summary: Minimal compliance information for unregistered business value: data: - whatsapp_business_account_id: '2345678901234567' messaging_product: whatsapp entity_name: null entity_type: null entity_type_custom: null is_registered: false grievance_officer_details: null customer_care_details: null '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: phone_number_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this phone number type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Update Business Compliance Information description: 'Create or update comprehensive business compliance information for a WhatsApp Business Account phone number, including entity details, registration status, and required contact information for regulatory compliance. **Use Cases:** - Set business compliance information for regulatory reporting - Update business entity registration status and details - Configure grievance officer and customer care contact information - Ensure compliance data accuracy for regulatory purposes - Support compliance setup for new business operations **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Validation Rules:** - `entity_name` is required and must be between 2 and 128 characters - `entity_type` is required and must be a valid entity type enum value - `entity_type_custom` is mandatory when `entity_type` is "Other" - `entity_type_custom` cannot be used with non-"Other" entity types - `is_registered` can only be used with "Other" or "Partnership" entity types - `grievance_officer_details` is required with complete contact information - `customer_care_details` is required with contact information - Phone numbers must be valid international format with country code - Email addresses must be valid format and under 128 characters ' operationId: updateBusinessComplianceInfo tags: - Business Compliance parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business Account phone number ID. This ID can be found in your WhatsApp Business Manager or through phone number management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BusinessComplianceInfoUpdateRequest' examples: complete_update: summary: Complete compliance information update value: messaging_product: whatsapp entity_name: Lucky Shrub Private Limited entity_type: PARTNERSHIP is_registered: true grievance_officer_details: name: Chandravati P. email: chandravati@luckyshrub.com mobile_number: '+913854559033' landline_number: '+913857614343' customer_care_details: email: support@luckyshrub.com mobile_number: '+913854559033' landline_number: '+913857614343' custom_entity_update: summary: Custom entity type compliance information value: messaging_product: whatsapp entity_name: Innovative Tech Solutions entity_type: OTHER entity_type_custom: Limited Liability Partnership is_registered: true grievance_officer_details: name: Rajesh Kumar email: rajesh@innovativetech.com mobile_number: '+918901234567' customer_care_details: email: support@innovativetech.com mobile_number: '+918901234567' responses: '200': description: Successfully updated business compliance information content: application/json: schema: type: object required: - success properties: success: type: boolean description: Indicates whether the compliance information was successfully updated example: true examples: successful_update: summary: Successful compliance information update value: success: true '400': description: Bad Request - Invalid parameters or validation errors content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_entity_type: summary: Invalid entity type parameter value: error: message: 'Invalid parameter: entity_type must be a valid enum value' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn missing_entity_type_custom: summary: Missing entity_type_custom for OTHER entity type value: error: message: Entity_type_custom is mandatory for OTHER entity type type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_is_registered_usage: summary: Invalid is_registered usage value: error: message: is_registered required only when entity_type is set to Other or Partnership type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: validation_failure: summary: Validation failure value: error: message: Entity type custom can only be used with OTHER entity type type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn phone_number_validation: summary: Phone number validation error value: error: message: Invalid phone number format. Must include country code type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{group_id}/invite_link: post: summary: Create Group Invite Link description: Create a new group invite link operationId: createGroupInviteLink parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string requestBody: required: true content: application/json: schema: type: object required: - messaging_product properties: messaging_product: type: string enum: - whatsapp responses: '200': description: Group invite link created successfully content: application/json: schema: type: object properties: messaging_product: type: string example: whatsapp invite_link: type: string description: Group invite link example: https://chat.whatsapp.com/LINK_ID security: - bearerAuth: [] delete: summary: Delete Group Invite Link description: Delete an existing group invite link operationId: deleteGroupInviteLink parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string requestBody: required: true content: application/json: schema: type: object required: - messaging_product properties: messaging_product: type: string enum: - whatsapp responses: '200': description: Group invite link deleted successfully content: application/json: schema: type: object properties: messaging_product: type: string example: whatsapp success: type: string example: 'true' security: - bearerAuth: [] /{Version}/{group_id}/join_requests: get: summary: Get Join Requests description: Get a list of open join requests for a group operationId: getJoinRequests parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string responses: '200': description: List of join requests content: application/json: schema: type: object properties: data: type: array items: type: object properties: join_request_id: type: string description: Join request ID example: MTY0NjcwNDM1OTU6MTIwMzYzNDA0Njk0MjMzODIw wa_id: type: string description: WhatsApp user ID example: '16505551234' creation_timestamp: type: integer description: Unix timestamp indicating when the join request was created example: 1755548877 paging: $ref: '#/components/schemas/PagingInfo' security: - bearerAuth: [] post: summary: Approve Join Requests description: Approve one or more join requests operationId: approveJoinRequests parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string requestBody: required: true content: application/json: schema: type: object required: - messaging_product - join_requests properties: messaging_product: type: string enum: - whatsapp join_requests: type: array description: Array of join request IDs to approve items: type: string description: Join request ID example: MTY0NjcwNDM1OTU6MTIwMzYzNDA0Njk0MjMzODIw responses: '200': description: Join requests approval response content: application/json: schema: type: object properties: messaging_product: type: string example: whatsapp approved_join_requests: type: array items: type: string description: ID of approved join request failed_join_requests: type: array items: type: object properties: join_request_id: type: string errors: type: array items: $ref: '#/components/schemas/Error' errors: type: array items: $ref: '#/components/schemas/Error' security: - bearerAuth: [] delete: summary: Reject Join Requests description: Reject one or more join requests operationId: rejectJoinRequests parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string requestBody: required: true content: application/json: schema: type: object required: - messaging_product - join_requests properties: messaging_product: type: string enum: - whatsapp join_requests: type: array description: Array of join request IDs to reject items: type: string description: Join request ID responses: '200': description: Join requests rejection response content: application/json: schema: type: object properties: messaging_product: type: string example: whatsapp rejected_join_requests: type: array items: type: string description: ID of rejected join request failed_join_requests: type: array items: type: object properties: join_request_id: type: string errors: type: array items: $ref: '#/components/schemas/Error' errors: type: array items: $ref: '#/components/schemas/Error' security: - bearerAuth: [] /{Version}/{group_id}/participants: post: summary: Add Group Participants description: Add participants to group operationId: addGroupParticipants parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string requestBody: required: true content: application/json: schema: type: object required: - messaging_product - participants properties: messaging_product: type: string enum: - whatsapp participants: type: array maxItems: 8 minItems: 1 description: Array of phone numbers or WhatsApp IDs to remove (max 8 participants) items: type: object required: - user properties: user: type: string description: WhatsApp user phone number or WhatsApp user ID example: '+17865347866' responses: '200': description: Participants addition request processed security: - bearerAuth: [] delete: summary: Remove Group Participants description: Remove participants from group operationId: removeGroupParticipants parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string requestBody: required: true content: application/json: schema: type: object required: - messaging_product - participants properties: messaging_product: type: string enum: - whatsapp participants: type: array maxItems: 8 minItems: 1 description: Array of phone numbers or WhatsApp IDs to remove (max 8 participants) items: type: object required: - user properties: user: type: string description: WhatsApp user phone number or WhatsApp user ID example: '+17865347866' responses: '200': description: Participants removal request processed security: - bearerAuth: [] /{Version}/{group_id}: get: summary: Get Group Info description: Retrieve metadata about a single group operationId: getGroupInfo parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string example: Y2FwaV9ncm91cDoxOTUwNTU1MDA3OToxMjAzNjMzOTQzMjAdOTY0MTUZD - name: fields in: query description: Comma-separated list of fields to return schema: type: string example: subject,description,participants,join_approval_mode responses: '200': description: Group information content: application/json: schema: $ref: '#/components/schemas/GroupInfo' security: - bearerAuth: [] delete: summary: Delete Group description: Delete the group and remove all participants, including the business operationId: deleteGroup parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string responses: '200': description: Group deletion successful content: application/json: schema: type: object properties: success: type: boolean example: true security: - bearerAuth: [] post: summary: Update Group Settings description: Update the subject, description, and photo of a group operationId: updateGroupSettings parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: Version in: path required: true schema: type: string - name: group_id in: path required: true description: Group ID schema: type: string requestBody: required: true content: application/json: schema: type: object required: - messaging_product properties: messaging_product: type: string enum: - whatsapp subject: type: string maxLength: 128 description: The new subject for the group example: Watch Enthusiasts description: type: string maxLength: 2048 description: The new description for the group example: Join our community to discuss the latest timepieces, share watch reviews, and connect with fellow horology enthusiasts. profile_picture_file: type: string description: Path to an image file for group profile picture multipart/form-data: schema: type: object properties: messaging_product: type: string enum: - whatsapp file: type: string format: binary description: Image file for group profile picture (JPEG, max 5MB, square format, min 192x192) responses: '200': description: Group settings updated successfully security: - bearerAuth: [] /{Version}/{Media-ID}: get: tags: - Media summary: Retrieve Media URL description: 'To retrieve your media’s URL, make a **GET** call to **`/{{Media-ID}}`**. Use the returned URL to download the media file. Note that clicking this URL (i.e. performing a generic GET) will not return the media; you must include an access token. For more information, see [Download Media](https://developers.facebook.com/docs/business-messaging/whatsapp/business-phone-numbers/media#download-media). You can also use the optional query **`?phone_number_id`** for **`Retrieve Media URL`** and **`Delete Media`**. This parameter checks to make sure the media belongs to the phone number before retrieval or deletion. #### Response A successful response includes an object with a media URL. The URL is only valid for 5 minutes. To use this URL, see [Download Media](https://developers.facebook.com/docs/business-messaging/whatsapp/business-phone-numbers/media#download-media).' operationId: retrieveMediaUrl parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: phone_number_id in: query schema: type: string example: description: Specifies that this action only be performed if the media belongs to the provided phone number. responses: '200': description: Retrieve Media URL content: application/json: schema: type: object properties: file_size: type: string example: '303833' id: type: string example: '2621233374848975' messaging_product: type: string example: whatsapp mime_type: type: string example: image/jpeg sha256: type: string example: url: type: string example: examples: Retrieve Media URL: value: file_size: '303833' id: '2621233374848975' messaging_product: whatsapp mime_type: image/jpeg sha256: url: security: - bearerAuth: [] delete: tags: - Media summary: Delete Media description: 'To delete media, make a **DELETE** call to the ID of the media you want to delete. ## Prerequisites - [User Access Token](https://developers.facebook.com/docs/facebook-login/access-tokens#usertokens) with **`whatsapp_business_messaging`** permission - Media object ID from either uploading media endpoint or media message Webhooks' operationId: deleteMedia parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/ContentType' - name: phone_number_id in: query schema: type: string example: description: Specifies that deletion of the media only be performed if the media belongs to the provided phone number. responses: '200': description: Delete Media content: application/json: schema: type: object properties: success: type: boolean example: true examples: Delete Media: value: success: true security: - bearerAuth: [] parameters: - name: Version in: path required: true schema: type: string - name: Media-ID in: path required: true schema: type: string /{Version}/{Media-URL}: get: tags: - Media summary: Download Media description: 'Download media files using URLs obtained from media retrieval endpoints. Requires User Access Token with whatsapp_business_messaging permission. Media URLs expire after 5 minutes and must be re-retrieved if expired. Returns binary content with appropriate MIME type headers. ' operationId: downloadMedia responses: '200': description: Download Media content: text/plain: examples: Download Media: value: '' security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: Media-URL in: path required: true schema: type: string /{Version}/{Message-History-ID}/events: get: summary: Get WhatsApp Message History Events description: 'Retrieve paginated message delivery status events for a specific message history entry, including delivery status occurrences, timestamps, and application information. **Use Cases:** - Track detailed message delivery status events and transitions - Monitor delivery status occurrence timestamps - Retrieve application information for delivery events - Debug message delivery issues and status changes **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Message history events can be cached for short periods, but delivery status events may change frequently. Implement appropriate cache invalidation strategies. **Pagination:** This endpoint supports cursor-based pagination. Use the `after` and `before` cursors from the response to navigate through results. ' operationId: getMessageHistoryEvents tags: - Message History Events parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Message-History-ID in: path required: true description: 'Your WhatsApp Business Message History ID. This ID is provided when you retrieve message history and can be found through message history APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: status_filter in: query required: false description: 'Filter results by specific delivery status. When provided, only events with this delivery status will be returned. ' schema: $ref: '#/components/schemas/WhatsAppMessageDeliveryStatus' example: DELIVERED - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (cursor, node{id,delivery_status,occurrence_timestamp}). Available fields: cursor, node{id,delivery_status,error_description,occurrence_timestamp,status_timestamp,application} ' schema: type: string example: cursor,node{id,delivery_status,occurrence_timestamp,application} - name: limit in: query required: false description: 'Maximum number of message history events to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 - name: after in: query required: false description: 'Cursor for pagination. Use this to get the next page of results. This value comes from the `paging.cursors.after` field in previous responses. ' schema: type: string example: MTAxNTExOTQ1MjAwNzI5NDE= - name: before in: query required: false description: 'Cursor for pagination. Use this to get the previous page of results. This value comes from the `paging.cursors.before` field in previous responses. ' schema: type: string example: MAZDZD responses: '200': description: Successfully retrieved WhatsApp message history events content: application/json: schema: $ref: '#/components/schemas/MessageHistoryEventsResponse' examples: message_history_events: summary: Message history events with delivery status occurrences value: data: - cursor: MTAxNTExOTQ1MjAwNzI5NDE= node: id: '2345678901234567' delivery_status: SENT occurrence_timestamp: 1640995200 status_timestamp: 1640995205 application: id: '9876543210987654' name: WhatsApp Business API Client - cursor: MTAxNTExOTQ1MjAwNzI5NDI= node: id: '3456789012345678' delivery_status: DELIVERED occurrence_timestamp: 1640995260 status_timestamp: 1640995265 application: id: '9876543210987654' name: WhatsApp Business API Client - cursor: MTAxNTExOTQ1MjAwNzI5NDM= node: id: '4567890123456789' delivery_status: READ occurrence_timestamp: 1640995320 status_timestamp: 1640995325 application: id: '9876543210987654' name: WhatsApp Business API Client paging: cursors: after: MTAxNTExOTQ1MjAwNzI5NDM= before: MTAxNTExOTQ1MjAwNzI5NDE= next: https://graph.facebook.com/v23.0/1234567890123456/events?after=MTAxNTExOTQ1MjAwNzI5NDM filtered_by_status: summary: Message history events filtered by delivery status value: data: - cursor: MTAxNTExOTQ1MjAwNzI5NDI= node: id: '3456789012345678' delivery_status: DELIVERED occurrence_timestamp: 1640995260 status_timestamp: 1640995265 application: id: '9876543210987654' name: WhatsApp Business API Client paging: cursors: after: MTAxNTExOTQ1MjAwNzI5NDI= before: MTAxNTExOTQ1MjAwNzI5NDI= '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: status_filter must be a valid delivery status' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access message history events for this resource type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Message History ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Message History not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this message history type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Migration-Intent-ID}: get: summary: Get Migration Intent Details description: 'Retrieve comprehensive details about a WhatsApp Business Account migration intent, including its current status and migration information. **Use Cases:** - Monitor migration intent lifecycle and status changes - Verify migration intent configuration and current state - Check migration progress and completion status - Retrieve migration intent details for business workflows **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Migration intent details can be cached for short periods, but status information may change frequently during migration processes. Implement appropriate cache invalidation strategies. ' operationId: getMigrationIntentDetails tags: - Migration Intent parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Migration-Intent-ID in: path required: true description: 'Your Migration Intent ID. This ID is provided when you create the migration intent and can be found through migration management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, status). Available fields: id, status ' schema: type: string example: id,status responses: '200': description: Successfully retrieved migration intent details content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessAccountMigrationIntent' examples: initiated_migration: summary: Initiated migration intent value: id: '1234567890123456' status: INITIATED accepted_migration: summary: Accepted migration intent value: id: '2345678901234567' status: ACCEPTED completed_migration: summary: Completed migration intent value: id: '3456789012345678' status: COMPLETED '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: Migration-Intent-ID must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this migration intent type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Migration Intent ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Migration Intent not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this migration intent type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Pre-Verified-Phone-Number-ID}: get: summary: Get Pre-Verified Phone Number Details description: 'Retrieve details about a specific pre-verified phone number, including validation status, formatting information, and any associated error messages. **Use Cases:** - Check validation status of a pre-verified phone number - Retrieve formatted display version of the phone number - Get country code and formatting information - Troubleshoot validation errors **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Phone number details can be cached for moderate periods, but validation status may change. Implement appropriate cache invalidation strategies. ' operationId: getPreVerifiedPhoneNumberDetails tags: - Pre-Verified Phone Numbers parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Pre-Verified-Phone-Number-ID in: path required: true description: 'The pre-verified phone number ID to retrieve details for. This ID is provided by your Business Solution Provider (BSP) during the pre-verification process. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, is_input_id_valid). Available fields: id, country_prefix, display_phone_number, error_msg, is_input_id_valid ' schema: type: string example: id,country_prefix,display_phone_number,is_input_id_valid responses: '200': description: Successfully retrieved pre-verified phone number details content: application/json: schema: $ref: '#/components/schemas/PreVerifiedPhoneNumberValidation' examples: valid_phone_number: summary: Valid pre-verified phone number value: id: '1234567890123456' country_prefix: 1 display_phone_number: +1 (555) 123-4567 is_input_id_valid: true invalid_phone_number: summary: Invalid pre-verified phone number value: id: '2345678901234567' error_msg: Phone number format is invalid is_input_id_valid: false '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: phone_number_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this pre-verified phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Pre-verified phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Pre-verified phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this phone number type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] delete: summary: Delete Pre-Verified Phone Number description: 'Delete a pre-verified phone number from the system. This operation removes the phone number from your pre-verified list and cannot be undone. **Use Cases:** - Remove phone numbers that are no longer needed - Clean up invalid or incorrect pre-verified phone numbers - Manage phone number lifecycle and cleanup **Important Notes:** - This operation is irreversible - Deleted phone numbers cannot be recovered - Ensure the phone number is not in active use before deletion **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. ' operationId: deletePreVerifiedPhoneNumber tags: - Pre-Verified Phone Numbers parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Pre-Verified-Phone-Number-ID in: path required: true description: 'The pre-verified phone number ID to delete. This ID is provided by your Business Solution Provider (BSP) during the pre-verification process. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' responses: '200': description: Successfully deleted pre-verified phone number content: application/json: schema: type: object properties: success: type: boolean description: Indicates whether the deletion was successful example: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: phone_number_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to delete this pre-verified phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Pre-verified phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Pre-verified phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Phone number cannot be deleted due to current state content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Cannot delete phone number that is currently in use type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Pre-Verified-Phone-Number-ID}/partners: get: summary: Get Pre-Verified Phone Number Partners description: 'Retrieve the list of partner businesses that have been granted access to a specific WhatsApp Business Pre-Verified Phone Number. **Use Cases:** - Monitor partner business relationships and access permissions - Verify which businesses have access to shared pre-verified phone numbers - Retrieve partner business information for operational purposes - Validate partnership configurations before business operations **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Partner information can be cached for moderate periods, but partnership relationships may change. Implement appropriate cache invalidation strategies. ' operationId: getPreVerifiedPhoneNumberPartners tags: - Pre-Verified Phone Number Partners parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Pre-Verified-Phone-Number-ID in: path required: true description: 'Your Pre-Verified Phone Number ID. This ID is provided when the pre-verified phone number is created and can be found in your WhatsApp Business Account management interface. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, name). Available fields: id, name, created_time, updated_time, verification_status, primary_page, timezone_id, two_factor_type ' schema: type: string example: id,name,verification_status,created_time - name: limit in: query required: false description: 'Maximum number of partner businesses to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 50 - name: after in: query required: false description: 'Cursor for pagination. Use the ''after'' cursor from a previous response to get the next page. ' schema: type: string example: MTAxNTExOTQ1MjAwNzI5NDE= - name: before in: query required: false description: 'Cursor for pagination. Use the ''before'' cursor from a previous response to get the previous page. ' schema: type: string example: MAZDZD responses: '200': description: Successfully retrieved partner businesses for the pre-verified phone number content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessPreVerifiedPhoneNumberPartnersResponse' examples: multiple_partners: summary: Multiple partner businesses with full details value: data: - id: '1234567890123456' name: Partner Business Solutions Inc verification_status: verified created_time: '2023-01-15T10:30:00Z' updated_time: '2023-06-20T14:45:30Z' primary_page: '9876543210987654' timezone_id: 1 two_factor_type: admin_required - id: '2345678901234567' name: Global Commerce Partners LLC verification_status: verified created_time: '2023-03-10T08:15:00Z' updated_time: '2023-07-05T16:20:45Z' primary_page: '8765432109876543' timezone_id: 1 two_factor_type: admin_required paging: cursors: after: MTAxNTExOTQ1MjAwNzI5NDE= before: MAZDZD next: https://graph.facebook.com/v23.0/1234567890123456/partners?after=MTAxNTExOTQ1MjAwNzI5NDE%3D single_partner: summary: Single partner business with minimal details value: data: - id: '1234567890123456' name: Partner Business Solutions Inc paging: cursors: after: MTAxNTExOTQ1MjAwNzI5NDE= before: MAZDZD empty_partners: summary: No partner businesses found value: data: [] paging: cursors: {} '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: pre_verified_phone_number_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this Pre-Verified Phone Number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Pre-Verified Phone Number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Pre-Verified Phone Number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this pre-verified phone number type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Pre-Verified-Phone-Number-ID}/request_code: post: summary: Request Verification Code for Pre-Verified Phone Number description: 'Request a verification code for a pre-verified phone number via SMS or voice call. This is part of the WhatsApp Business Account onboarding process where pre-approved phone numbers must be verified before they can be used for messaging. **Process Flow:** 1. Call this endpoint to request a verification code 2. User receives code via SMS or voice call 3. Use the verify_code endpoint to complete verification 4. Phone number becomes active for messaging **Rate Limiting:** - Limited number of code requests per phone number per time period - Exponential backoff recommended for retry attempts - Voice calls may have additional restrictions **Language Support:** Verification messages are sent in the specified language when available. Falls back to English (en_US) if the requested language is not supported. **Security Considerations:** - Codes expire after a short time period - Limited number of verification attempts allowed - Phone number must be pre-verified and owned by requesting business ' operationId: requestPreVerifiedPhoneNumberCode tags: - Pre-Verified Phone Numbers parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Pre-Verified-Phone-Number-ID in: path required: true description: 'Your pre-verified phone number ID. This ID is provided when the phone number is pre-verified and can be found in your WhatsApp Business Account settings. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true description: Verification code request parameters content: application/json: schema: $ref: '#/components/schemas/RequestCodeRequest' examples: sms_request: summary: Request SMS verification code value: code_method: SMS language: en_US voice_request: summary: Request voice call verification code value: code_method: VOICE language: es_ES default_request: summary: Standard SMS request with English value: code_method: SMS language: en_US responses: '200': description: Successfully requested verification code content: application/json: schema: $ref: '#/components/schemas/RequestCodeResponse' examples: success_response: summary: Successful code request value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_method: summary: Invalid verification method value: error: message: 'Invalid parameter: code_method must be SMS or VOICE' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_language: summary: Invalid language code value: error: message: 'Invalid parameter: language must be a valid locale identifier' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: permission_denied: summary: Missing whatsapp_business_management permission value: error: message: Your app doesn't have permission to access this pre-verified phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource business_access_denied: summary: No access to business value: error: message: App does not have access to the business that owns this phone number type: OAuthException code: 200 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '404': description: Not Found - Pre-verified phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Pre-verified phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: already_verified: summary: Phone number already verified value: error: message: This phone number has already been verified type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn rate_limited: summary: Too many verification attempts value: error: message: Too many verification code requests. Please wait before requesting another code type: GraphMethodException code: 613 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Pre-Verified-Phone-Number-ID}/verify_code: post: summary: Verify OTP Code for Pre-Verified Phone Number description: 'Verify the OTP code received for a pre-verified phone number to complete the verification process. This endpoint validates the code and updates the verification status of the phone number. **Use Cases:** - Complete phone number verification during WhatsApp Business onboarding - Verify ownership of phone numbers for business messaging - Enable phone numbers for WhatsApp Business API usage **Rate Limiting:** This endpoint has specific rate limits to prevent abuse: - 125 requests per hour for business use cases - Standard Graph API rate limits also apply **Code Validation:** - Codes are time-sensitive and expire after a set period - Each code can only be used once - Invalid or expired codes will result in verification failure **Error Handling:** - Invalid codes return 400 Bad Request - Expired codes return 422 Unprocessable Entity - Rate limit exceeded returns 429 Too Many Requests ' operationId: verifyPreVerifiedPhoneNumberCode tags: - Pre-Verified Phone Numbers parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Pre-Verified-Phone-Number-ID in: path required: true description: 'Your Pre-Verified Phone Number ID. This ID is provided when you create the pre-verified phone number and can be found in your WhatsApp Business Manager or through phone number APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true description: Verification code details content: application/json: schema: $ref: '#/components/schemas/VerifyCodeRequest' examples: verify_code: summary: Verify received OTP code value: code: '123456' responses: '200': description: Successfully verified the OTP code content: application/json: schema: $ref: '#/components/schemas/VerifyCodeResponse' examples: successful_verification: summary: Code verification successful value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_code_format: summary: Invalid code format value: error: message: 'Invalid parameter: code must be a numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn missing_code: summary: Missing required code parameter value: error: message: 'Missing required parameter: code' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this Pre-Verified Phone Number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Pre-Verified Phone Number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Pre-Verified Phone Number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Code is invalid, expired, or already used content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_code: summary: Invalid verification code value: error: message: The verification code is invalid type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Invalid Code error_user_msg: The verification code you entered is incorrect expired_code: summary: Expired verification code value: error: message: The verification code has expired type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Code Expired error_user_msg: The verification code has expired. Please request a new code already_verified: summary: Phone number already verified value: error: message: This phone number is already verified type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Solution-ID}/access_token: get: summary: Get Multi-Partner Solution Access Token description: 'Retrieve a granular BISU access token for accessing customer business resources through the Multi-Partner Solution. The token provides secure, scoped access to WhatsApp Business Accounts that have been shared with the solution. **Use Cases:** - Obtain secure access tokens for partner applications to access customer business resources - Enable multi-tenant partner architectures with dedicated tokens per customer business - Support secure API operations on shared WhatsApp Business Accounts - Implement proper security boundaries between different customer businesses **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Token Management:** Access tokens are time-limited and should be refreshed before expiration. Store tokens securely and implement proper token rotation strategies. ' operationId: getSolutionAccessToken tags: - Multi-Partner Solutions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Solution-ID in: path required: true description: 'Your Multi-Partner Solution ID. This ID is provided when you create the solution and can be found in your Partner Dashboard or through solution management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: business_id in: query required: true description: 'The customer business ID for which you want to retrieve an access token. This must be a business that has shared a WhatsApp Business Account with your Multi-Partner Solution. ' schema: type: string pattern: ^[0-9]+$ example: '9876543210987654' responses: '200': description: Successfully retrieved granular BISU access token content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolutionAccessToken' examples: active_token: summary: Active granular BISU access token value: access_token: YOUR_GRANULAR_BISU_ACCESS_TOKEN expires_at: 1735689600 '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: business_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this Multi-Partner Solution or the specified business type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Solution ID or business ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Multi-Partner Solution or specified business not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The specified business has not shared a WABA with this Multi-Partner Solution type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Solution-ID}/accept_deactivation_request: post: summary: Accept WhatsApp Business Solution Deactivation Request description: 'Accepts a pending deactivation request for a WhatsApp Business Multi-Partner Solution. This endpoint completes the partner approval workflow by accepting a deactivation request that was previously initiated by another solution partner. Upon successful acceptance, the solution status transitions from ACTIVE to DEACTIVATED, and the pending request status changes from PENDING_DEACTIVATION to NONE. **Important Business Logic:** - Solution must be in ACTIVE status with PENDING_DEACTIVATION pending status - All outstanding payments and invoices must be settled before acceptance - Active marketing campaigns must be concluded or transferred - Webhook notifications will be sent to all solution partners upon completion - Solution resources and permissions will be cleaned up according to policy ' operationId: acceptWhatsAppBusinessSolutionDeactivationRequest tags: - WhatsApp Business Solution Management parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: Graph API version schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Solution-ID in: path required: true description: Unique identifier for the WhatsApp Business Solution schema: type: string example: '12345678901234567' - name: fields in: query required: false description: 'Comma-separated list of fields to return in the response. **Available Fields:** id, name, status, status_for_pending_request, owner_permissions **Default Fields:** name, status, status_for_pending_request ' schema: type: string example: id,name,status,status_for_pending_request requestBody: description: Empty request body - no parameters required for this endpoint content: application/json: schema: type: object example: {} responses: '200': description: 'Deactivation request accepted successfully. Solution status updated to DEACTIVATED. ' content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolution' example: id: '12345678901234567' name: Sample Business Solution Partnership status: DEACTIVATED status_for_pending_request: NONE owner_permissions: - MANAGE - DEVELOP '400': description: 'Bad Request - Invalid request parameters or malformed solution ID format. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid solution ID format provided type: GraphAPIException code: 100 error_subcode: 33 fbtrace_id: FAKE_TRACE_ID_12345 is_transient: false error_user_title: Invalid Request error_user_msg: The solution ID format is not valid. Please check your request parameters. '401': description: 'Unauthorized - Invalid, missing, or expired access token. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: FAKE_TRACE_ID_67890 is_transient: false error_user_title: Authentication Required error_user_msg: Please provide a valid access token to access this resource. '403': description: 'Forbidden - Insufficient permissions or app not authorized for this solution. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: App does not have permission to access this solution type: GraphMethodException code: 10 error_subcode: 2018218 fbtrace_id: FAKE_TRACE_ID_11111 is_transient: false error_user_title: Permission Denied error_user_msg: Your app does not have the required permissions to perform this action on the solution. '404': description: 'Not Found - Solution ID does not exist or is not accessible to the requesting app. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Solution not found or not accessible type: GraphMethodException code: 803 error_subcode: 1675030 fbtrace_id: FAKE_TRACE_ID_22222 is_transient: false error_user_title: Resource Not Found error_user_msg: The requested solution could not be found or you do not have access to it. '422': description: 'Unprocessable Entity - Valid parameters but business logic prevents processing (e.g., wrong solution state, outstanding payments). ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Solution is not in a valid state to accept deactivation requests type: GraphMethodException code: 100 error_subcode: 2207013 fbtrace_id: FAKE_TRACE_ID_33333 is_transient: false error_user_title: Request Cannot Be Processed error_user_msg: The solution must be in ACTIVE status with a pending deactivation request to accept deactivation. '429': description: 'Too Many Requests - Rate limit exceeded. Use exponential backoff for retries. ' headers: Retry-After: description: Number of seconds to wait before retrying schema: type: integer example: 60 content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: FAKE_TRACE_ID_44444 is_transient: true error_user_title: Rate Limit Exceeded error_user_msg: Too many requests have been made. Please wait and try again later. '500': description: 'Internal Server Error - Unexpected server error. Retry with exponential backoff if is_transient is true. ' content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred while processing your request type: GraphAPIException code: 2 error_subcode: 1349174 fbtrace_id: FAKE_TRACE_ID_55555 is_transient: true error_user_title: Service Temporarily Unavailable error_user_msg: We're experiencing technical difficulties. Please try again in a few moments. security: - bearerAuth: [] /{Version}/{Solution-ID}/accept: post: summary: Accept Multi-Partner Solution Invitation description: 'Accept an invitation to participate in a Multi-Partner Solution as a partner application. This endpoint transitions the partner''s status from NOTIFICATION_SENT to ACCEPTED, enabling the solution to progress toward ACTIVE status once all required partners accept. **Use Cases:** - Accept partnership invitations for Multi-Partner Solutions - Activate partner participation in existing solutions - Confirm partner app''s commitment to solution terms and conditions - Enable solution workflow progression from INITIATED to ACTIVE status **Business Logic:** - Only invited partner apps can accept solution invitations - Solution must be in INITIATED status to accept partnerships - Partner status transitions from NOTIFICATION_SENT to ACCEPTED - Solution may become ACTIVE once all required partners accept - Acceptance creates formal partnership agreement between apps **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Validation:** - Partner app must have received a valid solution invitation - Solution must exist and be accessible to the partner app - Partner app must have proper permissions and capabilities - Acceptance request must include valid partner app identification ' operationId: acceptWhatsAppBusinessSolution tags: - Multi-Partner Solutions - WhatsApp Business API parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Solution-ID in: path required: true description: 'ID of the Multi-Partner Solution to accept. This ID is provided in the original invitation and can be found in partner notifications or solution management interfaces. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolutionAcceptRequest' examples: partner_acceptance: summary: Partner app accepting solution invitation description: Standard acceptance request from an invited partner application value: partner_app_id: '9876543210987654' log_session_id: session_12345_accept_solution minimal_acceptance: summary: Minimal acceptance request description: Acceptance request with only required fields value: partner_app_id: '9876543210987654' responses: '200': description: 'Multi-Partner Solution invitation accepted successfully. The partner''s status has been updated to ACCEPTED and the solution may progress toward ACTIVE status. ' content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolutionAcceptResponse' examples: successful_acceptance: summary: Successful solution acceptance value: solution_id: '1234567890123456' partner_status: ACCEPTED success: true message: Solution partnership accepted successfully update_time: '2024-01-15T10:30:00Z' '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: partner_app_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or not invited to solution content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app is not invited to participate in this Multi-Partner Solution type: OAuthException code: 200 error_subcode: 1349175 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to accept this solution invitation '404': description: Not Found - Solution ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Multi-Partner Solution not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Solution cannot be accepted in current state content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Solution cannot be accepted: solution is not in INITIATED status' type: GraphMethodException code: 100 error_subcode: 2207051 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Solution-ID}: get: summary: Get Multi-Partner Solution Details description: 'Retrieve comprehensive details about a Multi-Partner Solution, including its current status, pending status transitions, ownership information, and granted permissions. **Use Cases:** - Monitor solution lifecycle and status changes - Verify solution configuration before business onboarding - Check pending approval requests and status transitions - Retrieve solution ownership and permission details **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Solution details can be cached for short periods, but status information may change frequently during transitions. Implement appropriate cache invalidation strategies. ' operationId: getSolutionDetails tags: - Multi-Partner Solutions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Solution-ID in: path required: true description: 'Your Multi-Partner Solution ID. This ID is provided when you create the solution and can be found in your Partner Dashboard or through solution management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (name, status, status_for_pending_request). Available fields: id, name, status, status_for_pending_request, owner_app, owner_permissions ' schema: type: string example: id,name,status,owner_app responses: '200': description: Successfully retrieved Multi-Partner Solution details content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolution' examples: active_solution: summary: Active solution with full details value: id: '1234567890123456' name: E-commerce Integration Solution status: ACTIVE status_for_pending_request: NONE owner_app: id: '9876543210987654' name: Solution Partner App owner_permissions: - MANAGE - DEVELOP - MANAGE_TEMPLATES - VIEW_INSIGHTS draft_solution: summary: Draft solution with minimal details value: id: '2345678901234567' name: Customer Support Solution status: DRAFT status_for_pending_request: NONE '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: solution_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this Multi-Partner Solution type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Solution ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Multi-Partner Solution not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this solution type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Solution-ID}/reject_deactivation_request: post: summary: Reject Multi-Partner Solution Deactivation Request description: 'Reject a pending deactivation request for a Multi-Partner Solution. This endpoint allows solution partners to decline deactivation requests from solution owners, maintaining the solution in its current active operational state. **Use Cases:** - Reject deactivation requests from solution owners - Maintain active solution partnerships when deactivation is not appropriate - Respond programmatically to deactivation requests through API integration - Keep solutions operational when business requirements or partnerships change **Business Logic:** - Solution status remains ACTIVE after successful rejection - StatusForPendingRequest transitions from PENDING_DEACTIVATION to NONE - All existing solution configurations and permissions are preserved - Solution partners receive notifications about the rejection decision **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Permissions:** Requires whatsapp_business_management permission and valid solution partnership relationship. ' operationId: rejectSolutionDeactivationRequest tags: - Multi-Partner Solutions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Solution-ID in: path required: true description: 'Your Multi-Partner Solution ID with a pending deactivation request. This ID is provided when you create the solution and can be found in your Partner Dashboard or through solution management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (name, status, status_for_pending_request). Available fields: id, name, status, status_for_pending_request, owner_app, owner_permissions ' schema: type: string example: id,name,status,status_for_pending_request requestBody: description: Request body for rejecting deactivation request required: true content: application/json: schema: type: object properties: reject_deactivation_request: type: boolean description: Set to true to reject the pending deactivation request example: true required: - reject_deactivation_request example: reject_deactivation_request: true responses: '200': description: Successfully rejected the deactivation request content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolution' examples: successful_rejection: summary: Deactivation request successfully rejected value: id: '1234567890123456' name: E-commerce Integration Solution status: ACTIVE status_for_pending_request: NONE owner_app: id: '9876543210987654' name: Solution Partner App owner_permissions: - MANAGE - DEVELOP - MANAGE_TEMPLATES - VIEW_INSIGHTS '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_parameter: summary: Invalid parameter provided value: error: message: 'Invalid parameter: solution_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn no_pending_request: summary: No pending deactivation request value: error: message: No pending deactivation request found for this solution type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or unauthorized access content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: insufficient_permissions: summary: Missing required permissions value: error: message: Insufficient permissions to reject deactivation request for this solution type: OAuthException code: 10 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource unauthorized_partner: summary: Not authorized solution partner value: error: message: You are not authorized to manage this Multi-Partner Solution type: GraphMethodException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '404': description: Not Found - Solution not found or not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Multi-Partner Solution not found or not accessible type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Invalid solution state or business logic violation content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_status: summary: Solution not in valid state for rejection value: error: message: Solution must have pending deactivation request to reject type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn already_processed: summary: Request already processed value: error: message: Deactivation request has already been processed type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Solution-ID}/reject: post: summary: Reject Multi-Partner Solution Request description: 'Reject a pending partnership request or deactivation request for a Multi-Partner Solution. This endpoint allows solution owners to decline incoming requests and maintain control over their solution partnerships and lifecycle. **Use Cases:** - Reject partnership requests from unauthorized or incompatible applications - Decline deactivation requests to keep solutions active - Maintain solution security and partnership quality - Control solution access and collaboration boundaries **Request Types:** - `PARTNERSHIP_REQUEST`: Reject an incoming partnership request from another app - `DEACTIVATION_REQUEST`: Reject a request to deactivate the solution **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Business Logic:** - Only solution owners can reject requests for their solutions - Partnership rejections require the partner_app_id parameter - Rejection actions are permanent and cannot be undone through this API - Rejected requests may need to be resubmitted through proper channels ' operationId: rejectSolutionRequest tags: - Multi-Partner Solutions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Solution-ID in: path required: true description: 'Your Multi-Partner Solution ID. This ID is provided when you create the solution and can be found in your Partner Dashboard or through solution management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SolutionRejectRequest' examples: reject_partnership: summary: Reject partnership request description: Reject an incoming partnership request from another application value: request_type: PARTNERSHIP_REQUEST partner_app_id: '9876543210987654' rejection_reason: Partnership terms do not align with our business requirements reject_deactivation: summary: Reject deactivation request description: Reject a request to deactivate the solution value: request_type: DEACTIVATION_REQUEST rejection_reason: Solution is still actively used by business customers responses: '200': description: Successfully rejected the Multi-Partner Solution request content: application/json: schema: $ref: '#/components/schemas/SolutionRejectResponse' examples: partnership_rejected: summary: Partnership request rejected value: success: true solution_id: '1234567890123456' rejected_request_type: PARTNERSHIP_REQUEST rejection_timestamp: '2024-01-15T10:30:00Z' partner_app_id: '9876543210987654' deactivation_rejected: summary: Deactivation request rejected value: success: true solution_id: '1234567890123456' rejected_request_type: DEACTIVATION_REQUEST rejection_timestamp: '2024-01-15T10:30:00Z' '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_request_type: summary: Invalid request type value: error: message: Invalid request_type. Must be PARTNERSHIP_REQUEST or DEACTIVATION_REQUEST type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn missing_partner_app_id: summary: Missing partner app ID for partnership rejection value: error: message: partner_app_id is required when rejecting PARTNERSHIP_REQUEST type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or not solution owner content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: not_solution_owner: summary: App is not the solution owner value: error: message: Only solution owners can reject requests for their solutions type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to reject requests for this solution insufficient_permissions: summary: App lacks required permissions value: error: message: Your app doesn't have permission to access this Multi-Partner Solution type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Solution ID does not exist or request not found content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: solution_not_found: summary: Solution ID does not exist value: error: message: Multi-Partner Solution not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn no_pending_request: summary: No pending request to reject value: error: message: No pending request of the specified type found for this solution type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request cannot be processed due to business logic constraints content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: already_processed: summary: Request already processed value: error: message: The specified request has already been processed and cannot be rejected type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn invalid_solution_state: summary: Solution in invalid state for rejection value: error: message: Solution is not in a valid state to reject this type of request type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Solution-ID}/send_deactivation_request: post: summary: Send Multi-Partner Solution Deactivation Request description: 'Submit a deactivation request for a Multi-Partner Solution. This initiates a workflow to transition the solution from its current state to deactivated, following proper business validation and approval processes. **Use Cases:** - Request deactivation of an active Multi-Partner Solution - Initiate solution lifecycle transition management - Trigger business workflow for solution deactivation approval - Programmatically manage solution lifecycle states **Business Logic:** - Solution must be in ACTIVE or INITIATED state to be eligible for deactivation - Deactivation requests are processed asynchronously - Solution status will transition to PENDING_DEACTIVATION during processing - Final deactivation requires business approval workflow completion **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Workflow:** 1. Validate solution ownership and permissions 2. Check solution eligibility for deactivation 3. Submit deactivation request to business workflow 4. Return confirmation with tracking identifier ' operationId: sendSolutionDeactivationRequest tags: - Multi-Partner Solutions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Solution-ID in: path required: true description: 'Your Multi-Partner Solution ID. This ID is provided when you create the solution and can be found in your Partner Dashboard or through solution management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolutionDeactivationRequest' examples: with_reason: summary: Deactivation request with reason value: reason: Solution no longer needed for current business operations without_reason: summary: Deactivation request without reason value: {} responses: '200': description: Successfully submitted deactivation request content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessSolutionDeactivationResponse' examples: successful_request: summary: Successful deactivation request submission value: success: true message: Deactivation request submitted successfully request_id: deactivation_req_1234567890 '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: solution_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to request deactivation for this Multi-Partner Solution type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Solution ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Multi-Partner Solution not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Solution is not eligible for deactivation content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Solution is not in a state that allows deactivation. Current status: DEACTIVATED' type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{User-ID}/assigned_whatsapp_business_accounts: get: summary: Get Assigned WhatsApp Business Accounts description: 'Retrieve WhatsApp Business Accounts that have been assigned to a specific user. This endpoint provides information about account assignments, permissions, and current status corresponding to the GraphAssignedWhatsAppBusinessAccountsEdge node. **Use Cases:** - Retrieve all WhatsApp Business Accounts assigned to a user - Check user permissions for specific accounts - Monitor account assignment status and changes - Validate user access before performing business operations **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Assignment information can be cached for short periods, but permissions and status may change frequently. Implement appropriate cache invalidation strategies. ' operationId: getAssignedWhatsAppBusinessAccounts tags: - Assigned WhatsApp Business Accounts parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: User-ID in: path required: true description: 'The user ID for whom to retrieve assigned WhatsApp Business Accounts. This must be a valid user ID within your solution or partnership. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, name, status). Available fields: id, name, status, assignment_date, permissions, business_id, phone_numbers ' schema: type: string example: id,name,status,permissions - name: limit in: query required: false description: 'Maximum number of accounts to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 - name: after in: query required: false description: 'Cursor for pagination. Use this to get the next page of results. ' schema: type: string example: MTAxNTExOTQ1MjAwNzI5NDE= - name: before in: query required: false description: 'Cursor for pagination. Use this to get the previous page of results. ' schema: type: string example: NDMyNzQyODI3OTQw responses: '200': description: Successfully retrieved assigned WhatsApp Business Accounts content: application/json: schema: $ref: '#/components/schemas/AssignedAccountsResponse' examples: multiple_accounts: summary: User with multiple assigned accounts value: data: - id: '1234567890123456' name: Primary Business Account status: ACTIVE assignment_date: '2023-10-15T14:30:00Z' permissions: - MANAGE - DEVELOP - MANAGE_TEMPLATES business_id: '9876543210987654' phone_numbers: - id: '1234567890' display_phone_number: +1 (555) 123-4567 verified_name: Primary Business status: CONNECTED - id: '2345678901234567' name: Secondary Business Account status: ACTIVE assignment_date: '2023-10-20T09:15:00Z' permissions: - VIEW_INSIGHTS - MESSAGING business_id: '8765432109876543' single_account: summary: User with single assigned account value: data: - id: '1234567890123456' name: Business Account status: ACTIVE assignment_date: '2023-10-15T14:30:00Z' permissions: - FULL_CONTROL business_id: '9876543210987654' no_accounts: summary: User with no assigned accounts value: data: [] '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: user_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access assigned WhatsApp Business Accounts for this user type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - User ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: User not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this user type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WhatsApp-Account-Number-ID}: get: summary: Get WhatsApp Account Number Details description: 'Retrieve comprehensive details about a WhatsApp Account Number, including its current status, verification information, quality rating, and configuration settings. **Use Cases:** - Monitor account number status and quality rating - Verify account number configuration before messaging operations - Check verification and approval status - Retrieve display name and business profile information **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Account number details can be cached for short periods, but status information may change frequently. Implement appropriate cache invalidation strategies. ' operationId: getWhatsAppAccountNumberDetails tags: - WhatsApp Account Numbers parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WhatsApp-Account-Number-ID in: path required: true description: 'Your WhatsApp Account Number ID. This ID represents the account number entity and can be obtained from your WhatsApp Business Account phone numbers list. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, display_phone_number, status). Available fields: id, display_phone_number, verified_name, status, quality_rating, country_code, country_dial_code, code_verification_status, name_status, messaging_limit_tier, account_mode, certificate, is_official_business_account ' schema: type: string example: id,display_phone_number,status,quality_rating responses: '200': description: Successfully retrieved WhatsApp Account Number details content: application/json: schema: $ref: '#/components/schemas/WhatsAppAccountNumber' examples: verified_account_number: summary: Verified account number with full details value: id: '1234567890123456' display_phone_number: +1 631-555-5555 verified_name: Jasper's Market status: CONNECTED quality_rating: GREEN country_code: US country_dial_code: '1' code_verification_status: VERIFIED name_status: APPROVED messaging_limit_tier: TIER_1K account_mode: LIVE is_official_business_account: false unverified_account_number: summary: Unverified account number with minimal details value: id: '2345678901234567' display_phone_number: +1 555-123-4567 status: UNVERIFIED quality_rating: NA code_verification_status: UNVERIFIED name_status: NONE '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: account_number_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Account Number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Account Number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Account Number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this account number type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WhatsApp-Business-Account-ID}/assigned_users: get: summary: List Assigned Users description: 'Retrieve a list of users assigned to the WhatsApp Business Account with their permissions and user details. This endpoint supports pagination and filtering capabilities. **Use Cases:** - Audit user access to WhatsApp Business Account - Retrieve user permission assignments for compliance - List all users with access for management purposes - Monitor user access patterns and assignments **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** User assignment data can be cached for short periods, but permission changes may occur frequently. Implement appropriate cache invalidation strategies. ' operationId: getAssignedUsers tags: - WhatsApp Business Account Users parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WhatsApp-Business-Account-ID in: path required: true description: 'Your WhatsApp Business Account ID. This ID is provided when you create the account and can be found in your Business Manager or through account management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: business in: query required: true description: 'Business ID that owns or has access to the WhatsApp Business Account. This parameter is required to specify the business context for user assignments. ' schema: type: string pattern: ^[0-9]+$ example: '9876543210987654' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, name). Available fields: id, name, business, user_type ' schema: type: string example: id,name,business,user_type - name: limit in: query required: false description: 'Maximum number of assigned users to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 example: 25 - name: after in: query required: false description: 'Cursor for pagination. Use this to get the next page of results. ' schema: type: string example: QVFIUjJ5M2wwdmtONVFHbDZAMVQ4OGJBQUFBQQ - name: before in: query required: false description: 'Cursor for pagination. Use this to get the previous page of results. ' schema: type: string example: QVFIUmx1WTBpMGpJWXprYzVYaVhabW9PVVhF responses: '200': description: Successfully retrieved assigned users list content: application/json: schema: $ref: '#/components/schemas/AssignedUsersResponse' examples: multiple_users: summary: Multiple assigned users with different types value: data: - id: '1234567890123456' name: John Smith business: id: '9876543210987654' name: Example Business Inc user_type: BUSINESS_USER - id: '2345678901234567' name: System User Bot business: id: '9876543210987654' name: Example Business Inc user_type: SYSTEM_USER paging: cursors: after: QVFIUjJ5M2wwdmtONVFHbDZAMVQ4OGJBQUFBQQ before: QVFIUmx1WTBpMGpJWXprYzVYaVhabW9PVVhF next: https://graph.facebook.com/v23.0/1234567890123456/assigned_users?access_token=YOUR_SYSTEM_USER_ACCESS_TOKEN&limit=25&after=QVFIUjJ5M2wwdmtONVFHbDZAMVQ4OGJBQUFBQQ summary: total_count: 15 single_user: summary: Single assigned user value: data: - id: '1234567890123456' name: Jane Doe user_type: BUSINESS_USER summary: total_count: 1 '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The parameter business is required to specify a business type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Need permission on WhatsAppBusinessAccount or this Business type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WhatsApp Business Account ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this account type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Add User to WhatsApp Business Account description: 'Add a user to the WhatsApp Business Account with specified permission tasks. This operation grants the user access to perform specific actions on the account based on the provided permission tasks. **Use Cases:** - Grant user access to WhatsApp Business Account management - Assign specific permission tasks for granular access control - Add new team members to WhatsApp Business Account operations - Configure user permissions for different business roles **Permission Tasks:** Different permission tasks grant access to different WhatsApp Business Account features: - MANAGE: General account management permissions - DEVELOP: Development and API access permissions - MANAGE_TEMPLATES: Message template management - MANAGE_PHONE: Phone number management - MESSAGING: Send and receive messages - FULL_CONTROL: Complete access to all account features **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. ' operationId: addAssignedUser tags: - WhatsApp Business Account Users parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WhatsApp-Business-Account-ID in: path required: true description: 'Your WhatsApp Business Account ID. This ID is provided when you create the account and can be found in your Business Manager or through account management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - user - tasks properties: user: type: string description: 'User ID of the person to add to the WhatsApp Business Account. This must be a valid Facebook user ID. ' pattern: ^[0-9]+$ example: '2345678901234567' tasks: type: array description: 'Array of permission tasks to grant to the user. These tasks determine what actions the user can perform on the WhatsApp Business Account. ' items: $ref: '#/components/schemas/WhatsAppBusinessAccountPermissionTask' minItems: 1 maxItems: 16 example: - MANAGE - DEVELOP - MANAGE_TEMPLATES examples: basic_permissions: summary: Add user with basic management permissions value: user: '2345678901234567' tasks: - MANAGE - VIEW_INSIGHTS developer_permissions: summary: Add user with development permissions value: user: '3456789012345678' tasks: - DEVELOP - MANAGE_TEMPLATES - VIEW_TEMPLATES full_access: summary: Add user with full control value: user: '4567890123456789' tasks: - FULL_CONTROL responses: '200': description: Successfully added user to WhatsApp Business Account content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' example: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: user must be a valid user ID' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to add users to this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WhatsApp Business Account ID or User ID does not exist content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: User is already assigned to this WhatsApp Business Account type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] delete: summary: Remove User from WhatsApp Business Account description: 'Remove a user''s access from the WhatsApp Business Account. This operation revokes all permissions and access rights for the specified user on the account. **Use Cases:** - Revoke user access when they leave the organization - Remove temporary access grants - Clean up user permissions for security compliance - Manage user lifecycle and access control **Important Notes:** - This operation removes ALL permissions for the user on this WhatsApp Business Account - The user will lose access to all account features and data - This action cannot be undone - the user must be re-added if access is needed again - Webhooks may be triggered to notify of user access changes **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. ' operationId: removeAssignedUser tags: - WhatsApp Business Account Users parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WhatsApp-Business-Account-ID in: path required: true description: 'Your WhatsApp Business Account ID. This ID is provided when you create the account and can be found in your Business Manager or through account management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - user properties: user: type: string description: 'User ID of the person to remove from the WhatsApp Business Account. This must be a valid Facebook user ID that is currently assigned to the account. ' pattern: ^[0-9]+$ example: '2345678901234567' examples: remove_user: summary: Remove user access value: user: '2345678901234567' responses: '200': description: Successfully removed user from WhatsApp Business Account content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' example: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: user must be a valid user ID' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to remove users from this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WhatsApp Business Account ID or User ID does not exist or is not assigned content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: User is not assigned to this WhatsApp Business Account type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Cannot remove user due to business asset group permissions type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Phone-Number-ID}/conversational_automation: post: summary: Configure Conversational Automation description: 'Configure conversational automation settings for a WhatsApp Business Account phone number, including welcome messages, conversation prompts (ice breakers), and bot commands. **Use Cases:** - Set up automated welcome messages for new customer conversations - Configure conversation prompts to guide customer interactions - Define bot commands for common customer service scenarios - Update existing automation settings - Enable or disable specific automation features **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Validation:** - Command names must be unique within the same phone number - Prompts and command descriptions must comply with WhatsApp Business policies - Maximum limits are enforced for prompts and commands ' operationId: configureConversationalAutomation tags: - Conversational Automation parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: Phone-Number-ID in: path required: true description: 'Your WhatsApp Business phone number ID. This ID represents the phone number entity and can be obtained from your WhatsApp Business Account phone numbers list. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ConversationalAutomationRequest' examples: enable_welcome_with_prompts: summary: Enable welcome message with conversation prompts value: enable_welcome_message: true prompts: - How can I help you today? - What product are you interested in? commands: [] setup_bot_commands: summary: Configure bot commands for customer service value: enable_welcome_message: false prompts: [] commands: - command_name: help command_description: Get help with your order - command_name: status command_description: Check your order status - command_name: support command_description: Contact customer support full_automation_setup: summary: Complete automation setup with all features value: enable_welcome_message: true prompts: - Welcome! How can I assist you? - Are you looking for product information? - Do you need help with an existing order? commands: - command_name: catalog command_description: View our product catalog - command_name: hours command_description: Check our business hours - command_name: location command_description: Find our store locations disable_automation: summary: Disable all automation features value: enable_welcome_message: false prompts: [] commands: [] responses: '200': description: Successfully configured conversational automation settings content: application/json: schema: $ref: '#/components/schemas/ConversationalAutomationResponse' examples: success_response: summary: Successful configuration value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: invalid_command_name: summary: Invalid command name format value: error: message: Invalid command name format. Command names must contain only alphanumeric characters and underscores type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn too_many_prompts: summary: Exceeded maximum prompts limit value: error: message: Too many prompts provided. Maximum allowed is 3 type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn prompt_too_long: summary: Prompt text exceeds character limit value: error: message: Prompt text exceeds maximum length of 80 characters type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to manage conversational automation for this phone number type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Phone number ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business phone number not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' examples: phone_not_verified: summary: Phone number not verified value: error: message: Phone number must be verified before configuring conversational automation type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn duplicate_command: summary: Duplicate command names value: error: message: 'Command names must be unique. Duplicate command name found: help' type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{Business-ID}/extendedcredits: get: tags: - Billing summary: Get credit lines description: '- Endpoint reference: [Business > Extendedcredits](https://developers.facebook.com/docs/marketing-api/reference/extended-credit/)' operationId: getCreditLines responses: '200': description: Example response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string example: '1972385232742146' legal_entity_name: type: string example: Lucky Shrub example: - id: '1972385232742146' legal_entity_name: Lucky Shrub examples: Example response: value: data: - id: '1972385232742146' legal_entity_name: Lucky Shrub security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: Business-ID in: path required: true schema: type: string /{Version}/{WABA-ID}/flows: get: tags: - Flows - Create Flow summary: List Flows description: List Flows operationId: listFlows responses: '200': description: List Flows content: application/json: schema: type: object properties: data: type: array items: type: object properties: categories: type: array items: type: string example: SIGN_UP example: - SIGN_UP id: type: string example: flow-1 name: type: string example: my first flow status: type: string example: DRAFT validation_errors: type: array items: {} example: [] example: - categories: - SIGN_UP id: flow-1 name: my first flow status: DRAFT validation_errors: [] - categories: - SIGN_UP - SIGN_IN id: flow-2 name: my second flow status: DRAFT validation_errors: - column_end: 30 column_start: 17 error: INVALID_PROPERTY error_type: JSON_SCHEMA_ERROR line_end: 46 line_start: 46 message: The property "initial-text" cannot be specified at "$root/screens/0/layout/children/2/children/0". - categories: - CONTACT_US id: flow-3 name: another flow status: PUBLISHED validation_errors: [] paging: type: object properties: cursors: type: object properties: after: type: string example: QVFIUnZAWV... before: type: string example: QVFIUnpKT... examples: List Flows: value: data: - categories: - SIGN_UP id: flow-1 name: my first flow status: DRAFT validation_errors: [] - categories: - SIGN_UP - SIGN_IN id: flow-2 name: my second flow status: DRAFT validation_errors: - column_end: 30 column_start: 17 error: INVALID_PROPERTY error_type: JSON_SCHEMA_ERROR line_end: 46 line_start: 46 message: The property "initial-text" cannot be specified at "$root/screens/0/layout/children/2/children/0". - categories: - CONTACT_US id: flow-3 name: another flow status: PUBLISHED validation_errors: [] paging: cursors: after: QVFIUnZAWV... before: QVFIUnpKT... security: - bearerAuth: [] post: tags: - Flows - Create Flow summary: Create Flow description: 'Creates a new flow. To clone an existing flow you can add the parameter `"clone_flow_id": "original-flow-id"`' operationId: createFlow requestBody: content: multipart/form-data: schema: type: object properties: categories: type: string example: '["OTHER"]' clone_flow_id: type: string example: endpoint_uri: type: string example: https://example.com name: type: string example: responses: '200': description: Create Flow content: application/json: schema: type: object properties: id: type: string example: flow-1 examples: Create Flow: value: id: flow-1 security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: WABA-ID in: path required: true schema: type: string /{Version}/{WABA-ID}/migrate_flows: post: tags: - Flows - Create Flow summary: Migrate Flows description: Creates a copy of existing flows from source WABA to destination WABA with the same names. operationId: migrateFlows requestBody: content: multipart/form-data: schema: type: object properties: source_flow_names: description: '[Optional] The names of the flows that will be copied from the source WABA. If not specified, all flows in the source WABA will be copied' type: string example: '["appointment", "leadgen"]' source_waba_id: description: The ID of the source WABA from which the flows will be copied type: string example: responses: '200': description: Migrate Flows content: application/json: schema: type: object properties: failed_flows: type: array items: type: object properties: error_code: type: string example: '4233041' error_message: type: string example: 'Flows Migration Error: Flow name not found in source WABA.' source_name: type: string example: leadgen example: - error_code: '4233041' error_message: 'Flows Migration Error: Flow name not found in source WABA.' source_name: leadgen migrated_flows: type: array items: type: object properties: migrated_id: type: string example: dest-flow-1 source_id: type: string example: source-flow-1 source_name: type: string example: appointment example: - migrated_id: dest-flow-1 source_id: source-flow-1 source_name: appointment examples: Migrate Flows: value: failed_flows: - error_code: '4233041' error_message: 'Flows Migration Error: Flow name not found in source WABA.' source_name: leadgen migrated_flows: - migrated_id: dest-flow-1 source_id: source-flow-1 source_name: appointment security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: WABA-ID in: path required: true schema: type: string /{Version}/{Flow-ID}: get: tags: - Flows - Get Endpoint Metrics summary: Get Flow description: Can request specific fields by enabling the \`fields\` query param operationId: getFlow parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: fields in: query schema: type: string example: id,name,categories,preview,status,validation_errors,json_version,data_api_version,data_channel_uri,health_status,whatsapp_business_account,application description: Return specific fields in the response - name: date_format in: query schema: type: string example: U description: Returns date as unix timestamp in seconds responses: '200': description: Get Flow / Get Preview URL / Get Endpoint Request Count Metric / Get Endpoint Request Error Metric / Get Endpoint Request Error Rate Metric / Get Endpoint Request Latencies Metric / Get Endpoint Availability Metric content: application/json: schema: type: object properties: application: type: object properties: id: type: string example: app-1 link: type: string example: https://www.facebook.com/games/?app_id=app-1 name: type: string example: My Awesome App categories: type: array items: type: string example: OTHER example: - OTHER data_api_version: type: string example: '3.0' data_channel_uri: type: string example: https://example.com health_status: type: object properties: can_send_message: type: string example: BLOCKED entities: type: array items: type: object properties: can_send_message: type: string example: AVAILABLE entity_type: type: string example: FLOW errors: type: array items: type: object properties: error_code: type: number example: 141006 error_description: type: string example: There is an error with the payment method. This will block business initiated conversations. possible_solution: type: string example: There was an error with your payment method. Please add a new payment method to the account. example: - error_code: 141006 error_description: There is an error with the payment method. This will block business initiated conversations. possible_solution: There was an error with your payment method. Please add a new payment method to the account. - error_code: 141014 error_description: The WABA is banned. possible_solution: Please visit Business Support Home for more details (https://business.facebook.com/accountquality) on how to appeal the ban. id: type: string example: flow-1 example: - can_send_message: AVAILABLE entity_type: FLOW id: flow-1 - can_send_message: BLOCKED entity_type: WABA errors: - error_code: 141006 error_description: There is an error with the payment method. This will block business initiated conversations. possible_solution: There was an error with your payment method. Please add a new payment method to the account. - error_code: 141014 error_description: The WABA is banned. possible_solution: Please visit Business Support Home for more details (https://business.facebook.com/accountquality) on how to appeal the ban. id: waba-1 - can_send_message: LIMITED entity_type: BUSINESS errors: - error_code: 141010 error_description: The Business has not passed business verification. possible_solution: Visit business settings and start or resolve the business verification request. id: business-1 - can_send_message: AVAILABLE entity_type: APP id: app-1 id: type: string example: flow-1 json_version: type: string example: '2.1' metric: type: object properties: data_points: type: array items: type: object properties: data: type: array items: type: object properties: key: type: string example: value value: type: number example: 138 example: - key: value value: 138 timestamp: type: string example: 2024-01-28T08:00:00+0000 example: - data: - key: value value: 138 timestamp: 2024-01-28T08:00:00+0000 - data: - key: value value: 361 timestamp: 2024-01-29T08:00:00+0000 granularity: type: string example: DAY name: type: string example: ENDPOINT_REQUEST_COUNT name: type: string example: my first flow preview: type: object properties: expires_at: type: string example: 2023-05-21T11:18:09+0000 preview_url: type: string example: https://business.facebook.com/wa/manage/flows/55000..../preview/?token=b9d6..... status: type: string example: DRAFT validation_errors: type: array items: {} example: [] whatsapp_business_account: type: object properties: business_type: type: string example: ent id: type: string example: waba-1 message_template_namespace: type: string example: namespace-1 name: type: string example: My Awesome WABA timezone_id: type: string example: '54' examples: Get Endpoint Availability Metric: value: id: flow-1 metric: data_points: - data: - key: succeeded value: 713 - key: failed value: 335 timestamp: 2024-01-28T08:00:00+0000 - data: - key: succeeded value: 623 - key: failed value: 2 timestamp: 2024-01-29T08:00:00+0000 granularity: DAY name: ENDPOINT_AVAILABILITY Get Endpoint Request Count Metric: value: id: flow-1 metric: data_points: - data: - key: value value: 138 timestamp: 2024-01-28T08:00:00+0000 - data: - key: value value: 361 timestamp: 2024-01-29T08:00:00+0000 granularity: DAY name: ENDPOINT_REQUEST_COUNT Get Endpoint Request Error Metric: value: id: flow-1 metric: data_points: - data: - key: timeout_error value: 25 timestamp: 2024-01-28T08:00:00+0000 - data: - key: timeout_error value: 64 timestamp: 2024-01-29T08:00:00+0000 granularity: DAY name: ENDPOINT_REQUEST_ERROR Get Endpoint Request Error Rate Metric: value: id: flow-1 metric: data_points: - data: - key: value value: 0.12625250501002 timestamp: 2024-01-28T08:00:00+0000 granularity: LIFETIME name: ENDPOINT_REQUEST_ERROR_RATE Get Endpoint Request Latencies Metric: value: id: flow-1 metric: data_points: - data: - key: '1' value: 106 timestamp: 2024-01-28T08:00:00+0000 - data: - key: '1' value: 328 - key: '2' value: 2 timestamp: 2024-01-29T08:00:00+0000 granularity: DAY name: ENDPOINT_REQUEST_LATENCY_SECONDS_CEIL Get Flow: value: application: id: app-1 link: https://www.facebook.com/games/?app_id=app-1 name: My Awesome App categories: - OTHER data_api_version: '3.0' data_channel_uri: https://example.com health_status: can_send_message: BLOCKED entities: - can_send_message: AVAILABLE entity_type: FLOW id: flow-1 - can_send_message: BLOCKED entity_type: WABA errors: - error_code: 141006 error_description: There is an error with the payment method. This will block business initiated conversations. possible_solution: There was an error with your payment method. Please add a new payment method to the account. - error_code: 141014 error_description: The WABA is banned. possible_solution: Please visit Business Support Home for more details (https://business.facebook.com/accountquality) on how to appeal the ban. id: waba-1 - can_send_message: LIMITED entity_type: BUSINESS errors: - error_code: 141010 error_description: The Business has not passed business verification. possible_solution: Visit business settings and start or resolve the business verification request. id: business-1 - can_send_message: AVAILABLE entity_type: APP id: app-1 id: flow-1 json_version: '2.1' name: my first flow preview: expires_at: 2023-05-21T11:18:09+0000 preview_url: https://business.facebook.com/wa/manage/flows/55000..../preview/?token=b9d6..... status: DRAFT validation_errors: [] whatsapp_business_account: business_type: ent id: waba-1 message_template_namespace: namespace-1 name: My Awesome WABA timezone_id: '54' Get Preview URL: value: id: flow-1 preview: expires_at: 2023-05-21T11:18:09+0000 preview_url: https://business.facebook.com/wa/manage/flows/550.../preview/?token=b9d6.... security: - bearerAuth: [] post: tags: - Flows - Update Flow summary: Update Flow Metadata description: Update Flow Metadata operationId: updateFlowMetadata requestBody: content: multipart/form-data: schema: type: object properties: categories: type: string example: '["OTHER"]' endpoint_uri: type: string example: https://example.com name: type: string example: responses: '200': description: Update Flow Metadata content: application/json: schema: type: object properties: success: type: boolean example: true examples: Update Flow Metadata: value: success: true security: - bearerAuth: [] delete: tags: - Flows - Update Flow summary: Delete Flow description: Deletes the flow entirely. This action is not reversible. Only a DRAFT flow can be deleted. operationId: deleteFlow responses: '200': description: Delete Flow content: application/json: schema: type: object properties: success: type: boolean example: true examples: Delete Flow: value: success: true security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: Flow-ID in: path required: true schema: type: string /{Version}/{Flow-ID}/assets: get: tags: - Flows - Update Flow summary: List Assets (Get Flow JSON URL) description: Returns all assets attached to the flow. Currently only FLOW_JSON asset is supported operationId: listAssetsGetFlowJsonUrl requestBody: content: multipart/form-data: schema: type: object properties: {} responses: '200': description: List Assets content: application/json: schema: type: object properties: data: type: array items: type: object properties: asset_type: type: string example: FLOW_JSON download_url: type: string example: https://scontent.xx.fbcdn.net/m1/v/t0.57323-24/An_Hq0jnfJ... name: type: string example: flow.json example: - asset_type: FLOW_JSON download_url: https://scontent.xx.fbcdn.net/m1/v/t0.57323-24/An_Hq0jnfJ... name: flow.json paging: type: object properties: cursors: type: object properties: after: type: string example: QVFIU... before: type: string example: QVFIU... examples: List Assets: value: data: - asset_type: FLOW_JSON download_url: https://scontent.xx.fbcdn.net/m1/v/t0.57323-24/An_Hq0jnfJ... name: flow.json paging: cursors: after: QVFIU... before: QVFIU... security: - bearerAuth: [] post: tags: - Flows - Update Flow summary: Update Flow JSON description: 'Used to upload a flow JSON file with the flow content. Refer to flow JSON documentation here [https://developers.facebook.com/docs/whatsapp/flows/reference/flowjson](https://developers.facebook.com/docs/whatsapp/flows/reference/flowjson) The file must be attached as from data. The response will include any validation errors in the JSON file' operationId: updateFlowJson requestBody: content: multipart/form-data: schema: type: object properties: asset_type: type: string example: FLOW_JSON file: type: string format: binary name: type: string example: flow.json responses: '200': description: Upload Flow JSON Asset content: application/json: schema: type: object properties: success: type: boolean example: true validation_errors: type: array items: type: object properties: column_end: type: number example: 30 column_start: type: number example: 17 error: type: string example: INVALID_PROPERTY error_type: type: string example: JSON_SCHEMA_ERROR line_end: type: number example: 46 line_start: type: number example: 46 message: type: string example: The property "initial-text" cannot be specified at "$root/screens/0/layout/children/2/children/0". example: - column_end: 30 column_start: 17 error: INVALID_PROPERTY error_type: JSON_SCHEMA_ERROR line_end: 46 line_start: 46 message: The property "initial-text" cannot be specified at "$root/screens/0/layout/children/2/children/0". examples: Upload Flow JSON Asset: value: success: true validation_errors: - column_end: 30 column_start: 17 error: INVALID_PROPERTY error_type: JSON_SCHEMA_ERROR line_end: 46 line_start: 46 message: The property "initial-text" cannot be specified at "$root/screens/0/layout/children/2/children/0". security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: Flow-ID in: path required: true schema: type: string /{Version}/{Flow-ID}/publish: post: tags: - Flows - Update Flow summary: Publish Flow description: Updates the status of the flow as "PUBLISHED". This action is not reversible. The flow and its assets become immutable once published. To update the flow, you must create a new flow and specify the previous flow id as the \`clone_flow_id\` parameter operationId: publishFlow responses: '200': description: Publish Flow content: application/json: schema: type: object properties: success: type: boolean example: true examples: Publish Flow: value: success: true security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: Flow-ID in: path required: true schema: type: string /{Version}/{Flow-ID}/deprecate: post: tags: - Flows - Update Flow summary: Deprecate Flow description: Updates the status of the flow as "DEPRECATED". This action is not reversible. Only a published flow can be deprecated to prevent sending or opening it. operationId: deprecateFlow responses: '200': description: Deprecate Flow content: application/json: schema: type: object properties: success: type: boolean example: true examples: Deprecate Flow: value: success: true security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: Flow-ID in: path required: true schema: type: string /{Version}/{WABA-ID}/in_progress_onbehalf_request: get: summary: Get In-Progress On-Behalf Requests description: 'Retrieve a list of in-progress on-behalf requests for the specified WhatsApp Business Account. These requests represent pending business relationship requests that have been sent from this WhatsApp Business Account to other businesses and are awaiting approval. **Use Cases:** - Monitor pending on-behalf requests sent from your WhatsApp Business Account - Track business partnership request status and workflow - Retrieve details about requesting and receiving businesses for pending requests - Manage business relationship approval processes **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Pagination:** This endpoint supports cursor-based pagination. Use the ''after'' and ''before'' parameters to navigate through large result sets. The response includes pagination URLs for convenience. ' operationId: getInProgressOnBehalfRequests tags: - WhatsApp Business Account On-Behalf Requests parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'Your WhatsApp Business Account ID. This ID can be found in your WhatsApp Business Manager or through the WhatsApp Business Account APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, status, business_owned_object). Available fields: id, status, business_owned_object, receiving_business, requesting_business ' schema: type: string example: id,status,receiving_business,requesting_business - name: limit in: query required: false description: 'Maximum number of results to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 - name: after in: query required: false description: 'Cursor for forward pagination. Use this to get the next page of results. ' schema: type: string example: CURSOR_AFTER_PLACEHOLDER - name: before in: query required: false description: 'Cursor for backward pagination. Use this to get the previous page of results. ' schema: type: string example: CURSOR_BEFORE_PLACEHOLDER responses: '200': description: Successfully retrieved in-progress on-behalf requests content: application/json: schema: $ref: '#/components/schemas/InProgressOnBehalfRequestResponse' examples: with_requests: summary: Response with in-progress requests value: data: - id: '1234567890123456' status: IN_PROGRESS business_owned_object: '9876543210987654' receiving_business: id: '5678901234567890' name: Partner Business LLC requesting_business: id: '2345678901234567' name: My Business Inc - id: '2345678901234567' status: IN_PROGRESS business_owned_object: '9876543210987654' receiving_business: id: '3456789012345678' name: Another Partner Corp requesting_business: id: '2345678901234567' name: My Business Inc paging: cursors: after: CURSOR_AFTER_PLACEHOLDER before: CURSOR_BEFORE_PLACEHOLDER paging: next: https://graph.facebook.com/v23.0/1234567890123456/in_progress_onbehalf_request?after=CURSOR_AFTER_PLACEHOLDER empty_response: summary: Response with no in-progress requests value: data: [] '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: whatsapp_business_account_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WhatsApp Business Account ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this request type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{OBO-Mobility-Intent-ID}: get: summary: Get OBO Mobility Intent Details description: 'Retrieve details for a specific OBO Mobility Intent Node. This endpoint provides comprehensive information about the mobility intent, including current status, associated WABA and solution details, and operation history. **Use Cases:** - Monitor status of ongoing mobility operations - Retrieve mobility intent configuration details - Audit mobility operation progress - Verify operation parameters and settings **Response Fields:** The response includes the complete OBO Mobility Intent Node with all available fields including id, waba, solution, status, and timestamps. ' operationId: getOBOMobilityIntent tags: - OBO Mobility Intent parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string example: v23.0 - name: OBO-Mobility-Intent-ID in: path required: true description: 'OBO Mobility Intent Node ID. This ID identifies the specific mobility intent configuration to retrieve. ' schema: type: string example: '1234567890123456' - name: fields in: query description: 'Comma-separated list of fields to include in the response. If not specified, default fields (id, waba, solution) will be returned. ' schema: type: string example: id,waba,solution,status,created_time,updated_time responses: '200': description: Successfully retrieved OBO mobility intent details content: application/json: schema: $ref: '#/components/schemas/OBOMobilityIntentNode' examples: active_intent: summary: Active OBO mobility intent value: id: '1234567890123456' waba: id: '1234567890123456' name: My Business Account status: ACTIVE solution: id: '2345678901234567' name: My Business Solution partner_id: '3456789012345678' status: ACTIVE status: ACTIVE created_time: '2024-01-15T10:30:00Z' updated_time: '2024-01-15T14:45:00Z' '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: OBO-Mobility-Intent-ID must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this OBO mobility intent type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - OBO Mobility Intent ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: OBO Mobility Intent not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WABA-ID}/obo_mobility_intent: post: summary: Create OBO Mobility Intent description: 'Create a new On-Behalf-Of mobility intent for a WhatsApp Business Account. This endpoint allows authorized solution providers to initiate mobility operations on behalf of business accounts, facilitating transfers and handovers between different solution providers. **Use Cases:** - Initiate account mobility process between solution providers - Request handover of account management - Schedule mobility operations for future execution - Coordinate multi-partner solution transitions **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Mobility Process:** 1. Create mobility intent with appropriate intent type 2. System validates mobility eligibility and permissions 3. Intent enters PENDING status awaiting approvals 4. Partner notifications and approval workflows are triggered 5. Upon approval, mobility operation is scheduled or executed 6. Status updates are provided throughout the process ' operationId: createOBOMobilityIntent tags: - OBO Mobility Intent parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID. This ID identifies the WABA for which the OBO mobility intent is being created. ' schema: type: string example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OBOMobilityIntentRequest' examples: initiate_transfer: summary: Initiate account transfer value: solution_id: '2345678901234567' intent_type: INITIATE_TRANSFER target_solution_id: '3456789012345678' mobility_reason: Transferring account management to new solution provider metadata: partner_approval_id: approval_123456 business_justification: Business restructuring request_handover: summary: Request account handover value: solution_id: '2345678901234567' intent_type: REQUEST_HANDOVER target_solution_id: '3456789012345678' scheduled_execution_time: '2024-12-01T10:00:00Z' mobility_reason: Scheduled handover during maintenance window cancel_transfer: summary: Cancel mobility operation value: solution_id: '2345678901234567' intent_type: CANCEL_TRANSFER mobility_reason: Transfer cancelled due to business requirements change responses: '200': description: Successfully created OBO mobility intent content: application/json: schema: $ref: '#/components/schemas/OBOMobilityIntentResponse' examples: transfer_initiated: summary: Transfer intent successfully initiated value: success: true mobility_intent_id: obo_mobility_123456789 status: PENDING estimated_completion_time: '2024-12-01T12:00:00Z' approval_required: true next_steps: - Await partner approval - Confirm transfer details handover_scheduled: summary: Handover intent successfully scheduled value: success: true mobility_intent_id: obo_mobility_987654321 status: SCHEDULED estimated_completion_time: '2024-12-01T10:00:00Z' approval_required: false next_steps: - Automatic execution at scheduled time '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: solution_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to create OBO mobility intent for this WABA type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WABA ID or Solution ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account or Solution not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: OBO mobility intent cannot be created for solution in current state type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WABA-ID}/phone_numbers: get: summary: Get WhatsApp Business Account Phone Numbers description: 'Retrieve all phone numbers associated with a WhatsApp Business Account, including their status, verification details, and configuration information. **Use Cases:** - List all phone numbers in a WhatsApp Business Account - Monitor phone number status and verification progress - Check phone number quality ratings and messaging limits - Retrieve phone number configuration details **Filtering:** You can filter results using the `filtering` parameter with JSON-encoded filter conditions. Supported filters include account_mode, messaging_limit_tier, and is_official_business_account. **Sorting:** Results can be sorted by creation_time or last_onboarded_time in ascending or descending order. **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Phone number data can be cached for short periods, but status information may change frequently. Implement appropriate cache invalidation strategies. ' operationId: getWhatsAppBusinessAccountPhoneNumbers tags: - Phone Number Management parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager or through the business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned. Available fields include: id, display_phone_number, verified_name, status, quality_rating, country_code, country_dial_code, code_verification_status, unified_cert_status, account_mode, host_platform, messaging_limit_tier, is_official_business_account, username ' schema: type: string example: id,display_phone_number,verified_name,status,quality_rating - name: filtering in: query required: false description: 'JSON-encoded array of filter conditions. Each filter should specify field, operator, and value. Supported fields: account_mode, messaging_limit_tier, is_official_business_account ' schema: type: string example: '[{"field":"account_mode","operator":"EQUAL","value":"LIVE"}]' - name: sort in: query required: false description: 'Sort field and direction. Format: field_name.asc or field_name.desc Supported fields: creation_time, last_onboarded_time ' schema: type: string enum: - creation_time.asc - creation_time.desc - last_onboarded_time.asc - last_onboarded_time.desc example: last_onboarded_time.desc - name: limit in: query required: false description: Maximum number of phone numbers to return per page schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 - name: after in: query required: false description: Cursor for pagination - retrieve records after this cursor schema: type: string - name: before in: query required: false description: Cursor for pagination - retrieve records before this cursor schema: type: string responses: '200': description: Successfully retrieved WhatsApp Business Account phone numbers content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessAccountPhoneNumbersConnection' examples: multiple_phone_numbers: summary: Multiple phone numbers with various statuses value: data: - id: '1906385232743451' display_phone_number: +1 631-555-5555 verified_name: Jasper's Market status: LINKED quality_rating: GREEN country_code: US country_dial_code: '1' code_verification_status: VERIFIED unified_cert_status: APPROVED account_mode: LIVE host_platform: CLOUD_API messaging_limit_tier: TIER_1K is_official_business_account: true username: jaspers_market - id: '1913623884432103' display_phone_number: +1 631-555-5556 verified_name: Jasper's Ice Cream status: PENDING quality_rating: UNKNOWN country_code: US country_dial_code: '1' code_verification_status: NOT_VERIFIED unified_cert_status: NAME_PENDING_REVIEW account_mode: SANDBOX host_platform: CLOUD_API messaging_limit_tier: TIER_50 is_official_business_account: false username: null paging: cursors: after: MTAxNTExOTQ1MjAwNzI5NDE= single_phone_number: summary: Single phone number response value: data: - id: '1906385232743451' display_phone_number: +1 631-555-5555 verified_name: My Business status: LINKED quality_rating: GREEN '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: filtering must be valid JSON' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WhatsApp Business Account ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this account type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Create WhatsApp Business Account Phone Number description: 'Create a new phone number registration within a WhatsApp Business Account. This endpoint initiates the phone number onboarding process, including verification and business name approval. **Use Cases:** - Add new phone numbers to a WhatsApp Business Account - Migrate phone numbers from on-premises to Cloud API - Register pre-verified phone numbers for BSP scenarios - Initiate phone number verification and business name approval process **Prerequisites:** - WhatsApp Business Account must have available phone number slots - Phone number must not be already registered with WhatsApp Business - Business must meet WhatsApp Business API requirements - Appropriate permissions and app review completion **Process Flow:** 1. Submit phone number and business name for registration 2. Phone number verification code will be sent (if not pre-verified) 3. Business name will be submitted for review 4. Monitor status through GET endpoint until approval **Rate Limiting:** Phone number creation is subject to strict rate limits to prevent abuse. Standard Graph API rate limits also apply. **Migration Support:** Set migrate_phone_number=true when migrating from on-premises API to Cloud API. Additional validation and migration-specific logic will be applied. ' operationId: createWhatsAppBusinessAccountPhoneNumber tags: - Phone Number Management parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID where the phone number will be added. This ID can be found in your WhatsApp Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PhoneNumberCreateRequest' examples: basic_phone_number: summary: Basic phone number registration value: phone_number: '16315551000' verified_name: My Business Name cc: '1' migration_phone_number: summary: Phone number migration from on-premises value: phone_number: '16315551001' verified_name: Migrated Business cc: '1' migrate_phone_number: true preverified_phone_number: summary: Pre-verified phone number for BSP value: phone_number: '16315551002' verified_name: BSP Business cc: '1' preverified_id: preverified_12345 responses: '200': description: Successfully created phone number registration content: application/json: schema: $ref: '#/components/schemas/PhoneNumberCreateResponse' examples: successful_creation: summary: Phone number successfully created value: id: '1906385232743451' '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: phone_number must be in E.164 format' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or phone number limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number limit exceeded for this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349175 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Limit Exceeded error_user_msg: You have reached the maximum number of phone numbers for this account '404': description: Not Found - WhatsApp Business Account ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '409': description: Conflict - Phone number already exists or is in use content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number is already registered with WhatsApp Business type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Phone number validation failed: invalid format' type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Phone number creation rate limit exceeded type: OAuthException code: 4 error_subcode: 2446080 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WABA-ID}/schedules: get: summary: Get WhatsApp Business Account Schedules description: 'Retrieve all schedules associated with a WhatsApp Business Account, including their configuration, status, and execution details. **Use Cases:** - List all schedules in a WhatsApp Business Account - Monitor schedule status and performance - Check schedule configuration and timing details - Retrieve schedule execution history and metrics **Filtering:** You can filter results using the `filtering` parameter with JSON-encoded filter conditions. Supported filters include status, schedule_type, and is_active. **Sorting:** Results can be sorted by created_time or updated_time in ascending or descending order. **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Schedule data can be cached for short periods, but status information may change frequently. Implement appropriate cache invalidation strategies. ' operationId: getWhatsAppBusinessAccountSchedules tags: - Schedule Management parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager or through the business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned. Available fields include: id, name, status, schedule_type, description, start_time, end_time, timezone, days_of_week, created_time, updated_time, is_active, recurrence_pattern ' schema: type: string example: id,name,status,schedule_type,start_time,end_time - name: filtering in: query required: false description: 'JSON-encoded array of filter conditions. Each filter should specify field, operator, and value. Supported fields: status, schedule_type, is_active ' schema: type: string example: '[{"field":"status","operator":"EQUAL","value":"ACTIVE"}]' - name: sort in: query required: false description: 'Sort field and direction. Format: field_name.asc or field_name.desc Supported fields: created_time, updated_time ' schema: type: string enum: - created_time.asc - created_time.desc - updated_time.asc - updated_time.desc example: created_time.desc - name: limit in: query required: false description: Maximum number of schedules to return per page schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 - name: after in: query required: false description: Cursor for pagination - retrieve records after this cursor schema: type: string - name: before in: query required: false description: Cursor for pagination - retrieve records before this cursor schema: type: string responses: '200': description: Successfully retrieved WhatsApp Business Account schedules content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessAccountSchedulesConnection' examples: multiple_schedules: summary: Multiple schedules with various types value: data: - id: '1234567890123456' name: Business Hours Schedule status: ACTIVE schedule_type: BUSINESS_HOURS description: Standard business operating hours start_time: 09:00 end_time: '17:00' timezone: America/New_York days_of_week: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY created_time: '2024-01-15T10:30:00Z' updated_time: '2024-01-20T14:45:00Z' is_active: true recurrence_pattern: frequency: WEEKLY interval: 1 - id: '2345678901234567' name: Weekend Maintenance status: INACTIVE schedule_type: MAINTENANCE_WINDOW description: System maintenance window start_time: 02:00 end_time: 04:00 timezone: UTC days_of_week: - SATURDAY - SUNDAY created_time: '2024-01-10T08:00:00Z' updated_time: '2024-01-15T12:00:00Z' is_active: false paging: cursors: after: MTAxNTExOTQ1MjAwNzI5NDE= single_schedule: summary: Single schedule response value: data: - id: '1234567890123456' name: Business Hours Schedule status: ACTIVE schedule_type: BUSINESS_HOURS start_time: 09:00 end_time: '17:00' is_active: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: filtering must be valid JSON' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WhatsApp Business Account ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this account type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Create WhatsApp Business Account Schedule description: 'Create a new schedule configuration within a WhatsApp Business Account. This endpoint allows businesses to set up automated scheduling for various operations such as business hours, automated responses, and maintenance windows. **Use Cases:** - Create business hours schedules for automated responses - Set up maintenance windows for system operations - Configure automated message campaigns with timing - Establish recurring schedule patterns for business operations **Prerequisites:** - WhatsApp Business Account must have scheduling feature enabled - Appropriate permissions for schedule management - Valid timezone and time format specifications - Business must meet WhatsApp Business API requirements **Process Flow:** 1. Submit schedule configuration with timing and recurrence details 2. System validates schedule parameters and conflicts 3. Schedule is created and activated based on is_active flag 4. Monitor schedule status through GET endpoint **Rate Limiting:** Schedule creation is subject to rate limits to prevent abuse. Standard Graph API rate limits also apply. **Validation:** - Start time must be before end time - Timezone must be valid IANA timezone identifier - Days of week must be valid if specified - Recurrence pattern must be consistent with schedule type ' operationId: createWhatsAppBusinessAccountSchedule tags: - Schedule Management parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID where the schedule will be created. This ID can be found in your WhatsApp Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScheduleCreateRequest' examples: business_hours_schedule: summary: Business hours schedule creation value: name: Business Hours Schedule schedule_type: BUSINESS_HOURS description: Standard business operating hours start_time: 09:00 end_time: '17:00' timezone: America/New_York days_of_week: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY is_active: true recurrence_pattern: frequency: WEEKLY interval: 1 maintenance_window: summary: Maintenance window schedule value: name: Weekend Maintenance schedule_type: MAINTENANCE_WINDOW description: System maintenance during off-hours start_time: 02:00 end_time: 04:00 timezone: UTC days_of_week: - SATURDAY - SUNDAY is_active: false automated_response: summary: Automated response schedule value: name: After Hours Auto-Reply schedule_type: AUTOMATED_RESPONSE description: Automated responses outside business hours start_time: '18:00' end_time: 08:00 timezone: America/Los_Angeles days_of_week: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY is_active: true responses: '200': description: Successfully created schedule content: application/json: schema: $ref: '#/components/schemas/ScheduleCreateResponse' examples: successful_creation: summary: Schedule successfully created value: id: '1234567890123456' '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: start_time must be before end_time' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or schedule limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Schedule limit exceeded for this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349175 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Limit Exceeded error_user_msg: You have reached the maximum number of schedules for this account '404': description: Not Found - WhatsApp Business Account ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '409': description: Conflict - Schedule name already exists or time conflict content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Schedule name already exists in this WhatsApp Business Account type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Schedule validation failed: invalid timezone identifier' type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Schedule creation rate limit exceeded type: OAuthException code: 4 error_subcode: 2446080 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WABA-ID}/set_obo_mobility_intent: post: summary: Set OBO Mobility Intent description: 'Set On-Behalf-Of (OBO) mobility intent for a Multi-Partner Solution associated with a WhatsApp Business Account. This endpoint enables solution providers to establish OBO relationships for managing client WhatsApp Business Accounts. **Use Cases:** - Enable solution provider management of client WABA operations - Establish OBO relationships for business messaging solutions - Configure cross-platform mobility for WhatsApp Business messaging - Set up solution provider access to client accounts - Manage client onboarding for solution provider services **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** OBO mobility intent settings are cached for performance. Changes may take a few minutes to propagate across all systems. Implement appropriate cache invalidation strategies. ' operationId: setOBOMobilityIntent tags: - OBO Mobility Intent parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'Your WhatsApp Business Account ID. This ID can be found in your Business Manager or through the WhatsApp Business Account management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true description: OBO mobility intent configuration data content: application/json: schema: $ref: '#/components/schemas/SetOBOMobilityIntentRequest' examples: basic_obo_intent: summary: Basic OBO mobility intent setup value: waba_id: '1234567890123456' solution_id: '2345678901234567' app_id: '3456789012345678' client_mutation_id: obo_mobility_intent_mutation_123 full_obo_intent: summary: Complete OBO mobility intent with all parameters value: waba_id: '1234567890123456' solution_id: '2345678901234567' app_id: '3456789012345678' actor_id: '4567890123456789' client_mutation_id: obo_mobility_intent_mutation_456 responses: '200': description: Successfully set OBO mobility intent content: application/json: schema: $ref: '#/components/schemas/SetOBOMobilityIntentResponse' examples: successful_intent: summary: Successful OBO mobility intent creation value: success: true intent_id: obo_intent_987654321 client_mutation_id: obo_mobility_intent_mutation_123 error_msg: null failed_intent: summary: Failed OBO mobility intent creation value: success: false intent_id: null client_mutation_id: obo_mobility_intent_mutation_123 error_msg: Invalid solution configuration for OBO operations '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: waba_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to set OBO mobility intent for this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WABA ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Cannot set OBO mobility intent: solution configuration is invalid' type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WABA-ID}/set_solution_migration_intent: post: summary: Set Solution Migration Intent description: 'Set migration intent for a Multi-Partner Solution associated with a WhatsApp Business Account. This endpoint allows solution partners to initiate, schedule, confirm, or cancel migration processes for their solutions. **Use Cases:** - Initiate migration process for solution transitions - Schedule migration for a specific time - Confirm pending migration requests - Cancel previously set migration intents **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Migration Process:** 1. Set migration intent with INITIATE_MIGRATION 2. System validates migration eligibility 3. Migration intent enters PENDING status 4. Partner can schedule or confirm migration 5. Migration executes at scheduled time or immediately upon confirmation ' operationId: setSolutionMigrationIntent tags: - Solution Migration parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID. This ID identifies the WABA for which the solution migration intent is being set. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetSolutionMigrationIntentRequest' examples: initiate_migration: summary: Initiate solution migration value: solution_id: '1234567890123456' migration_intent: INITIATE_MIGRATION target_solution_id: '2345678901234567' migration_reason: Migrating to new solution provider for enhanced features schedule_migration: summary: Schedule solution migration value: solution_id: '1234567890123456' migration_intent: SCHEDULE_MIGRATION target_solution_id: '2345678901234567' scheduled_migration_time: '2024-12-01T10:00:00Z' migration_reason: Scheduled migration during maintenance window cancel_migration: summary: Cancel solution migration value: solution_id: '1234567890123456' migration_intent: CANCEL_MIGRATION migration_reason: Migration cancelled due to business requirements change responses: '200': description: Successfully set solution migration intent content: application/json: schema: $ref: '#/components/schemas/SetSolutionMigrationIntentResponse' examples: migration_initiated: summary: Migration intent successfully initiated value: success: true migration_intent_id: migration_intent_123456789 status: PENDING estimated_completion_time: '2024-12-01T12:00:00Z' migration_scheduled: summary: Migration intent successfully scheduled value: success: true migration_intent_id: migration_intent_987654321 status: SCHEDULED estimated_completion_time: '2024-12-01T10:00:00Z' '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: solution_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to set migration intent for this solution type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WABA ID or Solution ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account or Solution not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Migration intent cannot be set for solution in current state type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WABA-ID}/solutions: get: summary: List Multi-Partner Solutions for WABA description: 'Retrieve a paginated list of Multi-Partner Solutions associated with the specified WhatsApp Business Account. This endpoint supports field selection and cursor-based pagination for efficient data retrieval. **Use Cases:** - Discover available Multi-Partner Solutions for business onboarding - Monitor solution status and availability across your WABA - Retrieve solution ownership and permission details - Filter solutions by specific fields or status requirements **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Solution listings can be cached for short periods, but status information may change frequently during transitions. Implement appropriate cache invalidation strategies. **Pagination:** This endpoint supports cursor-based pagination using `limit`, `after`, and `before` parameters. Use the `paging` object in responses to navigate through result sets. ' operationId: listWabaSolutions tags: - Multi-Partner Solutions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID for which to retrieve associated Multi-Partner Solutions. This ID can be found in your WhatsApp Business Manager or through WABA management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (name, status, status_for_pending_request). Available fields: id, name, status, status_for_pending_request, owner_app, owner_permissions ' schema: type: string example: id,name,status,owner_app - name: limit in: query required: false description: 'Maximum number of solutions to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 25 - name: after in: query required: false description: 'Cursor for pagination. Returns solutions after this cursor position. Use the cursor from the previous response''s `paging.cursors.after` field. ' schema: type: string example: FAKE_CURSOR_AFTER_456DEF - name: before in: query required: false description: 'Cursor for pagination. Returns solutions before this cursor position. Use the cursor from the previous response''s `paging.cursors.before` field. ' schema: type: string example: FAKE_CURSOR_BEFORE_123ABC responses: '200': description: Successfully retrieved Multi-Partner Solutions list content: application/json: schema: $ref: '#/components/schemas/SolutionsList' examples: multiple_solutions: summary: Multiple solutions with different statuses value: data: - id: '1234567890123456' name: E-commerce Integration Solution status: ACTIVE status_for_pending_request: NONE owner_app: id: '9876543210987654' name: Solution Partner App owner_permissions: - MANAGE - DEVELOP - MANAGE_TEMPLATES - VIEW_INSIGHTS - id: '2345678901234567' name: Customer Support Solution status: DRAFT status_for_pending_request: NONE paging: cursors: before: FAKE_CURSOR_BEFORE_123ABC after: FAKE_CURSOR_AFTER_456DEF next: https://graph.facebook.com/v23.0/1234567890123456/solutions?limit=25&after=FAKE_CURSOR_AFTER_456DEF single_solution: summary: Single solution with minimal fields value: data: - id: '3456789012345678' name: Analytics Integration Solution status: ACTIVE status_for_pending_request: NONE paging: cursors: before: FAKE_CURSOR_BEFORE_789GHI after: FAKE_CURSOR_AFTER_789GHI empty_list: summary: No solutions found for this WABA value: data: [] paging: cursors: {} '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: waba_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: FAKE_TRACE_ID_123ABC456DEF '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: FAKE_TRACE_ID_123ABC456DEF '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: FAKE_TRACE_ID_123ABC456DEF error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WABA ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: FAKE_TRACE_ID_123ABC456DEF '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this WABA type: GraphMethodException code: 100 fbtrace_id: FAKE_TRACE_ID_123ABC456DEF '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: FAKE_TRACE_ID_123ABC456DEF is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: FAKE_TRACE_ID_123ABC456DEF is_transient: true security: - bearerAuth: [] /{Version}/{WABA-ID}/subscribed_apps: get: summary: Get All Subscriptions for a WABA description: 'Retrieve a list of all applications currently subscribed to webhook events for the specified WhatsApp Business Account. **Use Cases:** - Monitor which apps are subscribed to WABA webhook events - Audit subscription configurations and permissions - Verify subscription status before making changes - Retrieve subscription details for troubleshooting **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Subscription data can be cached for short periods, but may change when apps subscribe or unsubscribe. Implement appropriate cache invalidation strategies. ' operationId: getAllSubscriptionsForAWaba tags: - Webhook Subscriptions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned. Available fields: id, name, link ' schema: type: string example: id,name,link responses: '200': description: Successfully retrieved list of subscribed applications content: application/json: schema: $ref: '#/components/schemas/SubscribedAppsResponse' examples: multiple_subscriptions: summary: Multiple apps subscribed to WABA value: data: - whatsapp_business_api_data: id: '1234567890123456' name: Business Messaging App link: https://www.facebook.com/games/?app_id=1234567890123456 - whatsapp_business_api_data: id: '2345678901234567' name: Customer Support Bot link: https://www.facebook.com/games/?app_id=2345678901234567 no_subscriptions: summary: No apps subscribed to WABA value: data: [] '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: WABA-ID must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WABA ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this subscription type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Subscribe to WABA Webhooks description: 'Subscribe your application to webhook events for the specified WhatsApp Business Account. This enables your app to receive real-time notifications for events such as message deliveries, status updates, and other WABA activities. **Use Cases:** - Enable webhook notifications for your app - Configure custom callback URLs for webhook delivery - Set up webhook verification tokens for security - Override default app webhook settings for specific WABAs **Rate Limiting:** Standard Graph API rate limits apply. Subscription operations may have additional throttling to prevent abuse. **Security:** Always use HTTPS endpoints for webhook callbacks. Verify webhook authenticity using the provided verification tokens and signature validation. ' operationId: subscribeToWabaWebhooks tags: - Webhook Subscriptions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: false description: Optional configuration for webhook subscription content: application/json: schema: $ref: '#/components/schemas/SubscriptionRequest' examples: basic_subscription: summary: Basic subscription without custom configuration value: {} custom_callback: summary: Subscription with custom callback URL value: override_callback_uri: https://your-webhook-endpoint.com/webhook verify_token: YOUR_VERIFY_TOKEN_PLACEHOLDER responses: '200': description: Successfully subscribed to WABA webhooks content: application/json: schema: $ref: '#/components/schemas/SubscriptionResponse' examples: basic_subscription_success: summary: Basic subscription successful value: success: true custom_callback_success: summary: Custom callback subscription successful value: success: true data: - override_callback_uri: https://your-webhook-endpoint.com/webhook whatsapp_business_api_data: id: '1234567890123456' name: Business Messaging App link: https://www.facebook.com/games/?app_id=1234567890123456 '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid callback URI format type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to subscribe to this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WABA ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Webhook callback URL is not reachable or invalid type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] delete: summary: Unsubscribe from WABA Webhooks description: 'Unsubscribe your application from webhook events for the specified WhatsApp Business Account. This will stop your app from receiving webhook notifications for this WABA. **Use Cases:** - Disable webhook notifications when no longer needed - Clean up subscriptions during app decommissioning - Temporarily disable webhooks for maintenance - Remove subscriptions for WABAs no longer managed by your app **Rate Limiting:** Standard Graph API rate limits apply. Unsubscription operations are typically processed immediately. **Important:** Unsubscribing will immediately stop all webhook deliveries for this WABA. Ensure your application can handle the cessation of webhook events gracefully. ' operationId: unsubscribeFromWabaWebhooks tags: - Webhook Subscriptions parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' responses: '200': description: Successfully unsubscribed from WABA webhooks content: application/json: schema: $ref: '#/components/schemas/SubscriptionResponse' examples: unsubscribe_success: summary: Unsubscription successful value: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: WABA-ID must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to unsubscribe from this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WABA ID does not exist or subscription not found content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found or not subscribed type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Cannot unsubscribe: subscription is required for active integrations' type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{TEMPLATE_ID}: get: tags: - Templates summary: Get template by ID (default fields) description: '- Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview) - Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals) - Endpoint reference: [WhatsApp Message Template](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-hsm/)' operationId: getTemplateByIdDefaultFields responses: '200': description: Example response headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' ETag: $ref: '#/components/headers/ETag' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: type: object properties: category: type: string example: MARKETING components: type: array items: type: object properties: buttons: type: array items: type: object properties: text: type: string example: Stop promotions type: type: string example: QUICK_REPLY example: - text: Stop promotions type: QUICK_REPLY example: type: object properties: body_text: type: array items: type: array items: type: string example: Mark example: - Mark - FALL25 example: - - Mark - FALL25 format: type: string example: TEXT text: type: string example: Fall Sale type: type: string example: HEADER example: - format: TEXT text: Fall Sale type: HEADER - example: body_text: - - Mark - FALL25 text: Hi {{1}}, our Fall Sale is on! Use promo code {{2}} Get an extra 25% off every order above $350! type: BODY - text: Not interested in any of our sales? Tap Stop Promotions type: FOOTER - buttons: - text: Stop promotions type: QUICK_REPLY type: BUTTONS id: type: string example: '920070352646140' language: type: string example: en_US name: type: string example: 2023_april_promo status: type: string example: APPROVED examples: Example response: value: category: MARKETING components: - format: TEXT text: Fall Sale type: HEADER - example: body_text: - - Mark - FALL25 text: Hi {{1}}, our Fall Sale is on! Use promo code {{2}} Get an extra 25% off every order above $350! type: BODY - text: Not interested in any of our sales? Tap Stop Promotions type: FOOTER - buttons: - text: Stop promotions type: QUICK_REPLY type: BUTTONS id: '920070352646140' language: en_US name: 2023_april_promo status: APPROVED security: - bearerAuth: [] post: tags: - Templates summary: Edit template description: '- Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview) - Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals) - Endpoint reference: [WhatsApp Message Template](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-hsm/)' operationId: editTemplate requestBody: content: application/json: schema: type: object properties: category: type: string example: MARKETING components: type: array items: type: object properties: buttons: type: array items: type: object properties: text: type: string example: Stop promotions type: type: string example: QUICK_REPLY example: - text: Stop promotions type: QUICK_REPLY example: type: object properties: body_text: type: array items: type: array items: type: string example: Mark example: - Mark - FALL25 example: - - Mark - FALL25 format: type: string example: TEXT text: type: string example: Fall Sale type: type: string example: HEADER example: - format: TEXT text: Fall Sale type: HEADER - example: body_text: - - Mark - FALL25 text: Hi {{1}}, our Fall Sale is on! Use promo code {{2}} Get an extra 25% off every order above $350! type: BODY - text: Not interested in any of our sales? Tap Stop Promotions type: FOOTER - buttons: - text: Stop promotions type: QUICK_REPLY type: BUTTONS language: type: string example: en_US name: type: string example: 2023_april_promo examples: Edit template: value: category: MARKETING components: - format: TEXT text: Fall Sale type: HEADER - example: body_text: - - Mark - FALL25 text: Hi {{1}}, our Fall Sale is on! Use promo code {{2}} Get an extra 25% off every order above $350! type: BODY - text: Not interested in any of our sales? Tap Stop Promotions type: FOOTER - buttons: - text: Stop promotions type: QUICK_REPLY type: BUTTONS language: en_US name: 2023_april_promo responses: '200': description: Example response headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: type: object properties: success: type: boolean example: true examples: Example response: value: success: true security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: TEMPLATE_ID in: path required: true schema: type: string /{Version}/{WABA-ID}/message_templates: get: tags: - Templates summary: Get template by name (default fields) description: '- Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview) - Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals) - Endpoint reference: [WhatsApp Business Account > Message Templates](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account/message_templates/)' operationId: getTemplateByNameDefaultFields parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: name in: query schema: type: string example: responses: '200': description: Example response / Example response headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' ETag: $ref: '#/components/headers/ETag' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: type: object properties: data: type: array items: type: object properties: category: type: string example: MARKETING components: type: array items: type: object properties: buttons: type: array items: type: object properties: text: type: string example: Stop promotions type: type: string example: QUICK_REPLY example: - text: Stop promotions type: QUICK_REPLY example: type: object properties: body_text: type: array items: type: array items: type: string example: Mark example: - Mark - FALL25 example: - - Mark - FALL25 format: type: string example: TEXT text: type: string example: Fall Sale type: type: string example: HEADER example: - format: TEXT text: Fall Sale type: HEADER - example: body_text: - - Mark - FALL25 text: Hi {{1}}, our Fall Sale is on! Use promo code {{2}} Get an extra 25% off every order above $350! type: BODY - text: Not interested in any of our sales? Tap Stop Promotions type: FOOTER - buttons: - text: Stop promotions type: QUICK_REPLY type: BUTTONS id: type: string example: '920070352646140' language: type: string example: en_US name: type: string example: 2023_april_promo status: type: string example: REJECTED example: - category: MARKETING components: - format: TEXT text: Fall Sale type: HEADER - example: body_text: - - Mark - FALL25 text: Hi {{1}}, our Fall Sale is on! Use promo code {{2}} Get an extra 25% off every order above $350! type: BODY - text: Not interested in any of our sales? Tap Stop Promotions type: FOOTER - buttons: - text: Stop promotions type: QUICK_REPLY type: BUTTONS id: '920070352646140' language: en_US name: 2023_april_promo status: REJECTED paging: type: object properties: cursors: type: object properties: after: type: string example: MjQZD before: type: string example: MAZDZD examples: Example response: value: data: - category: MARKETING components: - format: TEXT text: Hello World type: HEADER - text: Welcome and congratulations!! This message demonstrates your ability to send a message notification from WhatsApp Business Platform’s Cloud API. Thank you for taking the time to test with us. type: BODY - text: WhatsApp Business API Team type: FOOTER id: '1192339204654487' language: en_US name: hello_world previous_category: ACCOUNT_UPDATE status: APPROVED - category: MARKETING components: - format: TEXT text: Fall Sale type: HEADER - example: body_text: - - Mark - FALL25 text: Hi {{1}}, our Fall Sale is on! Use promo code {{2}} Get an extra 25% off every order above $350! type: BODY - text: Not interested in any of our sales? Tap Stop Promotions type: FOOTER - buttons: - text: Stop promotions type: QUICK_REPLY type: BUTTONS id: '920070352646140' language: en_US name: 2023_april_promo status: APPROVED paging: cursors: after: MjQZD before: MAZDZD security: - bearerAuth: [] post: tags: - Flows - Send Flow summary: Create authentication template w/ OTP copy code button description: '- Guide: [Authentication Templates with OTP Buttons](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/authentication-templates/authentication-templates) - Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview) - Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals) - Endpoint reference: [WhatsApp Business Account > Message Templates](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account/message_templates/)' operationId: createAuthenticationTemplateWOtpCopyCodeButton requestBody: content: application/json: schema: type: object properties: category: type: string example: MARKETING components: type: array items: type: object properties: buttons: type: array items: type: object properties: flow_action: type: string example: navigate flow_id: type: string example: '{{Flow-ID}}' navigate_screen: type: string example: text: type: string example: Check out this offer! type: type: string example: FLOW example: - flow_action: navigate flow_id: '{{Flow-ID}}' navigate_screen: text: Check out this offer! type: FLOW text: type: string example: Check out this new offer type: type: string example: body example: - text: Check out this new offer type: body - buttons: - flow_action: navigate flow_id: '{{Flow-ID}}' navigate_screen: text: Check out this offer! type: FLOW type: BUTTONS language: type: string example: en_US name: type: string example: examples: Create Flow Template Message by Flow JSON: value: category: MARKETING components: - text: Check out this new offer type: body - buttons: - flow_action: navigate flow_json: '{"version":"5.0","screens":[{"id":"WELCOME_SCREEN","layout":{"type":"SingleColumnLayout","children":[{"type":"TextHeading","text":"Hello World"},{"type":"Footer","label":"Complete","on-click-action":{"name":"complete","payload":{}}}]},"title":"Welcome","terminal":true,"success":true,"data":{}}]}' navigate_screen: WELCOME_SCREEN text: Check out this offer! type: FLOW type: BUTTONS language: en_US name: Create Flow Template Message by ID: value: category: MARKETING components: - text: Check out this new offer type: body - buttons: - flow_action: navigate flow_id: '{{Flow-ID}}' navigate_screen: text: Check out this offer! type: FLOW type: BUTTONS language: en_US name: Create Flow Template Message by Name: value: category: MARKETING components: - text: Check out this new offer type: body - buttons: - flow_action: navigate flow_name: '{{Flow-Name}}' navigate_screen: text: Check out this offer! type: FLOW type: BUTTONS language: en_US name: Create authentication template w/ OTP copy code button: value: category: AUTHENTICATION components: - add_security_recommendation: true type: BODY - code_expiration_minutes: 10 type: FOOTER - buttons: - otp_type: COPY_CODE text: Copy Code type: OTP type: BUTTONS language: en_US name: authentication_code_copy_code_button Create authentication template w/ OTP one-tap autofill button: value: category: AUTHENTICATION components: - add_security_recommendation: true type: BODY - code_expiration_minutes: 10 type: FOOTER - buttons: - autofill_text: Autofill otp_type: ONE_TAP package_name: com.example.luckyshrub signature_hash: K8a%2FAINcGX7 text: Copy Code type: OTP type: BUTTONS language: en_US name: authentication_code_autofill_button Create catalog template: value: category: AUTHENTICATION components: - add_security_recommendation: true type: BODY - code_expiration_minutes: 10 type: FOOTER - buttons: - autofill_text: Autofill otp_type: ONE_TAP package_name: com.example.luckyshrub signature_hash: K8a%2FAINcGX7 text: Copy Code type: OTP type: BUTTONS language: en_US name: authentication_code_autofill_button Create multi-product message template: value: category: MARKETING components: - example: header_text: - Pablo format: TEXT text: Forget something {{1}}? type: HEADER - example: body_text: - - 10OFF text: Looks like you left some items in your cart! Use code {{1}} and you can get 10% off of all of them! type: BODY - buttons: - text: View items type: MPM type: BUTTONS language: en_US name: abandoned_cart Create template w/ document header, text body, a phone number button, and a URL button: value: category: UTILITY components: - example: header_handle: - 4::YXBwbGljYXRpb24vcGRm:ARZVv4zuogJMxmAdS3_6T4o_K4ll2806avA7rWpikisTzYPsXXUeKk0REjS-hIM1rYrizHD7rQXj951TKgUFblgd_BDWVROCwRkg9Vhjj-cHNQ:e:1681237341:634974688087057:100089620928913:ARa1ZDhwbLZM3EENeeg format: DOCUMENT type: HEADER - example: body_text: - - Mark - 860198-230332 text: Thank you for your order, {{1}}! Your order number is {{2}}. Tap the PDF linked above to view your receipt. If you have any questions, please use the buttons below to contact support. Thanks again! type: BODY - buttons: - phone_number: '16467043595' text: Call type: PHONE_NUMBER - text: Contact Support type: URL url: https://www.examplesite.com/support type: BUTTONS language: en_US name: order_confirmation Create template w/ image header, text body, text footer, and 2 call-to-action buttons: value: category: MARKETING components: - example: header_handle: - '4::aW1hZ2UvanBn:ARYytyb0kLp5htbBB8vWlclG5M9gMBxiEyt4FNCvrueWBOmFmRAztEuNtPGUnEC22Etc_SAAVU0YJOk3B7A-JuR1241_nq7gfITFxXKdDGnfvw:e:1681000441:634974688087057:100089620928913:ARbB4l0IPRncfMF-1sE 4::aW1hZ2UvanBn:ARZewDmbZuoq3rGUO1WgXjJEYcI1Tt7jr_Z6o2-oD5rg4--AQarBV_S1BYEcR8INJkctK0lNJmQ5v7PsBo-vqB-N0DSTe2-G6jHOlxKc12KSSg:e:1681000441:634974688087057:100089620928913:ARZQmT7tfO0sW--3oLo 4::aW1hZ2UvanBn:ARZkcJXFoEMa0YMMd2WQT8aVMJFaUPlSYW9xXshyh1bP-Pd6JP4t2VbrZezqGOEfC-acYkRZA5Q31FX7dEE_hQ9a-0i-b-RaueQrWO6vWk-7bQ:e:1681000441:634974688087057:100089620928913:ARYlgv7ErOQGsZYClfs' format: IMAGE type: HEADER - example: body_text: - - Mark - Tuscan Getaway package - '800' text: Hi {{1}}! For a limited time only you can get our {{2}} for as low as {{3}}. Tap the Offer Details button for more information. type: BODY - text: Offer valid until May 31, 2023 type: FOOTER - buttons: - phone_number: '16467043595' text: Call type: PHONE_NUMBER - example: - summer2023 text: Shop Now type: URL url: https://damp-sea-63235.herokuapp.com/shop?promo={{1}} type: BUTTONS language: en_US name: limited_time_offer_tuscan_getaway_2023 Create template w/ location header, text body, text footer, and a website buttons: value: category: UTILITY components: - format: LOCATION type: HEADER - example: body_text: - - Mark - '566701' text: 'Good news {{1}}! Your order #{{2}} is on its way to the location above. Thank you for your order!' type: BODY - text: To stop receiving delivery updates, tap the button below. type: FOOTER - buttons: - text: Stop Delivery Updates type: QUICK_REPLY type: BUTTONS language: en_US name: order_delivery_update Create template w/ text header, text body, text footer, and 2 quick reply buttons: value: category: MARKETING components: - example: header_text: - Summer Sale format: TEXT text: Our {{1}} is on! type: HEADER - example: body_text: - - the end of August - 25OFF - 25% text: Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise. type: BODY - text: Use the buttons below to manage your marketing subscriptions type: FOOTER - buttons: - text: Unsubcribe from Promos type: QUICK_REPLY - text: Unsubscribe from All type: QUICK_REPLY type: BUTTONS language: en name: seasonal_promotion_text_only responses: '200': description: Example response / Example response / Example response / Example response / Example response / Example response / Example response / Example response / Create Flow Template Message by Name / Create Flow Template Message by Flow JSON / Create Flow Template Message by ID headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: type: object properties: category: type: string example: AUTHENTICATION id: type: string example: '1473688840035974' status: type: string example: APPROVED examples: Create Flow Template Message by Flow JSON: value: category: MARKETING id: template-1 status: PENDING Create Flow Template Message by ID: value: category: MARKETING id: template-1 status: PENDING Create Flow Template Message by Name: value: category: MARKETING id: template-1 status: PENDING Example response: value: category: UTILITY id: '1689556908129832' status: PENDING security: - bearerAuth: [] delete: tags: - Templates summary: Delete template by name description: '- Guide: [Message Templates](https://developers.facebook.com/docs/business-messaging/whatsapp/templates/overview) - Guide: [How To Monitor Quality Signals](https://developers.facebook.com/docs/whatsapp/guides/how-to-monitor-quality-signals) - Endpoint reference: [WhatsApp Business Account > Message Templates](https://developers.facebook.com/docs/graph-api/reference/whats-app-business-account/message_templates/)' operationId: deleteTemplateByName parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: name in: query schema: type: string example: - name: hsm_id in: query schema: type: string example: description: Template ID responses: '200': description: Example response / Example response headers: Access-Control-Allow-Origin: $ref: '#/components/headers/Access-Control-Allow-Origin' Alt-Svc: $ref: '#/components/headers/Alt-Svc' Cache-Control: $ref: '#/components/headers/Cache-Control' Connection: $ref: '#/components/headers/Connection' Content-Length: $ref: '#/components/headers/Content-Length' Date: $ref: '#/components/headers/Date' Expires: $ref: '#/components/headers/Expires' Pragma: $ref: '#/components/headers/Pragma' Strict-Transport-Security: $ref: '#/components/headers/Strict-Transport-Security' Vary: $ref: '#/components/headers/Vary' X-FB-Debug: $ref: '#/components/headers/X-FB-Debug' facebook-api-version: $ref: '#/components/headers/facebook-api-version' x-business-use-case-usage: $ref: '#/components/headers/x-business-use-case-usage' x-fb-request-id: $ref: '#/components/headers/x-fb-request-id' x-fb-rev: $ref: '#/components/headers/x-fb-rev' x-fb-trace-id: $ref: '#/components/headers/x-fb-trace-id' content: application/json: schema: type: object properties: success: type: boolean example: true examples: Example response: value: success: true security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true schema: type: string - name: WABA-ID in: path required: true schema: type: string /{Version}/{WABA-ID}/activities: get: summary: Get WhatsApp Business Account Activities description: 'Retrieve activity logs and audit trails for a WhatsApp Business Account. This endpoint returns a chronological list of activities performed on the account, including administrative actions, configuration changes, and operational events. **Use Cases:** - Monitor account configuration changes and administrative actions - Generate compliance and audit reports for regulatory requirements - Track user activities and permission modifications - Investigate security incidents and unauthorized access attempts - Monitor API usage patterns and operational events **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Activity data can be cached for short periods, but recent activities may change frequently. Implement appropriate cache invalidation strategies. ' operationId: getWhatsAppBusinessAccountActivities tags: - WhatsApp Business Account Activities parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'Your WhatsApp Business Account ID. This ID can be found in your WhatsApp Manager or through the business account management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, activity_type, timestamp, actor_type). Available fields: id, activity_type, timestamp, actor_type, actor_id, actor_name, description, details, ip_address, user_agent ' schema: type: string example: id,activity_type,timestamp,actor_name,description - name: limit in: query required: false description: 'Maximum number of activity records to return per page. Default is 25, maximum is 100. ' schema: type: integer minimum: 1 maximum: 100 default: 25 example: 50 - name: after in: query required: false description: 'Cursor for pagination. Use this to get the next page of results. ' schema: type: string example: NDMyNzQyODI3OTQw - name: before in: query required: false description: 'Cursor for pagination. Use this to get the previous page of results. ' schema: type: string example: MTAxNTExOTQ1MjAwNzI5NDE= - name: since in: query required: false description: 'Unix timestamp or ISO 8601 date string. Only return activities that occurred after this time. ' schema: type: string example: '2023-10-01T00:00:00Z' - name: until in: query required: false description: 'Unix timestamp or ISO 8601 date string. Only return activities that occurred before this time. ' schema: type: string example: '2023-10-31T23:59:59Z' - name: activity_type in: query required: false description: 'Filter activities by type. Can be a single type or comma-separated list of types. ' schema: type: string example: PHONE_NUMBER_VERIFIED,USER_ADDED responses: '200': description: Successfully retrieved WhatsApp Business Account activities content: application/json: schema: $ref: '#/components/schemas/ActivityList' examples: recent_activities: summary: Recent account activities value: data: - id: '1234567890123456' activity_type: PHONE_NUMBER_VERIFIED timestamp: '2023-10-15T14:30:00Z' actor_type: USER actor_id: '9876543210987654' actor_name: John Smith description: Phone number +1234567890 was successfully verified details: phone_number: '+1234567890' verification_method: SMS ip_address: 192.168.1.100 - id: '1234567890123457' activity_type: USER_ADDED timestamp: '2023-10-15T13:15:00Z' actor_type: ADMIN actor_id: '1111222233334444' actor_name: Admin User description: New user Jane Doe was added to the account details: user_id: '5555666677778888' user_name: Jane Doe role: DEVELOPER paging: cursors: after: NDMyNzQyODI3OTQw before: MTAxNTExOTQ1MjAwNzI5NDE= next: https://graph.facebook.com/v23.0/1234567890123456/activities?limit=25&after=NDMyNzQyODI3OTQw filtered_activities: summary: Filtered activities by type value: data: - id: '1234567890123458' activity_type: TEMPLATE_CREATED timestamp: '2023-10-14T16:45:00Z' actor_type: USER actor_id: '9876543210987654' actor_name: Marketing Team description: New message template 'welcome_message' was created details: template_name: welcome_message template_language: en_US template_category: MARKETING '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: limit must be between 1 and 100' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access WhatsApp Business Account activities type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WhatsApp Business Account ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested date range is too large. Maximum range is 90 days type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WABA-ID}: get: summary: Get WhatsApp Business Account Details description: 'Retrieve comprehensive details about a WhatsApp Business Account, including its configuration, status, and settings. **Use Cases:** - Retrieve WhatsApp Business Account configuration and details - Monitor account status and verification state - Check account ownership and business information - Validate account state before messaging operations **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Account details can be cached for moderate periods, but verification status may change. Implement appropriate cache invalidation strategies. ' operationId: getWhatsAppBusinessAccountDetails tags: - WhatsApp Business Account parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'Your WhatsApp Business Account ID. This ID is provided when you create the account and can be found in your WhatsApp Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id, name). Available fields: id, name, timezone_id, message_template_namespace, account_review_status, business_verification_status, country, ownership_type, primary_business_location ' schema: type: string example: id,name,timezone_id,account_review_status responses: '200': description: Successfully retrieved WhatsApp Business Account details content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessAccount' examples: verified_account: summary: Verified WhatsApp Business Account with full details value: id: '1234567890123456' name: My Business WhatsApp Account timezone_id: '1' message_template_namespace: ba30dd89_2ebd_41e4_b805_f2c05ae04cc9 account_review_status: APPROVED business_verification_status: VERIFIED country: US ownership_type: SELF_OWNED primary_business_location: US basic_account: summary: Basic WhatsApp Business Account with minimal details value: id: '2345678901234567' name: Test Business Account timezone_id: '1' account_review_status: PENDING business_verification_status: UNVERIFIED '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: whatsapp_business_account_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WhatsApp Business Account ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this account type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Update WhatsApp Business Account description: 'Update configuration and settings for a WhatsApp Business Account. **Use Cases:** - Update WhatsApp Business Account name and configuration - Modify account settings and preferences - Update business information and verification details **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. ' operationId: updateWhatsAppBusinessAccount tags: - WhatsApp Business Account parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-ID in: path required: true description: 'Your WhatsApp Business Account ID. This ID is provided when you create the account and can be found in your WhatsApp Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: Updated name for the WhatsApp Business Account minLength: 1 maxLength: 100 example: Updated Business Name timezone_id: type: string description: Updated timezone identifier for the WhatsApp Business Account example: '2' examples: update_name: summary: Update account name value: name: Updated Business Name update_timezone: summary: Update timezone value: timezone_id: '2' responses: '200': description: Successfully updated WhatsApp Business Account content: application/json: schema: type: object properties: success: type: boolean example: true example: success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: name must be a non-empty string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to modify this WhatsApp Business Account type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to modify this resource '404': description: Not Found - WhatsApp Business Account ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Account not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The account cannot be updated at this time type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WABA-Bot-ID}: get: summary: Get WhatsApp Business Bot Details description: 'Retrieve comprehensive details about a WhatsApp Business Bot, including its prompts, commands, and welcome message configuration. **Use Cases:** - Retrieve bot configuration and automated response settings - Monitor available bot commands and their descriptions - Check welcome message enablement status - Validate bot state before implementing automation - Audit bot configuration for business compliance **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Bot details can be cached for moderate periods, but configuration may change when bot settings are updated. Implement appropriate cache invalidation strategies. ' operationId: getWhatsAppBusinessBotDetails tags: - WhatsApp Business Bot parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WABA-Bot-ID in: path required: true description: 'Your WhatsApp Business Bot ID. This ID is provided when you create the bot and can be found in your Business Manager or through bot management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (prompts, commands, enable_welcome_message). Available fields: id, prompts, commands, enable_welcome_message ' schema: type: string example: id,prompts,commands,enable_welcome_message responses: '200': description: Successfully retrieved WhatsApp Business Bot details content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessBot' examples: full_bot_config: summary: Complete bot configuration with all features value: id: '1234567890123456' prompts: - Welcome to our customer service! - How can I assist you today? - Please select from the options below commands: - command_name: help command_description: Display available commands and help information - command_name: status command_description: Check your order status - command_name: support command_description: Connect with customer support enable_welcome_message: true minimal_bot_config: summary: Basic bot configuration value: id: '2345678901234567' prompts: - Hello! I'm here to help commands: [] enable_welcome_message: false '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: waba_bot_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Bot type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - Bot ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Bot not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this bot type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /{Version}/{WhatsApp-Business-Profile-ID}: get: summary: Get WhatsApp Business Profile Details description: 'Retrieve comprehensive details about a WhatsApp Business Profile, including business information, contact details, and profile configuration. **Use Cases:** - Retrieve business profile information and metadata - Verify profile configuration and contact details - Check profile status and business information - Validate profile state before business operations **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. **Caching:** Profile details can be cached for moderate periods, but business information may change occasionally. Implement appropriate cache invalidation strategies. ' operationId: getWhatsAppBusinessProfileDetails tags: - WhatsApp Business Profiles parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WhatsApp-Business-Profile-ID in: path required: true description: 'Your WhatsApp Business Profile ID. This ID is provided when the profile is created and can be found in your WhatsApp Business Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' - name: fields in: query required: false description: 'Comma-separated list of fields to include in the response. If not specified, default fields will be returned (id and any available profile fields). Available fields: id, account_name, description, email, about, address, vertical, websites, profile_picture_url, messaging_product ' schema: type: string example: id,account_name,description,email,about,vertical responses: '200': description: Successfully retrieved WhatsApp Business Profile details content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessProfileNode' examples: complete_profile: summary: Complete business profile with all details value: id: '1234567890123456' account_name: E-commerce Business Account description: Leading e-commerce platform for quality products email: contact@business-example.com about: Quality products delivered worldwide address: 123 Business Street, Commerce City, CC 12345 vertical: RETAIL websites: - https://www.business-example.com - https://shop.business-example.com profile_picture_url: https://pps.whatsapp.net/v/profile-picture-url messaging_product: whatsapp minimal_profile: summary: Minimal business profile with required fields only value: id: '2345678901234567' '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: whatsapp_business_profile_id must be a valid numeric string' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to access this WhatsApp Business Profile type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to access this resource '404': description: Not Found - WhatsApp Business Profile ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Profile not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The requested fields are not available for this profile type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] post: summary: Update WhatsApp Business Profile description: 'Update the WhatsApp Business Profile information such as business description, email, address, and other profile details. This operation corresponds to the GraphWhatsAppBusinessProfilePost functionality. **Use Cases:** - Update business profile information and metadata - Modify contact details and business description - Change business vertical classification - Update website URLs and profile picture - Maintain current business profile information **Profile Picture Upload:** It is recommended to use the Resumable Upload API to obtain an upload ID, then use this upload ID to obtain the picture handle for the `profile_picture_handle` field. **Rate Limiting:** Standard Graph API rate limits apply. Use appropriate retry logic with exponential backoff. ' operationId: updateWhatsAppBusinessProfile tags: - WhatsApp Business Profiles parameters: - $ref: '#/components/parameters/UserAgent' - $ref: '#/components/parameters/Authorization' - name: Version in: path required: true description: 'Graph API version to use for this request. Determines the API behavior and available features. ' schema: type: string pattern: ^v[0-9]+\.[0-9]+$ example: v23.0 - name: WhatsApp-Business-Profile-ID in: path required: true description: 'Your WhatsApp Business Profile ID. This ID is provided when the profile is created and can be found in your WhatsApp Business Manager or through business management APIs. ' schema: type: string pattern: ^[0-9]+$ example: '1234567890123456' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessProfileUpdateRequest' examples: complete_update: summary: Complete profile update with all fields value: messaging_product: whatsapp account_name: Updated E-commerce Business description: Updated leading e-commerce platform for premium products email: updated-contact@business-example.com about: Premium products delivered worldwide with excellent service address: 456 Updated Business Avenue, Commerce City, CC 54321 vertical: RETAIL websites: - https://www.updated-business-example.com - https://shop.updated-business-example.com profile_picture_handle: 4:VGVzdC5wbmc=:aW1hZ2UvanBlZw==:ARat4Mt-L09JON3f30SmDkdyPSuyBkDDYiB4TFXuXISjdgHoNp2b7j882_9Jzr2tPrdKxi92UygyVzTivJiOvmebMpZ6MIjTik3gTyI3ZCQAgQ:e:1659995302:2022308451254161:636685196:ARZf1ftR5N6-qSLtklU minimal_update: summary: Minimal profile update with required fields only value: messaging_product: whatsapp description: Updated customer service business email: updated-support@service-example.com responses: '200': description: Successfully updated WhatsApp Business Profile content: application/json: schema: $ref: '#/components/schemas/WhatsAppBusinessProfileUpdateResponse' examples: successful_update: summary: Successful profile update response value: id: '1234567890123456' success: true '400': description: Bad Request - Invalid parameters or malformed request content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: 'Invalid parameter: messaging_product is required' type: OAuthException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '401': description: Unauthorized - Invalid or missing access token content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Invalid OAuth access token type: OAuthException code: 190 error_subcode: 463 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '403': description: Forbidden - Insufficient permissions or access denied content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Your app doesn't have permission to update this WhatsApp Business Profile type: OAuthException code: 200 error_subcode: 1349174 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn error_user_title: Permission Denied error_user_msg: Your app doesn't have permission to modify this resource '404': description: Not Found - WhatsApp Business Profile ID does not exist or is not accessible content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: WhatsApp Business Profile not found type: GraphMethodException code: 803 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '422': description: Unprocessable Entity - Request parameters are valid but cannot be processed content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: The provided profile picture handle is invalid or expired type: GraphMethodException code: 100 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn '429': description: Too Many Requests - Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: Application request limit reached type: OAuthException code: 4 error_subcode: 2446079 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true '500': description: Internal Server Error - Unexpected server error content: application/json: schema: $ref: '#/components/schemas/GraphAPIError' example: error: message: An unexpected error occurred. Please retry your request type: GraphMethodException code: 2 fbtrace_id: AXsgnV2Cm3ZMGF3dF_cfYIn is_transient: true security: - bearerAuth: [] /whatsapp/webhooks: post: summary: Receive incoming WhatsApp messages description: Endpoint for receiving webhook payloads for diverse incoming WhatsApp message types. requestBody: description: Webhook payload containing incoming WhatsApp messages. required: true content: application/json: schema: $ref: '#/components/schemas/WebhookPayload' examples: Text Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTRBNjU5OUFFRTAzODEwMTQ0RgA= timestamp: '1749416383' type: text text: body: Does it come in another color? field: messages Text Message with Context (Product Inquiry): value: object: whatsapp_business_account entry: - id: '102290129340398' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - context: from: '15550783881' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGA9wcm9kdWN0X2lucXVpcnkA referred_product: catalog_id: '194836987003835' product_retailer_id: di9ozbzfi4 from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTA2NTUwRkNEMDdFQjJCRUU0NQA= timestamp: '1750016800' text: body: Is this still available? type: text field: messages Text Message from Click to WhatsApp Ad: value: object: whatsapp_business_account entry: - id: '102290129340398' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - referral: source_url: https://fb.me/3cr4Wqqkv source_id: '120226305854810726' source_type: ad body: Summer Succulents are here! headline: Chat with us media_type: image image_url: https://scontent.xx.fbcdn.net/v/t45.1... ctwa_clid: Aff-n8ZTODiE79d22KtAwQKj9e_mIEOOj27vDVwFjN80dp4_0NiNhEgpGo0AHemvuSoifXaytfTzcchptiErTKCqTrJ5nW1h7IHYeYymGb5K5J5iTROpBhWAGaIAeUzHL50 welcome_message: text: Hi there! Let us know how we can help! from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUQ0N0VFMDA2MTQ0RkJFNkNDNAA= timestamp: '1750275992' text: body: Hello! Can I get more info on this? type: text field: messages Reaction Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTRBNjU5OUFFRTAzODEwMTQ0RgA= timestamp: '1749419544' type: reaction reaction: message_id: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI0RTJEOTc2ODVERUY5RDlGNkYA emoji: 👍 field: messages Image Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTRBNjU5OUFFRTAzODEwMTQ0RgA= timestamp: '1744344496' type: image image: caption: Taj Mahal mime_type: image/jpeg sha256: SfInY0gGKTsJlUWbwxC1k+FAD0FZHvzwfpvO0zX0GUI= id: '1003383421387256' field: messages Location Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTU2MjZEMDBGRkE3MENEMDE0RQA= timestamp: '1744344496' location: address: 101 Forest Ave, Palo Alto, CA 94301 latitude: 37.44221496582 longitude: -122.16165924072 name: Philz Coffee url: https://philzcoffee.com/ type: location field: messages Contact Sharing Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTRBNjU5OUFFRTAzODEwMTQ0RgA= timestamp: '1744344496' type: contacts contacts: - name: first_name: Lucía last_name: Gómez formatted_name: Lucía Gómez org: company: Google phones: - phone: +1 (983) 555-2319 wa_id: '19835552319' type: MOBILE field: messages Unsupported Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - from: '16505551234' id: wamid.HBgLMTQyMDU1NTA3NDkVAgASGBI5N0MwRjg0RTVBNUI1RDA2OTkA timestamp: '1750090702' errors: - code: 131051 title: Message type unknown message: Message type unknown error_data: details: Message type is currently not supported. type: unsupported field: messages Button Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - context: from: '15550783881' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJFNjk2OTMwNEZCQjhGMzUyQUYA from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUU0M0MxQzQzMUJCMTMwNUZFOQA= timestamp: '1750091045' type: button button: payload: Unsubscribe text: Unsubscribe field: messages Interactive List Reply Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - context: from: '15550783881' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJGMzEyNzhENTZDMzNGODlDRDgA from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUJDQ0NDM0FEODY4ODkzOTc5RgA= timestamp: '1749854575' type: interactive interactive: type: list_reply list_reply: id: priority_express title: Priority Mail Express description: Next Day to 2 Days field: messages Interactive Button Reply Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - context: from: '15550783881' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBI3MEM2RUJFNkI0RENGQTVDRjUA from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTZBQzg0MzQ4QjRCM0NGNkVGOAA= timestamp: '1750025136' type: interactive interactive: type: button_reply button_reply: id: cancel-button title: Cancel field: messages Order Message: value: object: whatsapp_business_account entry: - id: '419561257915477' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' contacts: - profile: name: Sheena Nelson wa_id: '16505551234' messages: - from: '16505551234' id: wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQTEyQjFGNzI1QTQxMjI5QTMyOQA= timestamp: '1750096325' type: order order: catalog_id: '194836987003835' text: '' product_items: - product_retailer_id: di9ozbzfi4 quantity: 2 item_price: 30 currency: USD - product_retailer_id: nqryix03ez quantity: 1 item_price: 25 currency: USD field: messages System Message: value: object: whatsapp_business_account entry: - id: '102290129340398' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' messages: - from: '16505551234' id: wamid.HBgLMTk4MzU1NTE5NzQVAgASGAoxMTgyMDg2MjY3AA== timestamp: '1750269342' system: body: User Sheena Nelson changed from 16505551234 to 12195555358 wa_id: '12195555358' type: user_changed_number type: system field: messages Group Create Message: value: object: whatsapp_business_account entry: - id: '102290129340398' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' groups: - timestamp: '1750269342' group_id: Y2FwaV9ncm91cDoxODA1NTU1MDE3MjoxMjAzNjMyMjI3NzE5NjMwNjcZD type: group_create request_id: 784D93D0C468593037EA0B1ECA245D9C subject: your-group-subject description: your-group-description added_participants: - input: 16505551234 wa_id: 16505551234 - input: 16505551235 wa_id: 16505551235 field: group_lifecycle_update Group Settings Update: value: object: whatsapp_business_account entry: - id: '102290129340398' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' groups: - timestamp: '1750269342' group_id: Y2FwaV9ncm91cDoxODA1NTU1MDE3MjoxMjAzNjMyMjI3NzE5NjMwNjcZD type: group_settings_update request_id: 784D93D0C468593037EA0B1ECA245D9C profile_picture: mime_type: image/jpeg sha256: SfInY0gGKTsJlUWbwxC1k+FAD0FZHv field: group_settings_update Group Remove Participants: value: object: whatsapp_business_account entry: - id: '102290129340398' changes: - value: messaging_product: whatsapp metadata: display_phone_number: '15550783881' phone_number_id: '106540352242922' groups: - timestamp: '1750269342' group_id: Y2FwaV9ncm91cDoxODA1NTU1MDE3MjoxMjAzNjMyMjI3NzE5NjMwNjcZD type: group_create request_id: 784D93D0C468593037EA0B1ECA245D9C removed_participants: - input: 16505551234 wa_id: 16505551234 - input: 16505551235 wa_id: 16505551235 field: group_participants_update responses: 200: description: Webhook received successfully security: - bearerAuth: []