WhatsApp Business Compliance API

APIs for retrieving WhatsApp Business Account compliance information

Operations 2

GET /{Version}/{Phone-Number-ID}/business_compliance_info Get Business Compliance Information #
POST /{Version}/{Phone-Number-ID}/business_compliance_info Update Business Compliance Information #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/whatsapp:whatsapp-business-compliance-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

whatsapp-business-compliance-api-openapi.yml Raw ↑
openapi: 3.2.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: Business Compliance
  description: APIs for retrieving WhatsApp Business Account compliance information
paths:
  /{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: []
components:
  schemas:
    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'
    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'
    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
    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
    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'
    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'
    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'
    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'
  parameters:
    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...
    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
  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

        '