> ## 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.

# Concluir Embedded Signup (Meta)

> Conclui um Embedded Signup hospedado: o token (gerado por POST /api/v1/numbers/remote-pairing { provider: META }) carrega o tenant, então o fluxo no browser não precisa de key ps_. Chamado pela página /connect/<token> depois que o Facebook retorna o phoneNumberId/wabaId/code escolhidos. Efeito real: cria o número Meta. 401 INVALID_SESSION se o token expirar.



## OpenAPI

````yaml openapi.pt.json POST /v1/meta-embedded/{token}/complete
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/meta-embedded/{token}/complete:
    post:
      tags:
        - Meta Onboarding
      summary: Concluir Embedded Signup (Meta)
      description: >-
        Conclui um Embedded Signup hospedado: o token (gerado por POST
        /api/v1/numbers/remote-pairing { provider: META }) carrega o tenant,
        então o fluxo no browser não precisa de key ps_. Chamado pela página
        /connect/<token> depois que o Facebook retorna o
        phoneNumberId/wabaId/code escolhidos. Efeito real: cria o número Meta.
        401 INVALID_SESSION se o token expirar.
      operationId: post_meta-embedded_token_complete
      parameters:
        - name: token
          in: path
          required: true
          description: Token de sessão do Embedded Signup.
          schema:
            type: string
          example: eyJ...
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                code:
                  type: string
                  description: Authorization code retornado pelo Facebook.
                  example: AQB...
                phoneNumberId:
                  type: string
                  description: Phone Number ID escolhido.
                  example: '123456789012345'
                wabaId:
                  type: string
                  description: WABA ID escolhido.
                  example: '987654321098765'
                businessId:
                  type: string
                  description: Business ID (opcional).
                  example: '111222333444555'
              required:
                - code
                - phoneNumberId
                - wabaId
      responses:
        '201':
          description: Concluir signup
          content:
            application/json:
              example:
                number:
                  id: num_01HZX...
                  number: '5511999999999'
                  provider: META
                  isFullyConnected: true
                redirectUrl: https://app.acme.com/done
        '400':
          description: >-
            Payload ou parâmetros inválidos — ou `INVALID_BODY` quando o corpo
            não é um JSON válido
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              examples:
                validation:
                  summary: Erro de validação
                  value:
                    error: Validation error
                invalidBody:
                  summary: Corpo não é um JSON válido
                  value:
                    error: >-
                      The request body is not valid JSON | O corpo da requisição
                      não é um JSON válido
                    code: INVALID_BODY
        '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
        '429':
          description: Limite de taxa excedido
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Too many requests
        '504':
          description: >-
            A Meta levou mais de 15 segundos para responder ao trocar o código
            do cadastro ou ao ler os dados do número. Nada foi criado; tente
            conectar de novo.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  Meta took too long to answer. Please try connecting the number
                  again. | A Meta demorou demais para responder. Tente conectar
                  o número novamente.
                code: META_GRAPH_TIMEOUT
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.