Épico 3 — Convite e Vínculo — Especificação (v3.3)

Documentos deste épico: 01 - Definição (v3.3) · 02 - Especificação (v3.3) · Protótipo (Seção 3): pendente, ainda não produzido — telas a prototipar: Cadastro de Convite, Tela de Conclusão de Cadastro, Tela de Aceite do Vínculo, Mensagem de Bloqueio · 04 - Mapeamento de Banco de Dados (v3.3). Este épico faz parte do documento guarda-chuva Check-in de Usuários.


SEÇÃO 2 — ESPECIFICAÇÃO

Histórias de Usuário

US-CIU-004 — Administrador convida profissional Como administrador da clínica, quero cadastrar o CPF, nome, e-mail e celular de um profissional e disparar um convite, para formalizar seu vínculo com a clínica assim que ele aceitar — reaproveitando a conta dele se ele já for cadastrado no Gemed.

US-CIU-005 — Profissional aceita vínculo com a clínica Como profissional convidado, quero completar meu cadastro (se for a primeira vez) ou apenas fazer login (se já tiver conta), ler as regras básicas do sistema e aceitar explicitamente o vínculo com a clínica que me convidou, para começar a trabalhar nela assim que meu perfil de acesso for definido.

Descrição Funcional Detalhada

Cadastro de Convite (visão do administrador)

Propósito: permitir que o administrador da clínica cadastre um profissional e dispare o convite de vínculo. O cadastro de convite é uma ação dentro da tela mais ampla de “cadastro de usuários da clínica” (gestão de usuários pelo administrador); essa tela mais ampla — listagem, edição de perfis, desativação — não é o foco deste épico, que documenta apenas o formulário mínimo do convite.

Layout (mobile first):

  • Campo “CPF” — input com máscara automática 000.000.000-00, validação de dígitos verificadores (reaproveita RN-CIU-004 do E2)
  • Campo “Nome completo” — input text, obrigatório (campo Nome é NOT NULL na tabela Usuario)
  • Campo “E-mail” — input email, validação de formato
  • Campo “Celular” — input com máscara parametrizada por país (RN-CIU-020, reaproveitada do E2)
  • Campo “Perfil de acesso” (select, opcional) — lista de perfis (ClientePerfilAcesso) cadastrados para a clínica
  • Campo “Clínica(s)” (multi-select, condicional) — visível apenas quando um Perfil de acesso é selecionado; lista as ClienteEmpresa do Cliente do administrador logado. Quando o Cliente tem apenas 1 ClienteEmpresa, o campo não aparece — ela é associada automaticamente, sem exigir seleção
  • Botão primário “Enviar convite” (MSG-B3-01)

Comportamento:

  • Ao sair do campo CPF, o sistema verifica se já existe um usuário ativo com esse CPF. Se existir, o formulário informa isso ao administrador (MSG-I3-02) e desabilita a edição dos campos Nome/E-mail/Celular, que passam a exibir os dados já cadastrados (o administrador não pode alterar dados de uma conta que já existe só por estar convidando-a para sua clínica)
  • Ao sair do campo CPF, o sistema também verifica se já existe convite pendente (Situacao = ‘C’) para esse CPF nesta mesma clínica. Se existir, exibe MSG-E3-01 e impede o envio de um convite duplicado
  • Ao selecionar um Perfil de acesso, o campo “Clínica(s)” se torna obrigatório (quando o Cliente tem mais de 1 ClienteEmpresa) — não é possível enviar o convite com Perfil de acesso selecionado e nenhuma clínica marcada (MSG-E3-06)
  • Ao enviar: cria (ou reaproveita) o registro de Usuario, cria o vínculo (UsuarioCliente, Situacao = ‘C’), o registro de token de convite e, se Perfil de acesso e clínica(s) foram selecionados, um registro em ClientePerfilAcessoUsuario por clínica marcada; dispara o e-mail e exibe toast de sucesso MSG-S3-01

