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

# Conceitos

> Clínica, paciente, anamnese, atendimento, documento e envio para assinatura: o que cada um é, como se ligam e os estados de cada um.

A Westhetics organiza o atendimento em poucos objetos. Entender como eles se ligam evita a maior parte das dúvidas de integração.

```mermaid theme={null}
flowchart LR
  P[Paciente] --> A[Anamnese]
  P --> T[Atendimento]
  A -. usada em .-> T
  T --> D[Documentos]
  T --> S[Envio para assinatura]
  S --> D
```

## Clínica

Tudo pertence a uma clínica: pacientes, anamneses, atendimentos, documentos, apps e webhooks. A chave de um app vale para a clínica dele, e o token OAuth vale para a clínica da conexão da pessoa. Não existe parâmetro de clínica na API: ela vem da credencial. `GET /v1/me` diz qual é.

## Paciente

A ficha de quem é atendido. Nome, WhatsApp e e-mail são obrigatórios para criar, e quem tem menos de 18 anos vem com o responsável legal; o contrato pede mais (documento, endereço, nascimento), e a geração diz o que falta.

| Campo | O quê |
| - | - |
| `audience` | o público da pessoa: `patient` (padrão), `student`, `employee` ou `third_party` |
| `status` | `active`, `archived` (arquivada pela gestora) ou `merged` (unificada em outra ficha, em `mergedIntoId`) |
| `docType` · `docNumber` | `cpf` com 11 dígitos; quem não tem CPF usa `foreignDocument` (`passport`, `rne`, `crnm` ou `other`, com o país) |
| `whatsapp` | sempre em E.164 (`+5511987654321`); na entrada, `dialCode` diz o DDI quando não é `+55` |
| `guardian` | o responsável legal; obrigatório no contrato de quem tem menos de 18 anos (`isMinor`) |

O CPF é único por público na clínica: criar uma segunda ficha com o mesmo CPF responde `409` com o id da ficha que já existe.

## Anamnese

O questionário de saúde que a paciente responde no celular, pelo link. Uma paciente tem no máximo uma anamnese aberta por vez.

| `status` | Quer dizer |
| - | - |
| `issued` | enviada, ainda não aberta ou não começada |
| `in_progress` | a paciente começou a responder; o rascunho fica salvo |
| `completed` | respondida e enviada, com protocolo e hash |
| `expired` | o link de 7 dias venceu antes do envio; reenviar gera um link novo |
| `canceled` | cancelada pela clínica antes da resposta |

As respostas são dado de saúde: só saem com o escopo `anamneses:answers`, numa rota própria.

## Atendimento

O ato de a clínica gerar documentos para uma paciente por causa de um procedimento. É o atendimento que liga a anamnese usada, os documentos, o envio para assinatura e o valor.

| Campo | O quê |
| - | - |
| `type` | `procedure` (contrato de serviço, termos de consentimento e, em geral, a anamnese) ou `standalone` (termos avulsos) |
| `state` | `generated` (documentos prontos), `sent` (enviados para assinatura) ou `canceled` |
| `procedures` | os procedimentos do catálogo da clínica, com o valor de cada um no momento da geração |
| `totalAmountCents` | o valor do contrato em centavos; sem valor informado, a soma dos procedimentos |
| `generation` | o número da geração dos documentos; cada nova geração (no painel) substitui a anterior |
| `signature.status` | o status da assinatura do atendimento, abaixo |

## Documento

Cada contrato ou termo gerado: Markdown em legal design, PDF protegido (sem cópia nem extração de texto) e o hash do conteúdo.

| `status` | Na tela |
| - | - |
| `generated` | Gerado, ainda não enviado |
| `awaiting_patient` | Aguardando paciente |
| `awaiting_clinic_signature` | Aguardando responsável da clínica |
| `signed` | Assinado |
| `not_signed` | Não assinado (recusado ou não entregue) |
| `expired` | Link vencido |
| `canceled` | Cancelado |

## Envio para assinatura

O pedido para a paciente assinar os documentos do atendimento, com protocolo (`WX-4472-BM`), link de 7 dias e os canais (`whatsapp`, `email` ou `both`). Por padrão, a Autentique entrega o link e colhe as assinaturas; a menor de idade assina pelo responsável.

* Um atendimento tem no máximo um envio vivo. Para mandar um termo que faltou depois do envio, crie o **adicional**: `POST /v1/appointments` com `parentAppointmentId` (o atendimento enviado) e `templateIds`. Ele copia a paciente, os procedimentos, o prestador e o valor do original e tem envio, protocolo e link próprios; no objeto, `parentAppointmentId` diz de qual atendimento ele é.
* O envio sai **10 segundos** depois do pedido: é a janela em que a recepção pode desfazer no painel. Pela API não há desfazer; o envio simplesmente sai depois da janela.
* A assinatura da clínica, quando há, vem depois da paciente. `signature_request.completed` sai quando todos assinaram todos os documentos.

## Datas, valores e documentos

* Datas e horas em ISO 8601 UTC (`2026-10-15T14:31:07Z`); datas sem hora em `aaaa-mm-dd`. A data de um procedimento é a do fuso da clínica (`clinic.timezone`).
* Dinheiro sempre em centavos inteiros, em campos `…Cents`.
* CPF e CEP só em dígitos; telefone em E.164.
* Documento de pessoa é sempre `docNumber` com `docType`, nunca um campo chamado `cpf`.


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