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

# Vincular conta de anúncios

> As contas de anúncios da Meta que este workspace conectou, para a Pilot Status resolver os **nomes** do anúncio, do conjunto de anúncios e da campanha do seu tráfego Click-to-WhatsApp, mais as contas que você ainda pode conectar.

Não há etapa de login na Meta: o anunciante adiciona o portfólio empresarial da Pilot Status (`partnerBusinessId`) como **parceiro** da conta de anúncios no Meta Business Manager, e a Pilot Status lê com o próprio usuário do sistema.

**Só credencial da conta inteira** (chave com escopo de número é recusada com `403 NUMBER_SCOPE_NOT_ALLOWED`): uma conta de anúncios pertence ao workspace, não a um número. Tokens OAuth/MCP precisam de `integrations:manage` (ADMIN ou OWNER do workspace) em todos os verbos, leituras incluídas.

Corpo: `{ "adAccountId": "act_<dígitos>" }` e nada mais — qualquer outro campo é recusado com `400 UNKNOWN_FIELDS`. Antes de gravar qualquer coisa, a Pilot Status confere que a conta é deste workspace (`409 AD_ACCOUNT_NOT_PROVEN` quando nenhum anúncio dela chegou às suas conversas — fale com o suporte) e que a concessão de parceiro chegou à Meta (`409 AD_ACCOUNT_NOT_SHARED`). Vincular de novo uma conta desvinculada reativa o mesmo vínculo.



## OpenAPI

````yaml openapi.pt.json POST /v1/ads/accounts
openapi: 3.1.0
info:
  title: API Pilot Status
  version: 1.0.0
  license:
    name: Pilot Status Terms of Service
    url: https://pilotstatus.com.br/terms
  description: >-
    API REST pública do Pilot Status. Autentique com o header `x-api-key:
    ps_...` (ou `x-api-key-id`). Base URL: https://pilotstatus.com.br
servers:
  - url: https://pilotstatus.com.br
security:
  - apiKey: []
  - apiKeyId: []
paths:
  /v1/ads/accounts:
    post:
      tags:
        - Ads
      summary: Vincular conta de anúncios
      description: >-
        As contas de anúncios da Meta que este workspace conectou, para a Pilot
        Status resolver os **nomes** do anúncio, do conjunto de anúncios e da
        campanha do seu tráfego Click-to-WhatsApp, mais as contas que você ainda
        pode conectar.


        Não há etapa de login na Meta: o anunciante adiciona o portfólio
        empresarial da Pilot Status (`partnerBusinessId`) como **parceiro** da
        conta de anúncios no Meta Business Manager, e a Pilot Status lê com o
        próprio usuário do sistema.


        **Só credencial da conta inteira** (chave com escopo de número é
        recusada com `403 NUMBER_SCOPE_NOT_ALLOWED`): uma conta de anúncios
        pertence ao workspace, não a um número. Tokens OAuth/MCP precisam de
        `integrations:manage` (ADMIN ou OWNER do workspace) em todos os verbos,
        leituras incluídas.


        Corpo: `{ "adAccountId": "act_<dígitos>" }` e nada mais — qualquer outro
        campo é recusado com `400 UNKNOWN_FIELDS`. Antes de gravar qualquer
        coisa, a Pilot Status confere que a conta é deste workspace (`409
        AD_ACCOUNT_NOT_PROVEN` quando nenhum anúncio dela chegou às suas
        conversas — fale com o suporte) e que a concessão de parceiro chegou à
        Meta (`409 AD_ACCOUNT_NOT_SHARED`). Vincular de novo uma conta
        desvinculada reativa o mesmo vínculo.
      operationId: post_ads-accounts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                adAccountId:
                  type: string
                  pattern: ^act_\d+$
                  description: Id da conta de anúncios da Meta, `act_` seguido de dígitos.
                  example: act_1234567890
              required:
                - adAccountId
              additionalProperties: false
      responses:
        '201':
          description: Conta de anúncios vinculada
          content:
            application/json:
              example:
                link:
                  adAccountId: act_1234567890
                  adAccountName: MM Design
                  linkedAt: '2026-10-05T14:02:11.000Z'
        '400':
          description: >-
            O corpo não é um objeto JSON (`INVALID_BODY`), traz um campo
            desconhecido (`UNKNOWN_FIELDS`, com `unknownFields`), ou
            `adAccountId` não é `act_<dígitos>` (`VALIDATION_FAILED`, com
            `details`)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  Unknown field(s): token. This endpoint accepts only:
                  adAccountId. | Campo(s) desconhecido(s): token. Este endpoint
                  aceita apenas: adAccountId.
                code: UNKNOWN_FIELDS
                unknownFields:
                  - token
        '401':
          description: Header `x-api-key` / `x-api-key-id` ausente ou inválido
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Unauthorized
        '403':
          description: >-
            Chave com escopo de número (este endpoint exige uma credencial da
            conta inteira), ou token OAuth cujo papel no workspace não tem
            `integrations:manage` (`PERMISSION_DENIED`)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: This endpoint requires a tenant-scoped API key
                code: NUMBER_SCOPE_NOT_ALLOWED
        '409':
          description: >-
            `AD_ACCOUNT_NOT_PROVEN` (nenhum anúncio desta conta chegou às
            conversas deste workspace) ou `AD_ACCOUNT_NOT_SHARED` (a conta ainda
            não compartilhou acesso com a Pilot Status)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  This ad account has not shared access with Pilot Status yet. |
                  Esta conta de anúncios ainda não compartilhou acesso com a
                  Pilot Status.
                code: AD_ACCOUNT_NOT_SHARED
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Internal server error | Erro interno do servidor
                code: INTERNAL_ERROR
        '502':
          description: >-
            Não foi possível consultar a Meta sobre o compartilhamento agora.
            Tente de novo.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  Could not confirm the sharing with Meta right now. Try again.
                  | Não foi possível confirmar o compartilhamento com a Meta
                  agora. Tente novamente.
                code: ADS_LOOKUP_UNAVAILABLE
        '503':
          description: A integração de anúncios não está configurada nesta instalação
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  The ads integration is not configured on this installation. |
                  Integração de anúncios não configurada nesta instalação.
                code: ADS_NOT_CONFIGURED
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Sua chave de API ps_
    apiKeyId:
      type: apiKey
      in: header
      name: x-api-key-id
      description: Id da chave de API (alternativa ao x-api-key)

````

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