Motivador: o formulário inclui nome e celular além de CPF e e-mail porque o administrador normalmente tem esses dados em mãos no momento da contratação/onboarding, e coletá-los aqui evita que o profissional precise redigitá-los na tela de conclusão de cadastro. Nome é obrigatório porque a tabela Usuario não permite esse campo vazio — não é uma escolha de UX, é uma restrição de dados.

Tela de Conclusão de Cadastro

Propósito: permitir que um profissional, cuja conta foi criada pelo administrador mas ainda não tem senha, complete seus dados e defina sua senha.

Layout (mobile first), estrutura em 2 etapas (mais enxuta que o wizard do E2, pois os dados básicos já vêm preenchidos):

Etapa 1 — Confirmar dados e completar cadastro

  • CPF, Nome, E-mail, Celular — pré-preenchidos com os dados informados pelo administrador, editáveis (para o caso de erro de digitação do administrador)
  • Checkbox/Switch “Sou profissional de saúde” (MSG-C2-01, reaproveitada do E2) — se marcado, exibe o complemento profissional (mesmos campos e regras do E2, RN-CIU-017/019: tipo de profissional, conselho, especialidades, CBO)
  • Seção de dados avançados (opcional, mesmos campos do E2, RN-CIU-018/021) — colapsável, pode ser pulada

Etapa 2 — Definição de senha

  • Campos de senha e confirmação, indicador de força e lista de critérios — idênticos ao E2, Etapa 3 (RN-CIU-006)
  • Botão “Concluir cadastro” (MSG-B3-04)

Comportamento: ao concluir, o sistema atualiza o registro de Usuario existente (não cria um novo) com os dados confirmados/completados e a senha definida, autentica automaticamente (RN-CIU-022) e direciona para a tela de aceite do vínculo.

Motivador: a estrutura em 2 etapas (em vez das 3 do E2) reflete que os dados básicos já chegam preenchidos — não há necessidade de uma etapa dedicada só a eles. Os campos ficarem editáveis, mesmo pré-preenchidos, é uma salvaguarda contra erro de digitação do administrador — sem isso, um CPF ou e-mail errado ficaria sem correção possível pela própria pessoa.

Tela de Aceite do Vínculo

Propósito: permitir que o profissional aceite formalmente o vínculo com a clínica que o convidou (aplica-se apenas a quem não tem nenhum vínculo ativo — RN-CIU-014).

Layout (mobile first):

  • Nome e logo da(s) clínica(s) (ClienteEmpresa) já associadas ao vínculo pelo Perfil de acesso selecionado no convite; se o convite ainda não teve Perfil de acesso/clínica selecionados, exibe nome e logo do Cliente convidante como identificação genérica [PROPOSTA — regra de fallback, não confirmada explicitamente pelo solicitante]
  • Texto com as regras básicas de uso da aplicação (MSG-T3-02) [PROPOSTA — conteúdo textual completo não fornecido pelo solicitante]
  • Checkbox de aceite obrigatório: “Li e aceito o vínculo com [nome da clínica]” (MSG-C3-01)
  • Botão primário “Aceitar vínculo” (MSG-B3-02) — desabilitado até o checkbox ser marcado
  • Link/botão secundário “Agora não” (MSG-B3-03)

Comportamento:

  • Ao marcar o checkbox, o botão “Aceitar vínculo” é habilitado
  • Ao clicar em “Aceitar vínculo”: atualiza UsuarioCliente.Situacao para ‘V’, executa a verificação de Perfil de acesso (RN-CIU-015) e direciona o profissional conforme o resultado
  • Se o profissional clicar em “Agora não”, retorna à sua página atual sem alterar o Situacao (permanece ‘C’); a tela de aceite volta a ser exibida no próximo login, enquanto o convite não expirar (RN-CIU-024)

Motivador: o aceite exige uma ação explícita porque o vínculo implica acesso a dados de pacientes da clínica.

