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

# Account Connect

> Connect a WhatsApp Business Account to ChatSyncs via the API, using a WhatsApp Business Account ID and Meta access token. Use when a developer asks how to programmatically connect a WABA instead of doing it through the dashboard.

Connects a WhatsApp Business Account (WABA) to ChatSyncs programmatically — a POST request
since it creates/updates a connection, and because `access_token` is sensitive and shouldn't be
sent as a GET query parameter.

<Tip>
  **Where to find `user_id`:** call [Get My Info](/developer-api/user/get-my-info) first — copy
  the `user_id` value from its response and use that here.
</Tip>

<Tip>
  **Where to find `whatsapp_business_account_id`:** since this endpoint is what connects the WABA
  to ChatSyncs in the first place, it won't show up in ChatSyncs's own Connect Account page yet —
  get it from Meta instead. See
  [Meta Developer Account Setup](/meta-api/concepts/meta-developer-account-setup) for a first-time
  setup, or [Finding Your IDs & API Token](/developer-api/finding-ids#business-account-id-whatsapp_business_account_id)
  for where it lives once a different WABA is already connected.
</Tip>

<Tip>
  **Where to find `access_token`:** this must be a **permanent** system-user token, not the
  temporary token Meta's API Setup screen shows by default — a temporary token expires in about an
  hour and the connection will silently break. See
  [Access Tokens (Temporary vs Permanent)](/meta-api/concepts/access-tokens) to generate a
  permanent one.
</Tip>


## OpenAPI

````yaml POST /whatsapp/account/connect
openapi: 3.1.0
info:
  title: ChatSyncs Developer API
  version: 1.0.0
  description: >-
    REST API for sending WhatsApp messages and managing subscribers through
    ChatSyncs.


    **Authentication.** Send your key as the `apiToken` parameter, or as
    `Authorization: Bearer <key>` — both work on every endpoint **except Custom
    Fields List**, which only accepts the `apiToken` parameter (a Bearer header
    alone is answered with *The api token field is required.*). A wrong key
    returns HTTP 401 `{"status":"0","message":"Unauthenticated."}`; no key at
    all redirects to the login page.


    **Methods.** Every endpoint accepts both GET and POST with the same
    parameters, except Upload Media, which is POST-only. Use POST for anything
    that changes data.


    **Errors.** Failures usually come back as HTTP 200 with `"status":"0"` and
    the reason in `message`, so always check `status`. `status` is the string
    `"1"` or `"0"` on most endpoints and a boolean on a few.


    **Lists.** Endpoints that return rows put them in `message` as a list; there
    is no `data` field (Custom Fields List is the exception and uses `data`).
servers:
  - url: https://platform.chatsyncs.com/api/v1
security: []
paths:
  /whatsapp/account/connect:
    post:
      tags:
        - WhatsApp API
      summary: Account Connect
      description: ' Prefer POST for this endpoint -- access_token is sensitive and sending it via GET risks it being logged by servers/proxies/browser history. GET is provided for quick manual testing only.'
      operationId: accountConnect
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                apiToken:
                  type: string
                  description: >-
                    Your ChatSyncs API key (not a WhatsApp/Meta access token).
                    [Where to find
                    it](/developer-api/finding-ids#api-token-apitoken).
                  example: API-KEY
                user_id:
                  type: integer
                  description: >-
                    The ChatSyncs user ID of the account owner. Get this from
                    [Get My Info](/developer-api/user/get-my-info).
                  example: 123
                whatsapp_business_account_id:
                  type: string
                  description: >-
                    The WhatsApp Business Account ID from Meta. [Where to find
                    it](/developer-api/finding-ids#business-account-id-whatsapp_business_account_id).
                  example: WHATSAPP-BUSINESS-ACCOUNT-ID
                access_token:
                  type: string
                  description: >-
                    A **permanent** Meta system-user access token for the
                    WhatsApp Business Account -- not the temporary token, which
                    expires in ~1 hour. See [Access Tokens (Temporary vs
                    Permanent)](/meta-api/concepts/access-tokens) to generate
                    one.
                  example: PERMANENT-ACCESS-TOKEN
              required:
                - apiToken
                - user_id
                - whatsapp_business_account_id
                - access_token
      responses:
        '200':
          description: >-
            Standard ChatSyncs response. `status` is `"1"` on success and `"0"`
            on failure.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: '`"1"` = success, `"0"` = failure.'
                  message:
                    type: string
                    description: Human-readable result message.
              examples:
                success:
                  summary: Success
                  value:
                    status: '1'
                    message: Success.
                error:
                  summary: Error
                  value:
                    status: '0'
                    message: Invalid request.
        '401':
          description: >-
            `apiToken` is wrong. (With no token at all the API redirects to the
            login page with HTTP 302 instead of returning JSON.)
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  message:
                    type: string
              examples:
                unauthenticated:
                  summary: Wrong apiToken
                  value:
                    status: '0'
                    message: Unauthenticated.

````

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