> ## 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 o cartão compartilhado

> Vincula o seu cartão de reserva (cartão compartilhado) a `{workspaceId}`: quando a carteira do próprio workspace não cobre uma cobrança da plataforma (renovação, números extras, linhas) e ele não tem cartão próprio, o seu cartão paga. A origem é o workspace que a equipe da Pilot Status configurou como o seu cartão de reserva. Sem corpo. Só o Proprietário de `{workspaceId}`. Idempotente: já vinculado à mesma origem → `200` com `changed: false`. Quando muda, o Histórico do workspace registra **Cartão de reserva vinculado** (sem e-mail).

**Requer uma chave de conta** (`ps_account_`, criada em Perfil → API). Chaves de workspace, de número e tokens OAuth/MCP recebem `403 ACCOUNT_KEY_REQUIRED`. Enviado com `Cache-Control: no-store`.

> [!WARNING]
>
> **Isto muda quem paga as renovações deste workspace.** Depois do vínculo, o seu cartão de reserva paga as cobranças da plataforma que a carteira e o cartão do próprio workspace não cobrem. Exige uma chave de conta (`ps_account_`) e o papel de Proprietário. Veja [Cartão compartilhado por workspace](https://docs.pilotstatus.com.br/pt-BR/api/workspaces.md#cartão-compartilhado-por-workspace).


## OpenAPI

````yaml openapi.pt.json PUT /v1/workspaces/{workspaceId}/shared-card
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/workspaces/{workspaceId}/shared-card:
    put:
      tags:
        - Workspace
      summary: Vincular o cartão compartilhado
      description: >-
        Vincula o seu cartão de reserva (cartão compartilhado) a
        `{workspaceId}`: quando a carteira do próprio workspace não cobre uma
        cobrança da plataforma (renovação, números extras, linhas) e ele não tem
        cartão próprio, o seu cartão paga. A origem é o workspace que a equipe
        da Pilot Status configurou como o seu cartão de reserva. Sem corpo. Só o
        Proprietário de `{workspaceId}`. Idempotente: já vinculado à mesma
        origem → `200` com `changed: false`. Quando muda, o Histórico do
        workspace registra **Cartão de reserva vinculado** (sem e-mail).


        **Requer uma chave de conta** (`ps_account_`, criada em Perfil → API).
        Chaves de workspace, de número e tokens OAuth/MCP recebem `403
        ACCOUNT_KEY_REQUIRED`. Enviado com `Cache-Control: no-store`.
      operationId: put_workspaces_shared_card
      parameters:
        - name: workspaceId
          in: path
          required: true
          schema:
            type: string
          description: Id do workspace, obtido em `GET /v1/workspaces`.
          example: cmh2a9z8y0002ws8example1q
      responses:
        '200':
          description: 'Vinculado (ou já vinculado: `changed: false`)'
          content:
            application/json:
              schema:
                type: object
                properties:
                  workspaceId:
                    type: string
                  sharedCard:
                    type: object
                    description: >-
                      Se o workspace está vinculado a um cartão compartilhado
                      (de reserva), e a qual workspace de origem.
                    properties:
                      linked:
                        type: boolean
                        description: >-
                          `true` quando o workspace recorre ao cartão de reserva
                          de `sourceWorkspaceId`.
                      sourceWorkspaceId:
                        type:
                          - string
                          - 'null'
                        description: >-
                          O workspace cujo cartão salvo cobre este; `null`
                          quando não está vinculado.
                    required:
                      - linked
                      - sourceWorkspaceId
                  changed:
                    type: boolean
                    description: >-
                      `false` quando o workspace já estava no estado pedido:
                      nada foi registrado.
              example:
                workspaceId: cmh2a9z8y0002ws8example1q
                sharedCard:
                  linked: true
                  sourceWorkspaceId: cmh2a1b2c0001ws8example7k
                changed: true
          headers:
            Cache-Control:
              schema:
                type: string
              example: no-store
        '400':
          description: >-
            `UNKNOWN_FIELDS` (o endpoint não aceita campos) ou `SELF_SOURCE`
            (`{workspaceId}` é o workspace de origem)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              examples:
                unknownFields:
                  summary: Um campo foi enviado
                  value:
                    error: >-
                      This endpoint takes no body fields | Este endpoint não
                      aceita campos no corpo
                    code: UNKNOWN_FIELDS
                selfSource:
                  summary: O workspace é a origem
                  value:
                    error: >-
                      A workspace cannot use its own card as a shared card | Um
                      workspace não pode usar o próprio cartão como cartão
                      compartilhado
                    code: SELF_SOURCE
        '401':
          description: Chave de API ausente, inválida ou revogada
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: Invalid API key
        '403':
          description: >-
            Não é chave de conta (`ACCOUNT_KEY_REQUIRED`), não é membro ativo do
            workspace ou o workspace não existe / está arquivado
            (`WORKSPACE_MEMBERSHIP_REQUIRED`), ou papel abaixo de Proprietário
            (`PERMISSION_DENIED`)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              example:
                error: >-
                  This endpoint requires an account API key (ps_account_…),
                  created in Profile → API. Workspace keys, number keys and
                  OAuth tokens cannot use it | Este endpoint exige uma API key
                  de conta (ps_account_…), criada em Perfil → API. Chaves de
                  workspace, de número e tokens OAuth não podem usá-lo
                code: ACCOUNT_KEY_REQUIRED
        '409':
          description: >-
            `SHARED_CARD_NOT_CONFIGURED`, `SOURCE_ARCHIVED` ou `NO_SHARED_OWNER`
            — nada mudou
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
              examples:
                notConfigured:
                  summary: Nenhum cartão de reserva configurado
                  value:
                    error: >-
                      No reserve card is configured for your account. Ask
                      support to set the workspace whose card is your reserve
                      card, or do not share the card | Nenhum cartão de reserva
                      está configurado para a sua conta. Peça ao suporte para
                      definir o workspace cujo cartão é o seu cartão de reserva,
                      ou não compartilhe o cartão
                    code: SHARED_CARD_NOT_CONFIGURED
                sourceArchived:
                  summary: Origem arquivada
                  value:
                    error: >-
                      The workspace of your reserve card is archived | O
                      workspace do seu cartão de reserva está arquivado
                    code: SOURCE_ARCHIVED
                noSharedOwner:
                  summary: Não é dono da origem
                  value:
                    error: >-
                      You are not an active owner of the workspace of the
                      reserve card | Você não é dono ativo do workspace do
                      cartão de reserva
                    code: NO_SHARED_OWNER
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.