Mensagem de Bloqueio — Sem Perfil de Acesso

Ícone de aviso (não de erro), texto MSG-I3-01, orientando a aguardar ou contatar o administrador da clínica.

Critérios de Aceitação

US-CIU-004 — Administrador convida profissional

CA-004.1: Dado que estou na tela de cadastro de convite, quando informo CPF, nome, e-mail e celular válidos e clico em “Enviar convite”, então o sistema cria o Usuario (sem senha) e o vínculo (Situacao = ‘C’), envia o e-mail e exibe o toast MSG-S3-01.

CA-004.2: Dado que informo um CPF que já pertence a um usuário ativo, quando saio do campo, então os campos Nome/E-mail/Celular são preenchidos com os dados existentes e ficam bloqueados para edição, e o convite reaproveita esse usuário em vez de criar um novo.

CA-004.3: Dado que já existe um convite pendente (Situacao = ‘C’) para o CPF informado nesta clínica, quando tento enviar um novo convite para o mesmo CPF, então o sistema exibe MSG-E3-01 e não cria um convite duplicado.

CA-004.4: Dado que selecionei um Perfil de acesso e ao menos uma clínica ao criar o convite, quando o profissional aceita o vínculo, então o perfil e a(s) clínica(s) selecionados já estão associados ao vínculo, sem exibir a mensagem de bloqueio da RN-CIU-015.

CA-004.5: Dado que selecionei um Perfil de acesso mas nenhuma clínica (num Cliente com mais de 1 ClienteEmpresa), quando tento enviar o convite, então o sistema exibe MSG-E3-06 e não envia o convite até que ao menos uma clínica seja marcada.

US-CIU-005 — Profissional aceita vínculo com a clínica

CA-005.1: Dado que cliquei no link de um convite e minha conta (criada pelo administrador) ainda não tem senha, quando acesso o link, então sou direcionado para a tela de conclusão de cadastro, não para o wizard de auto-cadastro público nem para o login.

CA-005.2: Dado que cliquei no link de um convite e minha conta já tem senha definida, quando acesso o link, então sou direcionado para a tela de login.

CA-005.3: Dado que concluí a tela de conclusão de cadastro, quando defino minha senha e confirmo, então sou autenticado automaticamente e direcionado para a tela de aceite do vínculo, não para Meu Perfil.

CA-005.4: Dado que fiz login (E1), não tenho nenhum vínculo ativo e havia um convite pendente para meu usuário, quando a autenticação é bem-sucedida, então sou direcionado para a tela de aceite do vínculo antes de qualquer outro destino.

CA-005.5: Dado que estou na tela de aceite do vínculo, quando marco o checkbox e clico em “Aceitar vínculo”, então UsuarioCliente.Situacao passa para ‘V’ e o sistema verifica meu Perfil de acesso.

CA-005.6: Dado que cliquei em “Aceitar vínculo” e já existe Perfil de acesso associado, quando o aceite é processado, então sou direcionado para o cockpit do meu tipo de profissional.

CA-005.7: Dado que cliquei em “Aceitar vínculo” e não existe Perfil de acesso associado, quando o aceite é processado, então vejo a mensagem de bloqueio orientando a aguardar ou contatar o administrador.

CA-005.8: Dado que estou na tela de aceite do vínculo, quando clico em “Agora não”, então Situacao permanece ‘C’ e retorno à minha página atual.

CA-005.9: Dado que o convite associado ao meu usuário expirou (RN-CIU-024), quando acesso o link do e-mail, então o link não funciona mais e vejo a mensagem MSG-E3-03.

Fluxos de Exceção

EX-E3-01 — Convite duplicado para o mesmo CPF na mesma clínica Gatilho: administrador tenta criar um convite para um CPF com convite pendente (Situacao = ‘C’) na mesma clínica. Comportamento: mensagem inline MSG-E3-01; botão “Enviar convite” permanece desabilitado até o CPF ser alterado. Recuperação: administrador cancela o convite existente antes de criar um novo, ou aguarda o aceite/expiração.

EX-E3-02 — Falha no envio do e-mail de convite Gatilho: serviço de envio de e-mail indisponível ou falha ao entregar. Comportamento: toast error MSG-E3-02 exibido para o administrador; o convite é criado no sistema (Usuario e vínculo já existem), mas o e-mail não foi confirmado como enviado. Recuperação: administrador pode reenviar o convite (gera um novo token, mesmo vínculo).

EX-E3-03 — Link de convite expirado Gatilho: pessoa acessa o link do e-mail após o prazo de validade do token (RN-CIU-024). Comportamento: página informativa exibindo MSG-E3-03, orientando a pessoa a contatar o administrador da clínica. Recuperação: administrador cria um novo convite (novo token) para o mesmo vínculo ou reenvia.

EX-E3-04 — Link de convite cancelado Gatilho: pessoa acessa o link do e-mail depois de o administrador ter cancelado o convite. Comportamento: página informativa exibindo MSG-E3-04. Recuperação: administrador cria um novo convite, se ainda desejar vincular a pessoa.

EX-E3-05 — Profissional adia o aceite do vínculo Gatilho: profissional clica em “Agora não” na tela de aceite. Comportamento: retorna à página atual; Situacao permanece ‘C’. Recuperação: a tela de aceite é exibida novamente no próximo login ou conclusão de cadastro, enquanto o convite não expirar.

EX-E3-06 — Erro ao processar o aceite do vínculo Gatilho: back-end retorna erro ao tentar atualizar Situacao durante o aceite. Comportamento: toast error MSG-E3-05 exibido na tela de aceite; botão “Aceitar vínculo” volta ao estado default. Recuperação: profissional tenta novamente.

EX-E3-07 — Tentativa de auto-cadastro público (E2) com CPF já convidado Gatilho: pessoa com um convite pendente (Situacao = ‘C’, Usuario ainda sem senha) tenta se auto-cadastrar pela tela pública do E2, em vez de usar o link do e-mail. Comportamento: o E2 já bloquearia por CPF duplicado (RN-CIU-004, dialog MSG-E2-02: “Fazer login ou recuperar senha”). Como a conta não tem senha, nenhuma das duas opções funciona de fato — por isso o dialog de CPF duplicado, ao detectar que o Usuario correspondente está em Situacao = ‘C’ com Hash nulo, exibe uma terceira orientação — “Você tem um convite pendente. Verifique seu e-mail para completar seu cadastro” — em vez de (ou além de) “Fazer login”/“Recuperar senha”. Recuperação: pessoa localiza o e-mail de convite e usa o link correto.

Validações de Campos

CampoTelaTipoObrigatórioFormato/RegraMensagem de erro
CPF (convite)Cadastro de conviteTexto com máscaraSim11 dígitos + validação de dígitos verificadores (RN-CIU-004)MSG-E2-01 (reaproveitada do E2)
Nome (convite)Cadastro de conviteTextoSimMínimo 3 caracteres (mesma regra do E2) — campo NOT NULL em UsuarioMSG-E2-07 (reaproveitada do E2)
E-mail (convite)Cadastro de conviteE-mailSimFormato válidoMSG-E2-03 (reaproveitada do E2)
Celular (convite)Cadastro de conviteTexto com máscaraSimMáscara parametrizada por país (RN-CIU-020)MSG-E2-10 (reaproveitada do E2)
Perfil de acesso (convite)Cadastro de conviteSelectNãoLista de ClientePerfilAcesso da clínicaN/A
Clínica(s) (convite)Cadastro de conviteMulti-selectSim, se Perfil de acesso selecionado e o Cliente tem mais de 1 ClienteEmpresaLista de ClienteEmpresa do ClienteMSG-E3-06
Campos da Etapa 1 (conclusão de cadastro)Tela de conclusão de cadastroDiversosConforme RN-CIU-003/017-021Mesmas regras do E2Mesmas mensagens do E2 (catálogo Seção 10 do E2)
Senha (conclusão de cadastro)Tela de conclusão de cadastroPasswordSimMesmos critérios do RN-CIU-006Indicador visual (reaproveitado do E2)
Checkbox de aceiteTela de aceite do vínculoCheckboxSim (para habilitar o botão)BooleanN/A — botão permanece desabilitado

Mapeamento de Componentes de Interface

ComponenteVarianteEstado(s)Tokens aplicadosOnde aparece
Input (text)Bordereddefault, focus, error, disabledinput-height: 56px, radius-m (8px), neutral-light border (#BECADC), neutral-darker focus border (#01013B)CPF, Nome, E-mail, Celular (convite e conclusão de cadastro)
SelectDefaultdefault, open, selectedinput-height: 56px, radius-m (8px), neutral-light borderPerfil de acesso (convite)
ButtonPrimarydefault, hover, loading, disabledbtn-height: 40px, primary-pure bg (#00E676), base-pure text (#FFFFFF), radius-m (8px)Enviar convite (MSG-B3-01), Concluir cadastro (MSG-B3-04), Aceitar vínculo (MSG-B3-02)
ButtonTertiarydefault, hoverTransparent bg, primary-pure text (#00E676)Agora não
CheckboxDefaultdefault, checked, disabled20px box, primary-pure (#00E676) quando checkedCheckbox de aceite (MSG-C3-01), “Sou profissional de saúde” (reaproveitado do E2)
ToastSuccess, Erroranimation: toast-in (300ms)secondary-dark bg (#0091EA) / error-pure bg (#F44336)Convite enviado, erro de envio, erro ao aceitar vínculo
Banner/Ícone informativoInfo, Warningdefaultsecondary-pure (#40C4FF) para info / highlight-pure (#FFC400) para avisoCPF já cadastrado (MSG-I3-02, informativo); mensagem de bloqueio sem Perfil de acesso (aviso)

Integração com Backend

FunçãoMétodoPathRequest BodyResponse BodyCódigos HTTP
Criar convitePOST/api/convites{ cpf, nome, email, telefone, clientePerfilAcessoId?, clienteEmpresaIds?: uuid[] }{ usuarioClienteId: uuid, usuarioReaproveitado: boolean }201, 400 (Perfil de acesso sem clínica selecionada), 409 (convite duplicado pendente)
Validar token de conviteGET/api/convites/validar?token={token}{ valido: boolean, usuarioClienteId: uuid, cpf, nome, email, temSenha: boolean, clienteNome: string, clienteLogo: string, clienteEmpresas: [{ clienteEmpresaId: uuid, nome: string, caminhoLogo: string }] }200, 404 (token inválido), 410 (expirado ou cancelado)
Concluir cadastro via convitePOST/api/convites/{usuarioClienteId}/completar-cadastro{ token, nome?, tipoProfissional?, conselho?, dadosAvancados?, senha }{ success: true }200, 400, 410 (expirado)
Aceitar vínculoPOST/api/convites/{usuarioClienteId}/aceitar{ token }{ situacao: ‘V’, temPerfilAcesso: boolean }200, 400, 410 (expirado)
Cancelar conviteDELETE/api/convites/{usuarioClienteId}{ success: true }200, 404
Reenviar convitePOST/api/convites/{usuarioClienteId}/reenviar{ success: true }200, 404, 410

Nota sobre o endpoint de login (E1): a resposta do endpoint /api/auth/login inclui o campo convitesPendentes: number (já documentado no E1, 02 - Especificação, seção “Integração com Backend”), calculado como a contagem de vínculos (UsuarioCliente) com Situacao = ‘C’ e RemovidoEm nulo para o usuário autenticado.

Nota sobre padronização de nomes: o campo clienteEmpresas acima usa clienteEmpresaId como identificador de cada item — mesmo nome de array e de campo usados pelo E6 (GET .../clinic-selection e POST .../accept-invite, 02 - Especificação do E6), para que o front-end trate o mesmo conceito (uma ClienteEmpresa associada a um convite) de forma consistente nos três lugares onde aparece.

Catálogo de Mensagens do Sistema e Termos de Interface (i18n)

Mensagens de erro

IDContextopt-BRen-USes-419
MSG-E3-01Convite duplicado pendente”Já existe um convite pendente para este CPF nesta clínica.""There is already a pending invitation for this CPF at this clinic.""Ya existe una invitación pendiente para este CPF en esta clínica.”
MSG-E3-02Falha no envio do e-mail de convite”Não foi possível enviar o e-mail de convite. Tente novamente.""Could not send the invitation email. Please try again.""No fue posible enviar el correo de invitación. Inténtelo de nuevo.”
MSG-E3-03Link de convite expirado”Este convite expirou. Entre em contato com o administrador da sua clínica para receber um novo convite.""This invitation has expired. Contact your clinic’s administrator to receive a new invitation.""Esta invitación ha expirado. Comuníquese con el administrador de su clínica para recibir una nueva invitación.”
MSG-E3-04Link de convite cancelado”Este convite não é mais válido. Entre em contato com o administrador da sua clínica.""This invitation is no longer valid. Contact your clinic’s administrator.""Esta invitación ya no es válida. Comuníquese con el administrador de su clínica.”
MSG-E3-05Erro ao aceitar vínculo”Não foi possível concluir o vínculo com a clínica. Tente novamente.""Could not complete the link with the clinic. Please try again.""No fue posible completar el vínculo con la clínica. Inténtelo de nuevo.”
MSG-E3-06Perfil de acesso selecionado sem nenhuma clínica marcada”Selecione ao menos uma clínica para o perfil de acesso escolhido.""Select at least one clinic for the chosen access profile.""Seleccione al menos una clínica para el perfil de acceso elegido.”

Mensagens de sucesso

IDContextopt-BRen-USes-419
MSG-S3-01Convite enviado com sucesso”Convite enviado com sucesso!""Invitation sent successfully!""¡Invitación enviada con éxito!”

Mensagens informativas

IDContextopt-BRen-USes-419
MSG-I3-01Bloqueio — sem Perfil de acesso após aceite”Seu vínculo com a clínica foi confirmado, mas você ainda não tem um perfil de acesso definido. Aguarde ou entre em contato com o administrador da clínica.""Your link with the clinic has been confirmed, but you don’t have an access profile defined yet. Please wait or contact the clinic’s administrator.""Su vínculo con la clínica ha sido confirmado, pero aún no tiene un perfil de acceso definido. Espere o comuníquese con el administrador de la clínica.”
MSG-I3-02CPF já cadastrado (cadastro de convite)“Este CPF já pertence a um usuário cadastrado no Gemed. O convite será associado à conta existente.""This CPF already belongs to a registered Gemed user. The invitation will be linked to the existing account.""Este CPF ya pertenece a un usuario registrado en Gemed. La invitación se asociará a la cuenta existente.”

Textos orientadores

IDContextopt-BRen-USes-419
MSG-T3-02Tela de aceite — regras básicas (placeholder)[PROPOSTA — texto completo não fornecido pelo solicitante] “Antes de continuar, leia as regras básicas de uso do Gemed.""Before continuing, read the basic rules for using Gemed.""Antes de continuar, lea las reglas básicas de uso de Gemed.”

Rótulos de botões e links

IDElementopt-BRen-USes-419
MSG-B3-01Botão (cadastro de convite)“Enviar convite""Send invitation""Enviar invitación”
MSG-B3-02Botão (tela de aceite)“Aceitar vínculo""Accept link""Aceptar vínculo”
MSG-B3-03Link (tela de aceite)“Agora não""Not now""Ahora no”
MSG-B3-04Botão (conclusão de cadastro)“Concluir cadastro""Complete registration""Finalizar registro”

Rótulos de checkbox

IDElementopt-BRen-USes-419
MSG-C3-01Checkbox (tela de aceite)“Li e aceito o vínculo com [clínica]""I have read and accept the link with [clinic]""He leído y acepto el vínculo con [clínica]“

Conformidade SBIS (detalhamento)

NGS1.03.08 — Gerenciamento de usuários (estágio 1, obrigatório) — o cadastro de convite é o administrador da clínica gerenciando usuários diretamente pela aplicação: cria a conta do profissional (Usuario) e o vínculo com a clínica (UsuarioCliente).

NGS1.03.03 — Gerenciamento de perfis (estágio 1, obrigatório) — este épico consome o gerenciamento de perfis (ClientePerfilAcesso, presumivelmente gerenciado em funcionalidade própria do Contexto de Segurança) tanto na seleção de perfil ao criar o convite quanto na verificação pós-aceite (RN-CIU-015).

NGS1.03.01 — Impedir acesso por pessoas não autorizadas (estágio 1, obrigatório) — a mensagem de bloqueio (Descrição Funcional) aplica este requisito diretamente: vínculo aceito (Situacao = ‘V’) sem Perfil de acesso associado não concede acesso às funcionalidades da clínica.

NGS1.03.09 — Identidade única da pessoa e responsabilização (estágio 1, obrigatório) — RN-CIU-011 verifica CPF já cadastrado antes de criar um novo Usuario: o administrador nunca cria uma conta duplicada para uma pessoa que já existe no Gemed.

ECF.17.19 — Mensagens do sistema (estágio 1, obrigatório) — todas as mensagens exibidas ao usuário estão catalogadas acima, em linguagem não técnica, em português do Brasil, com suporte multilíngue para en-US e es-419.


Histórico de Versões

  • v3.1 (29/08/2026) — Arquivo criado pela divisão do documento único (CIU-E3) Convite e Vínculo v3.1.md em arquivos por seção (ver Skill Designer, “Organização Física: Pasta por Funcionalidade”, Lição #18). Conteúdo sem alteração de substância em relação à v3.1 original — apenas reorganização física. Histórico de revisões anterior a esta divisão (v1.0 a v3.1) preservado integralmente no documento original arquivado.
  • v3.2 (14/09/2026) — cadastro de convite passa a pedir a(s) clínica(s) (ClienteEmpresa) junto do Perfil de acesso (novo campo “Clínica(s)”, multi-select condicional; MSG-E3-06, CA-004.5); tela de aceite do vínculo passa a exibir nome/logo da(s) clínica(s) associadas, com o Cliente como fallback enquanto nenhuma estiver associada; endpoints “Criar convite” e “Validar token de convite” atualizados. Ver RN-CIU-011/015 (Seção 1) para a regra completa.
  • v3.3 (14/09/2026) — três correções sobre a v3.2: (1) referência cruzada obsoleta em “Integração com Backend” — apontava para “(CIU-E1), Seção 9.1”, numeração do formato legado de documento único, substituído desde a reconstrução do E1 em 4 arquivos (30/08/2026); corrigida para apontar ao E1, 02 - Especificação, “Integração com Backend”; (2) padronizado o identificador de item em clienteEmpresas (endpoint “Validar token de convite”) de id para clienteEmpresaId, e adicionada nota explícita de padronização — mesmo nome de array e de campo agora usados pelo E3 e pelo E6 (GET .../clinic-selection, POST .../accept-invite) para o mesmo conceito, eliminando a inconsistência de nomes entre os três lugares; (3) removida do corpo de EX-E3-07 a menção “confirmado pelo solicitante em 27/08/2026” — a proveniência já está preservada no Histórico de Versões do documento onde essa decisão foi originalmente tomada, e o corpo de uma regra ou fluxo não deve carregar data/atribuição (convenção de “corpo atemporal” da Skill Designer).