API Reference · Atendimento
Todas as rotas usam o prefixo /v1, UUIDs nos identificadores e autenticação Bearer. O guard global autentica JWT do usuário ou token de sistema; o controller declara o perfil mínimo e o serviço aplica o alcance por registro.
Registro
personId é obrigatório na criação. A modalidade exige exatamente um detalhe. O retorno inclui estado, versão, datas, ações disponíveis, assuntos, conclusões, participantes e detalhe da modalidade.
Comandos de estado
close aceita qualquer estado não terminal e exige conclusão em todos os assuntos. Conclusões pendentes podem ser enviadas no próprio comando; a gravação e o encerramento são atômicos. Todos retornam 200 ServiceRecordDetailDto.
Erros e perfis
O corpo comum é { statusCode, message, errorCode }. Códigos: 400 VALIDATION_FAILED, 401 UNAUTHORIZED, 403 FORBIDDEN, 404 NOT_FOUND, 409 CONFLICT e 422 RULE_VIOLATION. Criação exige perfil mínimo operacional-autonomo; leitura, atualização e comandos exigem perfil mínimo operacional-restrito; transferência e administração de modelos exigem perfil mínimo acesso-de-nucleo. Esses pisos não representam atores exclusivos: quem atende ao mínimo para criar também atende ao mínimo para ler e editar. O serviço continua aplicando o alcance e as restrições de cada operação.
| Campo | Tipo | Presença | Descrição |
|---|
statusCode | number | Obrigatório | Status HTTP repetido no corpo. |
message | string ou string[] | Obrigatório | Mensagem legível; validação pode retornar uma mensagem por regra. |
errorCode | string | Obrigatório | Código estável do catálogo de erros. |
error | string | Opcional | Nome do status HTTP; pode estar ausente em exceção lançada com corpo textual. |
| HTTP | errorCode | Condição |
|---|
400 | VALIDATION_FAILED | Não detalhada por operação. |
401 | UNAUTHORIZED | Não detalhada por operação. |
403 | FORBIDDEN | Não detalhada por operação. |
404 | NOT_FOUND | Não detalhada por operação. |
409 | CONFLICT | Não detalhada por operação. |
422 | RULE_VIOLATION | Não detalhada por operação. |
Projeção do registro
| Campo ou conteúdo | Tipo | Descrição |
|---|
| Estado | Não informado | Integra o retorno do registro. |
| Versão | Não informado | Integra o retorno do registro. |
| Datas | Não informado | Integram o retorno do registro. |
| Ações disponíveis | Não informado | Integram o retorno do registro. |
| Assuntos | Não informado | Integram o retorno do registro. |
| Conclusões | Não informado | Integram o retorno do registro. |
| Participantes | Não informado | Integram o retorno do registro. |
| Detalhe da modalidade | Não informado | Integra o retorno do registro. |
Os nomes dos campos, tipos e contratos aninhados da projeção permanecem pendentes de detalhamento.
Cria um Registro de Atendimento.
Autenticação e autorização: Bearer; perfil mínimo operacional-autonomo e alcance por registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Corpo | personId | Não informado | Sim | — |
| Corpo | unitId | Não informado | Não informado | — |
| Corpo | responsibleNucleusSigla | Não informado | Não informado | — |
| Corpo | mode | Não informado | Não informado | — |
| Corpo | direction | Não informado | Não informado | — |
| Corpo | subjects | Não informado | Não informado | — |
| Corpo | remote ou onsite | Não informado | Não informado | Exatamente um detalhe, conforme a modalidade. |
| Corpo | origin | Não informado | Não | — |
| Corpo | isAppointment | Não informado | Não | — |
| Corpo | appointmentId | Não informado | Não | — |
| Corpo | participants | Não informado | Não | — |
| Corpo | idempotencyKey | Não informado | Não | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
201 | Corpo | ServiceRecordDetailDto | Projeção do registro; conteúdos descritos em Convenções. Campos e tipos pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Lista Registros de Atendimento por cursor e filtros.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito e alcance por registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Query | cursor | Não informado | Não informado | — |
| Query | limit | Não informado | Não informado | Até 200. |
| Query | personId | Não informado | Não informado | — |
| Query | unitId | Não informado | Não informado | — |
| Query | Núcleo | Não informado | Não informado | — |
| Query | Estado | Não informado | Não informado | — |
| Query | Modo | Não informado | Não informado | — |
| Query | Direção | Não informado | Não informado | — |
| Query | Origem | Não informado | Não informado | — |
| Query | Período | Não informado | Não informado | — |
| Query | Parada | Não informado | Não informado | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Página cursor de detalhes | Campos e tipos da página pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Consulta um Registro de Atendimento.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito e alcance por registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| — | — | Não informado | Não informado | Detalhamento da entrada pendente. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
200 | Corpo | ServiceRecordDetailDto | Projeção do registro; conteúdos descritos em Convenções. Campos e tipos pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Atualiza um Registro de Atendimento.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito e alcance por registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Corpo | expectedVersion | Não informado | Não informado | — |
| Corpo | unitId | Não informado | Não | — |
| Corpo | Núcleo | Não informado | Não | — |
| Corpo | Direção | Não informado | Não | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
200 | Corpo | ServiceRecordDetailDto | Projeção do registro; conteúdos descritos em Convenções. Campos e tipos pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Executa o comando check-in do ciclo de estados.
Corpo: { expectedVersion }.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito e alcance por registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Corpo | expectedVersion | Não informado | Não informado | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
200 | Corpo | ServiceRecordDetailDto | Projeção do registro; conteúdos descritos em Convenções. Campos e tipos pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Executa o comando start do ciclo de estados.
Corpo: { expectedVersion }.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito e alcance por registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Corpo | expectedVersion | Não informado | Não informado | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
200 | Corpo | ServiceRecordDetailDto | Projeção do registro; conteúdos descritos em Convenções. Campos e tipos pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Executa o comando review do ciclo de estados.
Corpo: { expectedVersion }.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito e alcance por registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Corpo | expectedVersion | Não informado | Não informado | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
200 | Corpo | ServiceRecordDetailDto | Projeção do registro; conteúdos descritos em Convenções. Campos e tipos pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Encerra um atendimento remoto ou presencial a partir de qualquer estado não terminal. Aceita as conclusões dos assuntos pendentes no mesmo comando, preservando as já existentes.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito, alcance completo do registro e autorização de escrita.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | Identificador do registro. |
| Corpo | expectedVersion | Inteiro ≥ 1 | Sim | Deve corresponder à versão atual. |
| Corpo | conclusions | Array de objetos | Não | Somente assuntos pendentes; identificadores sem repetição. |
| Corpo | conclusions[].subjectId | UUID | Sim, por item | Assunto visível pertencente ao registro. |
| Corpo | conclusions[].type | PROVIDENCIAS ou SEM_INTERCORRENCIA | Sim, por item | Resultado do assunto. |
| Corpo | conclusions[].note | String não vazia, até 20.000 caracteres | Sim, por item | Texto da conclusão. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
200 | Corpo | ServiceRecordDetailDto | Registro com status=ENCERRADO, closedAt preenchido, versão incrementada uma vez e conclusões persistidas. |
Todos os assuntos devem possuir conclusão ao final da operação. A API grava as novas conclusões, seus eventos e o encerramento na mesma transação. Uma recusa não grava parte das conclusões. Pular etapas não cria eventos de início ou revisão nem preenche startedAt artificialmente.
Erros
| HTTP | errorCode | Condição |
|---|
400 | VALIDATION_FAILED | Corpo inválido, resultado inválido, nota vazia, UUID inválido ou assunto repetido no array. |
401 | UNAUTHORIZED | Credencial ausente ou inválida. |
404 | NOT_FOUND | Registro ou assunto inexistente ou fora do alcance; assunto de outro registro. |
409 | CONFLICT | Versão desatualizada. |
422 | RULE_VIOLATION | Estado terminal, tentativa de substituir conclusão existente ou conclusão ainda ausente. Na ausência, a resposta inclui missingSubjectIds. |
Executa o comando cancel do ciclo de estados.
Corpo: { expectedVersion, reason }.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito e alcance por registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Corpo | expectedVersion | Não informado | Não informado | — |
| Corpo | reason | Não informado | Não informado | Motivo de 1–500 caracteres. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
200 | Corpo | ServiceRecordDetailDto | Projeção do registro; conteúdos descritos em Convenções. Campos e tipos pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Adiciona assunto.
Autenticação e autorização: Bearer; perfil mínimo e alcance conforme as convenções gerais.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Corpo | purpose | Não informado | Não informado | — |
| Corpo | Referências | Não informado | Não | Campos pendentes de detalhamento. |
| Corpo | expectedVersion | Não informado | Não informado | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Contrato de saída pendente de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Lista assuntos.
Autenticação e autorização: Bearer; perfil mínimo e alcance conforme as convenções gerais.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| — | — | Não informado | Não informado | Detalhamento da entrada pendente. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Lista assuntos; campos e tipos pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Faz upsert da conclusão.
Corpo: { expectedVersion, type, note }.
Autenticação e autorização: Bearer; perfil mínimo e alcance conforme as convenções gerais.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Caminho | subjectId | UUID | Sim | — |
| Corpo | expectedVersion | Não informado | Não informado | — |
| Corpo | type | Não informado | Não informado | — |
| Corpo | note | Não informado | Não informado | De 1–20.000 caracteres. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Contrato de saída pendente de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Recebe { expectedVersion, userId } para participantes.
Autenticação e autorização: Bearer; perfil mínimo e alcance conforme as convenções gerais.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Corpo | expectedVersion | Não informado | Não informado | — |
| Corpo | userId | UUID | Não informado | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Contrato de saída pendente de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Lista usuários.
Autenticação e autorização: Bearer; perfil mínimo e alcance conforme as convenções gerais.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| — | — | Não informado | Não informado | Detalhamento da entrada pendente. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Lista usuários; campos e tipos pendentes de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Encerra a participação.
Autenticação e autorização: Bearer; perfil mínimo e alcance conforme as convenções gerais.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Caminho | userId | UUID | Sim | — |
| Corpo | expectedVersion | Não informado | Não informado | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Contrato de saída pendente de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Transfere o atendimento; exige liderança do núcleo.
Autenticação e autorização: Bearer; perfil mínimo acesso-de-nucleo, liderança do núcleo e alcance por registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Corpo | expectedVersion | Não informado | Não informado | — |
| Corpo | toUserId | UUID | Não informado | — |
| Corpo | fromUserId | UUID | Não | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Contrato de saída pendente de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Cria Modelo de Conclusão.
Autenticação e autorização: Bearer; perfil mínimo acesso-de-nucleo.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Corpo | title | Não informado | Não informado | Até 255 caracteres. |
| Corpo | content | Não informado | Não informado | Até 20.000 caracteres. |
| Corpo | active | Não informado | Não | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Contrato de saída pendente de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Lista Modelos de Conclusão por cursor e filtro active.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Query | Cursor | Não informado | Não informado | — |
| Query | active | Não informado | Não informado | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Contrato de saída pendente de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Consulta Modelo de Conclusão.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| — | — | Não informado | Não informado | Detalhamento da entrada pendente. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Contrato de saída pendente de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
Atualiza parcialmente o Modelo de Conclusão.
Autenticação e autorização: Bearer; perfil mínimo acesso-de-nucleo.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| Caminho | id | UUID | Sim | — |
| Corpo | Campos da atualização | Não informado | Não informado | Contrato da atualização parcial pendente de detalhamento. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| Não informado | Corpo | Não informado | Contrato de saída pendente de detalhamento. |
Erros
| HTTP | errorCode | Condição |
|---|
| Não informado por operação | Não informado por operação | A relação geral de erros está em Convenções. A aplicabilidade por endpoint permanece pendente de detalhamento. |
As operações abaixo complementam o Registro. Solicitações preservam itens e apresentações; Rotas organizam Ocorrências e Paradas; interações preservam comunicações no Registro.
Os códigos de sucesso desta referência seguem o contrato OpenAPI. A revisão de compatibilidade dos comandos de Solicitação e da definição de limit permanece pendente. Nas tabelas, resposta representa a raiz do JSON, não um campo adicional do corpo. A obrigatoriedade dos campos aninhados aplica-se quando o objeto ou item que os contém estiver presente.
Lista recursos no alcance permitido.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | serviceRecordId | string | Sim | — |
| query | cursor | string | Não | — |
| query | limit | Em revisão: object no OpenAPI; integer na validação | Em revisão: exigido no OpenAPI; opcional na validação | mínimo: 1; máximo: 200; padrão: 50 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.nextCursor | string; aceita null | Presente; Cursor opaco da próxima página; null quando não há mais itens. |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].actorUserId | string; aceita null | Presente; — |
| 200 | resposta.items[].channel | string: WHATSAPP, PHONE, EMAIL, VIDEO, IN_PERSON, NOTE | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].delivery | string: RECORDED, SYNCED, SIMULATED, SENT | Presente; — |
| 200 | resposta.items[].direction | string: INCOMING, OUTGOING, INTERNAL | Presente; — |
| 200 | resposta.items[].externalMessageId | string; aceita null | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].idempotencyKey | string | Presente; — |
| 200 | resposta.items[].occurredAt | string (date-time) | Presente; — |
| 200 | resposta.items[].outboxEntryId | string; aceita null | Presente; — |
| 200 | resposta.items[].serviceRecordId | string | Presente; — |
| 200 | resposta.items[].summary | string; aceita null | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada inválida |
| 401 | UNAUTHORIZED | Não autenticado |
| 403 | FORBIDDEN | Acesso negado |
| 404 | NOT_FOUND | Recurso não encontrado |
| 409 | CONFLICT | Conflito |
| 422 | RULE_VIOLATION | Regra de negócio |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
| 502 | Não especificado | Falha de integração |
| 503 | Não especificado | Integração indisponível |
| 504 | Não especificado | Tempo de resposta da integração excedido |
Registra um contato já ocorrido, com entrega RECORDED.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | serviceRecordId | string | Sim | — |
| body | channel | string: WHATSAPP, PHONE, EMAIL, VIDEO, IN_PERSON, NOTE | Sim | — |
| body | direction | string: INCOMING, OUTGOING, INTERNAL | Sim | — |
| body | idempotencyKey | string | Sim | comprimento mínimo: 8; comprimento máximo: 200 |
| body | occurredAt | string | Sim | — |
| body | summary | string | Sim | comprimento mínimo: 1; comprimento máximo: 4096 |
O registro manual aceita PHONE, EMAIL, VIDEO, IN_PERSON e NOTE; WHATSAPP é reservado às operações de envio e sincronização.
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 201 | resposta | object | Presente; — |
| 201 | resposta.actorUserId | string; aceita null | Presente; — |
| 201 | resposta.channel | string: WHATSAPP, PHONE, EMAIL, VIDEO, IN_PERSON, NOTE | Presente; — |
| 201 | resposta.createdAt | string (date-time) | Presente; — |
| 201 | resposta.delivery | string: RECORDED, SYNCED, SIMULATED, SENT | Presente; — |
| 201 | resposta.direction | string: INCOMING, OUTGOING, INTERNAL | Presente; — |
| 201 | resposta.externalMessageId | string; aceita null | Presente; — |
| 201 | resposta.id | string | Presente; — |
| 201 | resposta.idempotencyKey | string | Presente; — |
| 201 | resposta.occurredAt | string (date-time) | Presente; — |
| 201 | resposta.outboxEntryId | string; aceita null | Presente; — |
| 201 | resposta.serviceRecordId | string | Presente; — |
| 201 | resposta.summary | string; aceita null | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada inválida |
| 401 | UNAUTHORIZED | Não autenticado |
| 403 | FORBIDDEN | Acesso negado |
| 404 | NOT_FOUND | Recurso não encontrado |
| 409 | CONFLICT | Conflito |
| 422 | RULE_VIOLATION | Regra de negócio |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
| 502 | Não especificado | Falha de integração |
| 503 | Não especificado | Integração indisponível |
| 504 | Não especificado | Tempo de resposta da integração excedido |
Envia comunicação pelo outbox.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | serviceRecordId | string | Sim | — |
| body | comments | string | Não | comprimento mínimo: 1; comprimento máximo: 4096 |
| body | departmentId | string | Não | comprimento mínimo: 1; comprimento máximo: 255 |
| body | idempotencyKey | string | Sim | comprimento mínimo: 8; comprimento máximo: 200 |
| body | kind | string: TEXT, TEMPLATE, TRANSFER | Sim | — |
| body | params | array de string | Não | máximo de itens: 32 |
| body | serviceId | string | Não | comprimento mínimo: 1; comprimento máximo: 255 |
| body | templateId | string (uuid) | Não | — |
| body | text | string | Não | comprimento mínimo: 1; comprimento máximo: 4096 |
| body | ticketId | string | Não | comprimento mínimo: 1; comprimento máximo: 255 |
| body | userId | string | Não | comprimento mínimo: 1; comprimento máximo: 255 |
TEXT exige serviceId e text; TEMPLATE exige serviceId e templateId; TRANSFER exige ticketId e departmentId.
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 201 | resposta | object | Presente; — |
| 201 | resposta.actorUserId | string; aceita null | Presente; — |
| 201 | resposta.channel | string: WHATSAPP, PHONE, EMAIL, VIDEO, IN_PERSON, NOTE | Presente; — |
| 201 | resposta.createdAt | string (date-time) | Presente; — |
| 201 | resposta.delivery | string: RECORDED, SYNCED, SIMULATED, SENT | Presente; — |
| 201 | resposta.direction | string: INCOMING, OUTGOING, INTERNAL | Presente; — |
| 201 | resposta.externalMessageId | string; aceita null | Presente; — |
| 201 | resposta.id | string | Presente; — |
| 201 | resposta.idempotencyKey | string | Presente; — |
| 201 | resposta.occurredAt | string (date-time) | Presente; — |
| 201 | resposta.outboxEntryId | string; aceita null | Presente; — |
| 201 | resposta.serviceRecordId | string | Presente; — |
| 201 | resposta.summary | string; aceita null | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada inválida |
| 401 | UNAUTHORIZED | Não autenticado |
| 403 | FORBIDDEN | Acesso negado |
| 404 | NOT_FOUND | Recurso não encontrado |
| 409 | CONFLICT | Conflito |
| 422 | RULE_VIOLATION | Regra de negócio |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
| 502 | Não especificado | Falha de integração |
| 503 | Não especificado | Integração indisponível |
| 504 | Não especificado | Tempo de resposta da integração excedido |
Sincroniza mensagens externas no Registro.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro. Token de sistema exige o escopo service-record-interactions:sync, com proprietário ativo e autorizado.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | serviceRecordId | string | Sim | — |
| body | idempotencyKey | string | Sim | comprimento mínimo: 8; comprimento máximo: 200 |
| body | messageIds | array de string | Sim | máximo de itens: 100 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 201 | resposta | object | Presente; — |
| 201 | resposta.items | array de object | Presente; — |
| 201 | resposta.items[] | object | Presente; — |
| 201 | resposta.items[].actorUserId | string; aceita null | Presente; — |
| 201 | resposta.items[].channel | string: WHATSAPP, PHONE, EMAIL, VIDEO, IN_PERSON, NOTE | Presente; — |
| 201 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 201 | resposta.items[].delivery | string: RECORDED, SYNCED, SIMULATED, SENT | Presente; — |
| 201 | resposta.items[].direction | string: INCOMING, OUTGOING, INTERNAL | Presente; — |
| 201 | resposta.items[].externalMessageId | string; aceita null | Presente; — |
| 201 | resposta.items[].id | string | Presente; — |
| 201 | resposta.items[].idempotencyKey | string | Presente; — |
| 201 | resposta.items[].occurredAt | string (date-time) | Presente; — |
| 201 | resposta.items[].outboxEntryId | string; aceita null | Presente; — |
| 201 | resposta.items[].serviceRecordId | string | Presente; — |
| 201 | resposta.items[].summary | string; aceita null | Presente; — |
| 201 | resposta.status | string: synced, synced-empty | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada inválida |
| 401 | UNAUTHORIZED | Não autenticado |
| 403 | FORBIDDEN | Acesso negado |
| 404 | NOT_FOUND | Recurso não encontrado |
| 409 | CONFLICT | Conflito |
| 422 | RULE_VIOLATION | Regra de negócio |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
| 502 | Não especificado | Falha de integração |
| 503 | Não especificado | Integração indisponível |
| 504 | Não especificado | Tempo de resposta da integração excedido |
Lista recursos no alcance permitido.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| query | serviceRecordId | string (uuid) | Não | — |
| query | cursor | string | Não | — |
| query | limit | Em revisão: object no OpenAPI; integer na validação | Em revisão: exigido no OpenAPI; opcional na validação | mínimo: 1; máximo: 200; padrão: 50 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.nextCursor | string; aceita null | Presente; Cursor opaco da próxima página; null quando não há mais itens. |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].activities | array de object | Presente; — |
| 200 | resposta.items[].activities[] | object | Presente; — |
| 200 | resposta.items[].activities[].activityId | string | Presente; — |
| 200 | resposta.items[].activities[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].activities[].id | string | Presente; — |
| 200 | resposta.items[].aggregatedStatus | string | Presente; — |
| 200 | resposta.items[].canceledAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].cancellationReason | string; aceita null | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].dueAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].items | array de object | Presente; — |
| 200 | resposta.items[].items[] | object | Presente; — |
| 200 | resposta.items[].items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].items[].id | string | Presente; — |
| 200 | resposta.items[].items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].items[].title | string | Presente; — |
| 200 | resposta.items[].items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].items[].version | number | Presente; — |
| 200 | resposta.items[].overdue | boolean | Presente; — |
| 200 | resposta.items[].personId | string | Presente; — |
| 200 | resposta.items[].responsibleGroupId | string; aceita null | Presente; — |
| 200 | resposta.items[].responsibleUserId | string; aceita null | Presente; — |
| 200 | resposta.items[].serviceRecordId | string | Presente; — |
| 200 | resposta.items[].subjectId | string; aceita null | Presente; — |
| 200 | resposta.items[].updatedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Cria uma Solicitação com seus itens a partir de um Registro gravável.
Autenticação e autorização: Bearer; perfil mínimo operacional-autonomo; Registro de origem gravável e responsável elegível.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| body | dueAt | string | Não | — |
| body | idempotencyKey | string | Sim | comprimento mínimo: 8; comprimento máximo: 100 |
| body | items | array de object | Sim | mínimo de itens: 1 |
| body | items[] | object | Sim | — |
| body | items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Sim | — |
| body | items[].title | string | Sim | comprimento mínimo: 1; comprimento máximo: 255 |
| body | responsibleGroupId | string (uuid) | Não | — |
| body | responsibleUserId | string (uuid) | Não | — |
| body | serviceRecordId | string (uuid) | Sim | — |
| body | subjectId | string (uuid) | Não | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 201 | resposta | object | Presente; — |
| 201 | resposta.activities | array de object | Presente; — |
| 201 | resposta.activities[] | object | Presente; — |
| 201 | resposta.activities[].activityId | string | Presente; — |
| 201 | resposta.activities[].createdAt | string (date-time) | Presente; — |
| 201 | resposta.activities[].id | string | Presente; — |
| 201 | resposta.aggregatedStatus | string | Presente; — |
| 201 | resposta.canceledAt | string (date-time); aceita null | Presente; — |
| 201 | resposta.cancellationReason | string; aceita null | Presente; — |
| 201 | resposta.createdAt | string (date-time) | Presente; — |
| 201 | resposta.dueAt | string (date-time); aceita null | Presente; — |
| 201 | resposta.id | string | Presente; — |
| 201 | resposta.items | array de object | Presente; — |
| 201 | resposta.items[] | object | Presente; — |
| 201 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 201 | resposta.items[].id | string | Presente; — |
| 201 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 201 | resposta.items[].presentations | array de object | Presente; — |
| 201 | resposta.items[].presentations[] | object | Presente; — |
| 201 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 201 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 201 | resposta.items[].presentations[].id | string | Presente; — |
| 201 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 201 | resposta.items[].presentations[].sequence | number | Presente; — |
| 201 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 201 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 201 | resposta.items[].title | string | Presente; — |
| 201 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 201 | resposta.items[].version | number | Presente; — |
| 201 | resposta.overdue | boolean | Presente; — |
| 201 | resposta.personId | string | Presente; — |
| 201 | resposta.responsibleGroupId | string; aceita null | Presente; — |
| 201 | resposta.responsibleUserId | string; aceita null | Presente; — |
| 201 | resposta.serviceRecordId | string | Presente; — |
| 201 | resposta.subjectId | string; aceita null | Presente; — |
| 201 | resposta.updatedAt | string (date-time) | Presente; — |
| 201 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 409 | CONFLICT | chave idempotente ou versão divergente |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Consulta o recurso no alcance permitido.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.activities | array de object | Presente; — |
| 200 | resposta.activities[] | object | Presente; — |
| 200 | resposta.activities[].activityId | string | Presente; — |
| 200 | resposta.activities[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.activities[].id | string | Presente; — |
| 200 | resposta.aggregatedStatus | string | Presente; — |
| 200 | resposta.canceledAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.cancellationReason | string; aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.dueAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].title | string | Presente; — |
| 200 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
| 200 | resposta.overdue | boolean | Presente; — |
| 200 | resposta.personId | string | Presente; — |
| 200 | resposta.responsibleGroupId | string; aceita null | Presente; — |
| 200 | resposta.responsibleUserId | string; aceita null | Presente; — |
| 200 | resposta.serviceRecordId | string | Presente; — |
| 200 | resposta.subjectId | string; aceita null | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Vincula uma atividade à Solicitação.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro. Comandos exigem Solicitação não cancelada; o Registro de origem pode estar encerrado. Recebimento exige Registro de cumprimento gravável da mesma Pessoa.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| body | activityId | string (uuid) | Sim | — |
| body | expectedVersion | number | Sim | mínimo: 1 |
| body | idempotencyKey | string | Sim | comprimento mínimo: 1; comprimento máximo: 100 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.activities | array de object | Presente; — |
| 200 | resposta.activities[] | object | Presente; — |
| 200 | resposta.activities[].activityId | string | Presente; — |
| 200 | resposta.activities[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.activities[].id | string | Presente; — |
| 200 | resposta.aggregatedStatus | string | Presente; — |
| 200 | resposta.canceledAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.cancellationReason | string; aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.dueAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].title | string | Presente; — |
| 200 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
| 200 | resposta.overdue | boolean | Presente; — |
| 200 | resposta.personId | string | Presente; — |
| 200 | resposta.responsibleGroupId | string; aceita null | Presente; — |
| 200 | resposta.responsibleUserId | string; aceita null | Presente; — |
| 200 | resposta.serviceRecordId | string | Presente; — |
| 200 | resposta.subjectId | string; aceita null | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 409 | CONFLICT | replay divergente, versão ou solicitação terminal |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Cancela a Solicitação.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro. Comandos exigem Solicitação não cancelada; o Registro de origem pode estar encerrado. Recebimento exige Registro de cumprimento gravável da mesma Pessoa.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| body | expectedVersion | number | Sim | mínimo: 1 |
| body | idempotencyKey | string | Sim | comprimento mínimo: 1; comprimento máximo: 100 |
| body | reason | string | Sim | comprimento mínimo: 1; comprimento máximo: 500 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.activities | array de object | Presente; — |
| 200 | resposta.activities[] | object | Presente; — |
| 200 | resposta.activities[].activityId | string | Presente; — |
| 200 | resposta.activities[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.activities[].id | string | Presente; — |
| 200 | resposta.aggregatedStatus | string | Presente; — |
| 200 | resposta.canceledAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.cancellationReason | string; aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.dueAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].title | string | Presente; — |
| 200 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
| 200 | resposta.overdue | boolean | Presente; — |
| 200 | resposta.personId | string | Presente; — |
| 200 | resposta.responsibleGroupId | string; aceita null | Presente; — |
| 200 | resposta.responsibleUserId | string; aceita null | Presente; — |
| 200 | resposta.serviceRecordId | string | Presente; — |
| 200 | resposta.subjectId | string; aceita null | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 409 | CONFLICT | replay divergente, versão ou solicitação terminal |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Lista os itens da Solicitação.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| query | cursor | string | Não | Cursor opaco devolvido em nextCursor da página anterior. |
| query | limit | number | Sim | Tamanho da página. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.nextCursor | string; aceita null | Presente; Cursor opaco da próxima página; null quando não há mais itens. |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].title | string | Presente; — |
| 200 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Consulta um item da Solicitação.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | itemId | string | Sim | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.presentations | array de object | Presente; — |
| 200 | resposta.presentations[] | object | Presente; — |
| 200 | resposta.presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.presentations[].id | string | Presente; — |
| 200 | resposta.presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.presentations[].sequence | number | Presente; — |
| 200 | resposta.resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.title | string | Presente; — |
| 200 | resposta.validationNote | string; aceita null | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Aceita o cumprimento do item.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro. Comandos exigem Solicitação não cancelada; o Registro de origem pode estar encerrado. Recebimento exige Registro de cumprimento gravável da mesma Pessoa.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | itemId | string | Sim | — |
| body | expectedVersion | number | Sim | mínimo: 1 |
| body | idempotencyKey | string | Sim | comprimento mínimo: 1; comprimento máximo: 100 |
| body | note | string | Não | comprimento mínimo: 1; comprimento máximo: 1000 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.activities | array de object | Presente; — |
| 200 | resposta.activities[] | object | Presente; — |
| 200 | resposta.activities[].activityId | string | Presente; — |
| 200 | resposta.activities[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.activities[].id | string | Presente; — |
| 200 | resposta.aggregatedStatus | string | Presente; — |
| 200 | resposta.canceledAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.cancellationReason | string; aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.dueAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].title | string | Presente; — |
| 200 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
| 200 | resposta.overdue | boolean | Presente; — |
| 200 | resposta.personId | string | Presente; — |
| 200 | resposta.responsibleGroupId | string; aceita null | Presente; — |
| 200 | resposta.responsibleUserId | string; aceita null | Presente; — |
| 200 | resposta.serviceRecordId | string | Presente; — |
| 200 | resposta.subjectId | string; aceita null | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 409 | CONFLICT | replay divergente, versão ou transição incompatível |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Registra uma apresentação para cumprimento do item.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro. Comandos exigem Solicitação não cancelada; o Registro de origem pode estar encerrado. Recebimento exige Registro de cumprimento gravável da mesma Pessoa.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | itemId | string | Sim | — |
| body | documentId | string (uuid) | Não | — |
| body | expectedVersion | number | Sim | mínimo: 1 |
| body | fulfillmentServiceRecordId | string (uuid) | Sim | — |
| body | idempotencyKey | string | Sim | comprimento mínimo: 1; comprimento máximo: 100 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.activities | array de object | Presente; — |
| 200 | resposta.activities[] | object | Presente; — |
| 200 | resposta.activities[].activityId | string | Presente; — |
| 200 | resposta.activities[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.activities[].id | string | Presente; — |
| 200 | resposta.aggregatedStatus | string | Presente; — |
| 200 | resposta.canceledAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.cancellationReason | string; aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.dueAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].title | string | Presente; — |
| 200 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
| 200 | resposta.overdue | boolean | Presente; — |
| 200 | resposta.personId | string | Presente; — |
| 200 | resposta.responsibleGroupId | string; aceita null | Presente; — |
| 200 | resposta.responsibleUserId | string; aceita null | Presente; — |
| 200 | resposta.serviceRecordId | string | Presente; — |
| 200 | resposta.subjectId | string; aceita null | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 409 | CONFLICT | replay divergente, versão ou transição incompatível |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Recusa o cumprimento e permite nova apresentação.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro. Comandos exigem Solicitação não cancelada; o Registro de origem pode estar encerrado. Recebimento exige Registro de cumprimento gravável da mesma Pessoa.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | itemId | string | Sim | — |
| body | expectedVersion | number | Sim | mínimo: 1 |
| body | idempotencyKey | string | Sim | comprimento mínimo: 1; comprimento máximo: 100 |
| body | note | string | Não | comprimento mínimo: 1; comprimento máximo: 1000 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.activities | array de object | Presente; — |
| 200 | resposta.activities[] | object | Presente; — |
| 200 | resposta.activities[].activityId | string | Presente; — |
| 200 | resposta.activities[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.activities[].id | string | Presente; — |
| 200 | resposta.aggregatedStatus | string | Presente; — |
| 200 | resposta.canceledAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.cancellationReason | string; aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.dueAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].title | string | Presente; — |
| 200 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
| 200 | resposta.overdue | boolean | Presente; — |
| 200 | resposta.personId | string | Presente; — |
| 200 | resposta.responsibleGroupId | string; aceita null | Presente; — |
| 200 | resposta.responsibleUserId | string; aceita null | Presente; — |
| 200 | resposta.serviceRecordId | string | Presente; — |
| 200 | resposta.subjectId | string; aceita null | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 409 | CONFLICT | replay divergente, versão ou transição incompatível |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Move o item recebido para validação.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro. Comandos exigem Solicitação não cancelada; o Registro de origem pode estar encerrado. Recebimento exige Registro de cumprimento gravável da mesma Pessoa.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | itemId | string | Sim | — |
| body | expectedVersion | number | Sim | mínimo: 1 |
| body | idempotencyKey | string | Sim | comprimento mínimo: 1; comprimento máximo: 100 |
| body | note | string | Não | comprimento mínimo: 1; comprimento máximo: 1000 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.activities | array de object | Presente; — |
| 200 | resposta.activities[] | object | Presente; — |
| 200 | resposta.activities[].activityId | string | Presente; — |
| 200 | resposta.activities[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.activities[].id | string | Presente; — |
| 200 | resposta.aggregatedStatus | string | Presente; — |
| 200 | resposta.canceledAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.cancellationReason | string; aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.dueAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].title | string | Presente; — |
| 200 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
| 200 | resposta.overdue | boolean | Presente; — |
| 200 | resposta.personId | string | Presente; — |
| 200 | resposta.responsibleGroupId | string; aceita null | Presente; — |
| 200 | resposta.responsibleUserId | string; aceita null | Presente; — |
| 200 | resposta.serviceRecordId | string | Presente; — |
| 200 | resposta.subjectId | string; aceita null | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 409 | CONFLICT | replay divergente, versão ou transição incompatível |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Dispensa o cumprimento do item.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; leitura e escrita sujeitas ao alcance do Registro. Comandos exigem Solicitação não cancelada; o Registro de origem pode estar encerrado. Recebimento exige Registro de cumprimento gravável da mesma Pessoa.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | itemId | string | Sim | — |
| body | expectedVersion | number | Sim | mínimo: 1 |
| body | idempotencyKey | string | Sim | comprimento mínimo: 1; comprimento máximo: 100 |
| body | note | string | Não | comprimento mínimo: 1; comprimento máximo: 1000 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.activities | array de object | Presente; — |
| 200 | resposta.activities[] | object | Presente; — |
| 200 | resposta.activities[].activityId | string | Presente; — |
| 200 | resposta.activities[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.activities[].id | string | Presente; — |
| 200 | resposta.aggregatedStatus | string | Presente; — |
| 200 | resposta.canceledAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.cancellationReason | string; aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.dueAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].kind | string: DOCUMENT, INFORMATION, ATTENDANCE | Presente; — |
| 200 | resposta.items[].presentations | array de object | Presente; — |
| 200 | resposta.items[].presentations[] | object | Presente; — |
| 200 | resposta.items[].presentations[].documentId | string; aceita null | Presente; — |
| 200 | resposta.items[].presentations[].fulfillmentServiceRecordId | string | Presente; — |
| 200 | resposta.items[].presentations[].id | string | Presente; — |
| 200 | resposta.items[].presentations[].receivedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].presentations[].sequence | number | Presente; — |
| 200 | resposta.items[].resolvedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: PENDING, RECEIVED, VALIDATING, ACCEPTED, REJECTED, WAIVED | Presente; — |
| 200 | resposta.items[].title | string | Presente; — |
| 200 | resposta.items[].validationNote | string; aceita null | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
| 200 | resposta.overdue | boolean | Presente; — |
| 200 | resposta.personId | string | Presente; — |
| 200 | resposta.responsibleGroupId | string; aceita null | Presente; — |
| 200 | resposta.responsibleUserId | string; aceita null | Presente; — |
| 200 | resposta.serviceRecordId | string | Presente; — |
| 200 | resposta.subjectId | string; aceita null | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 409 | CONFLICT | replay divergente, versão ou transição incompatível |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Aplicam-se também autenticação (401), perfil insuficiente (403), recurso ausente ou fora do alcance (404), entrada inválida (400) e violação de regra (422), conforme as convenções e regras do domínio.
Lista Rotas no alcance permitido.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| query | cursor | string | Não | Cursor opaco devolvido em nextCursor da página anterior. |
| query | limit | number | Sim | Tamanho da página. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.nextCursor | string; aceita null | Presente; Cursor opaco da próxima página; null quando não há mais itens. |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].frequency | string: daily, weekly, monthly | Presente; — |
| 200 | resposta.items[].holidayPolicy | string: next_business_day, previous_business_day, skip | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].interval | number | Presente; — |
| 200 | resposta.items[].name | string | Presente; — |
| 200 | resposta.items[].period | string | Presente; — |
| 200 | resposta.items[].responsibleNucleusSigla | string | Presente; — |
| 200 | resposta.items[].responsibleUserIds | array de string | Presente; — |
| 200 | resposta.items[].transport | string | Presente; — |
| 200 | resposta.items[].updatedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].weekOfMonth | number; aceita null | Presente; — |
| 200 | resposta.items[].weekdays | array de number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Configura uma Rota recorrente e seus responsáveis.
Autenticação e autorização: Bearer; perfil mínimo acesso-de-nucleo e liderança do núcleo responsável.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| body | frequency | string: daily, weekly, monthly | Sim | — |
| body | holidayPolicy | string: next_business_day, previous_business_day, skip | Sim | — |
| body | interval | number | Sim | Intervalo em dias, semanas ou meses; âncora na data UTC de criação da rota.; mínimo: 1; máximo: 365 |
| body | name | string | Sim | comprimento mínimo: 1; comprimento máximo: 160 |
| body | period | string | Sim | comprimento mínimo: 1; comprimento máximo: 80 |
| body | responsibleNucleusSigla | string | Sim | comprimento mínimo: 1; comprimento máximo: 40 |
| body | responsibleUserIds | array de string (uuid) | Sim | mínimo de itens: 1; itens únicos: True |
| body | transport | string | Sim | comprimento mínimo: 1; comprimento máximo: 160 |
| body | weekOfMonth | number | Não | mínimo: 1; máximo: 5 |
| body | weekdays | array de number | Não | itens únicos: True |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 201 | resposta | object | Presente; — |
| 201 | resposta.createdAt | string (date-time) | Presente; — |
| 201 | resposta.frequency | string: daily, weekly, monthly | Presente; — |
| 201 | resposta.holidayPolicy | string: next_business_day, previous_business_day, skip | Presente; — |
| 201 | resposta.id | string | Presente; — |
| 201 | resposta.interval | number | Presente; — |
| 201 | resposta.name | string | Presente; — |
| 201 | resposta.period | string | Presente; — |
| 201 | resposta.responsibleNucleusSigla | string | Presente; — |
| 201 | resposta.responsibleUserIds | array de string | Presente; — |
| 201 | resposta.transport | string | Presente; — |
| 201 | resposta.updatedAt | string (date-time) | Presente; — |
| 201 | resposta.weekOfMonth | number; aceita null | Presente; — |
| 201 | resposta.weekdays | array de number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Consulta a configuração da Rota.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.frequency | string: daily, weekly, monthly | Presente; — |
| 200 | resposta.holidayPolicy | string: next_business_day, previous_business_day, skip | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.interval | number | Presente; — |
| 200 | resposta.name | string | Presente; — |
| 200 | resposta.period | string | Presente; — |
| 200 | resposta.responsibleNucleusSigla | string | Presente; — |
| 200 | resposta.responsibleUserIds | array de string | Presente; — |
| 200 | resposta.transport | string | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.weekOfMonth | number; aceita null | Presente; — |
| 200 | resposta.weekdays | array de number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Atualiza a configuração da Rota.
Autenticação e autorização: Bearer; perfil mínimo acesso-de-nucleo e liderança do núcleo responsável.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| body | frequency | string: daily, weekly, monthly | Não | — |
| body | holidayPolicy | string: next_business_day, previous_business_day, skip | Não | — |
| body | interval | number | Não | Intervalo em dias, semanas ou meses; âncora na data UTC de criação da rota.; mínimo: 1; máximo: 365 |
| body | name | string | Não | comprimento mínimo: 1; comprimento máximo: 160 |
| body | period | string | Não | comprimento mínimo: 1; comprimento máximo: 80 |
| body | responsibleNucleusSigla | string | Não | comprimento mínimo: 1; comprimento máximo: 40 |
| body | responsibleUserIds | array de string (uuid) | Não | mínimo de itens: 1; itens únicos: True |
| body | transport | string | Não | comprimento mínimo: 1; comprimento máximo: 160 |
| body | weekOfMonth | number | Não | mínimo: 1; máximo: 5 |
| body | weekdays | array de number | Não | itens únicos: True |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.frequency | string: daily, weekly, monthly | Presente; — |
| 200 | resposta.holidayPolicy | string: next_business_day, previous_business_day, skip | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.interval | number | Presente; — |
| 200 | resposta.name | string | Presente; — |
| 200 | resposta.period | string | Presente; — |
| 200 | resposta.responsibleNucleusSigla | string | Presente; — |
| 200 | resposta.responsibleUserIds | array de string | Presente; — |
| 200 | resposta.transport | string | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.weekOfMonth | number; aceita null | Presente; — |
| 200 | resposta.weekdays | array de number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Lista as Ocorrências da Rota.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| query | cursor | string | Não | Cursor opaco devolvido em nextCursor da página anterior. |
| query | limit | number | Sim | Tamanho da página. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.nextCursor | string; aceita null | Presente; Cursor opaco da próxima página; null quando não há mais itens. |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].effectiveDate | string; aceita null | Presente; — |
| 200 | resposta.items[].endedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].requestedDate | string | Presente; — |
| 200 | resposta.items[].routeId | string | Presente; — |
| 200 | resposta.items[].startedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].status | string: planned, in_progress, completed, cancelled, skipped | Presente; — |
| 200 | resposta.items[].updatedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Gera uma Ocorrência para a data solicitada conforme recorrência e calendário.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável. Executor restrito deve constar nos responsáveis da Rota.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| body | requestedDate | string | Sim | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 201 | resposta | object | Presente; — |
| 201 | resposta.createdAt | string (date-time) | Presente; — |
| 201 | resposta.effectiveDate | string; aceita null | Presente; — |
| 201 | resposta.endedAt | string (date-time); aceita null | Presente; — |
| 201 | resposta.id | string | Presente; — |
| 201 | resposta.requestedDate | string | Presente; — |
| 201 | resposta.routeId | string | Presente; — |
| 201 | resposta.startedAt | string (date-time); aceita null | Presente; — |
| 201 | resposta.status | string: planned, in_progress, completed, cancelled, skipped | Presente; — |
| 201 | resposta.updatedAt | string (date-time) | Presente; — |
| 201 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Lista as Paradas da Ocorrência.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | occurrenceId | string | Sim | — |
| query | cursor | string | Não | Cursor opaco devolvido em nextCursor da página anterior. |
| query | limit | number | Sim | Tamanho da página. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.nextCursor | string; aceita null | Presente; Cursor opaco da próxima página; null quando não há mais itens. |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].arrivedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].leftAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].location | string | Presente; — |
| 200 | resposta.items[].occurrenceId | string | Presente; — |
| 200 | resposta.items[].plannedArrivalAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.items[].position | number | Presente; — |
| 200 | resposta.items[].updatedAt | string (date-time) | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Cria uma Parada em uma posição da Ocorrência.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável. Executor restrito deve constar nos responsáveis da Rota.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | occurrenceId | string | Sim | — |
| body | location | string | Sim | comprimento mínimo: 1; comprimento máximo: 2000 |
| body | plannedArrivalAt | string | Não | — |
| body | position | number | Sim | mínimo: 1 |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 201 | resposta | object | Presente; — |
| 201 | resposta.arrivedAt | string (date-time); aceita null | Presente; — |
| 201 | resposta.createdAt | string (date-time) | Presente; — |
| 201 | resposta.id | string | Presente; — |
| 201 | resposta.leftAt | string (date-time); aceita null | Presente; — |
| 201 | resposta.location | string | Presente; — |
| 201 | resposta.occurrenceId | string | Presente; — |
| 201 | resposta.plannedArrivalAt | string (date-time); aceita null | Presente; — |
| 201 | resposta.position | number | Presente; — |
| 201 | resposta.updatedAt | string (date-time) | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Registra a chegada à Parada durante a execução da Ocorrência.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável. Executor restrito deve constar nos responsáveis da Rota.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | occurrenceId | string | Sim | — |
| path | stopId | string | Sim | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.arrivedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.leftAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.location | string | Presente; — |
| 200 | resposta.occurrenceId | string | Presente; — |
| 200 | resposta.plannedArrivalAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.position | number | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Registra a saída da Parada após a chegada.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável. Executor restrito deve constar nos responsáveis da Rota.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | occurrenceId | string | Sim | — |
| path | stopId | string | Sim | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.arrivedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.leftAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.location | string | Presente; — |
| 200 | resposta.occurrenceId | string | Presente; — |
| 200 | resposta.plannedArrivalAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.position | number | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Lista os Registros de Atendimento vinculados à Parada.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | occurrenceId | string | Sim | — |
| path | stopId | string | Sim | — |
| query | cursor | string | Não | Cursor opaco devolvido em nextCursor da página anterior. |
| query | limit | number | Sim | Tamanho da página. |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.nextCursor | string; aceita null | Presente; Cursor opaco da próxima página; null quando não há mais itens. |
| 200 | resposta.items | array de object | Presente; — |
| 200 | resposta.items[] | object | Presente; — |
| 200 | resposta.items[].appointmentId | object; aceita null | Opcional; — |
| 200 | resposta.items[].availableActions | array de string | Presente; Operações elegíveis da sessão; cada comando revalida autorização e versão. |
| 200 | resposta.items[].closedAt | object; aceita null | Opcional; — |
| 200 | resposta.items[].createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].direction | string: INBOUND, OUTBOUND | Presente; — |
| 200 | resposta.items[].id | string | Presente; — |
| 200 | resposta.items[].isAppointment | boolean | Presente; Verdadeiro quando o registro nasceu agendado; a origem é AGENDAMENTO. |
| 200 | resposta.items[].mode | string: REMOTO, PRESENCIAL | Presente; — |
| 200 | resposta.items[].onsite | object | Opcional; — |
| 200 | resposta.items[].onsite.arrivedAt | object; aceita null | Opcional; — |
| 200 | resposta.items[].onsite.location | string | Presente; — |
| 200 | resposta.items[].onsite.locationUnitId | object; aceita null | Opcional; — |
| 200 | resposta.items[].onsite.routeStopId | object; aceita null | Opcional; — |
| 200 | resposta.items[].origin | string: ESPONTANEO, AGENDAMENTO, ROTA, AUTOMACAO | Presente; — |
| 200 | resposta.items[].participants | array de object | Presente; — |
| 200 | resposta.items[].participants[] | object | Presente; — |
| 200 | resposta.items[].participants[].userId | string | Presente; — |
| 200 | resposta.items[].personId | object; aceita null | Opcional; — |
| 200 | resposta.items[].remote | object | Opcional; — |
| 200 | resposta.items[].remote.channel | string: WHATSAPP, TELEFONE, VIDEOCONFERENCIA, EMAIL, REDE_SOCIAL | Presente; — |
| 200 | resposta.items[].remote.channelAccountId | object; aceita null | Opcional; — |
| 200 | resposta.items[].remote.externalConversationId | object; aceita null | Opcional; — |
| 200 | resposta.items[].responsibleNucleusSigla | string | Presente; — |
| 200 | resposta.items[].startedAt | object; aceita null | Opcional; — |
| 200 | resposta.items[].status | string: AGENDADO, EM_ESPERA, EM_ATENDIMENTO, EM_REVISAO, ENCERRADO, CANCELADO | Presente; — |
| 200 | resposta.items[].subjects | array de object | Presente; — |
| 200 | resposta.items[].subjects[] | object | Presente; — |
| 200 | resposta.items[].subjects[].caseId | object; aceita null | Opcional; — |
| 200 | resposta.items[].subjects[].conclusion | object; aceita null | Opcional; Conclusão do Assunto; null enquanto não registrada. |
| 200 | resposta.items[].subjects[].conclusion.authorUserId | object; aceita null | Opcional; — |
| 200 | resposta.items[].subjects[].conclusion.createdAt | string (date-time) | Presente; — |
| 200 | resposta.items[].subjects[].conclusion.id | string | Presente; — |
| 200 | resposta.items[].subjects[].conclusion.note | string | Presente; — |
| 200 | resposta.items[].subjects[].conclusion.type | string: PROVIDENCIAS, SEM_INTERCORRENCIA | Presente; — |
| 200 | resposta.items[].subjects[].conclusion.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].subjects[].consultationId | object; aceita null | Opcional; — |
| 200 | resposta.items[].subjects[].feeContractId | object; aceita null | Opcional; — |
| 200 | resposta.items[].subjects[].id | string | Presente; — |
| 200 | resposta.items[].subjects[].originConsultationId | object; aceita null | Opcional; — |
| 200 | resposta.items[].subjects[].purpose | string: AVULSO, ENTREVISTA_INAUGURAL, ACOMPANHAMENTO, SOLICITACAO, ORIENTACAO, FINANCEIRO | Presente; — |
| 200 | resposta.items[].unitId | string | Presente; — |
| 200 | resposta.items[].updatedAt | string (date-time) | Presente; — |
| 200 | resposta.items[].version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Vincula um Registro presencial gravável à Parada.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável. Executor restrito deve constar nos responsáveis da Rota.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | occurrenceId | string | Sim | — |
| path | stopId | string | Sim | — |
| body | serviceRecordId | string (uuid) | Sim | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.appointmentId | object; aceita null | Opcional; — |
| 200 | resposta.availableActions | array de string | Presente; Operações elegíveis da sessão; cada comando revalida autorização e versão. |
| 200 | resposta.closedAt | object; aceita null | Opcional; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.direction | string: INBOUND, OUTBOUND | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.isAppointment | boolean | Presente; Verdadeiro quando o registro nasceu agendado; a origem é AGENDAMENTO. |
| 200 | resposta.mode | string: REMOTO, PRESENCIAL | Presente; — |
| 200 | resposta.onsite | object | Opcional; — |
| 200 | resposta.onsite.arrivedAt | object; aceita null | Opcional; — |
| 200 | resposta.onsite.location | string | Presente; — |
| 200 | resposta.onsite.locationUnitId | object; aceita null | Opcional; — |
| 200 | resposta.onsite.routeStopId | object; aceita null | Opcional; — |
| 200 | resposta.origin | string: ESPONTANEO, AGENDAMENTO, ROTA, AUTOMACAO | Presente; — |
| 200 | resposta.participants | array de object | Presente; — |
| 200 | resposta.participants[] | object | Presente; — |
| 200 | resposta.participants[].userId | string | Presente; — |
| 200 | resposta.personId | object; aceita null | Opcional; — |
| 200 | resposta.remote | object | Opcional; — |
| 200 | resposta.remote.channel | string: WHATSAPP, TELEFONE, VIDEOCONFERENCIA, EMAIL, REDE_SOCIAL | Presente; — |
| 200 | resposta.remote.channelAccountId | object; aceita null | Opcional; — |
| 200 | resposta.remote.externalConversationId | object; aceita null | Opcional; — |
| 200 | resposta.responsibleNucleusSigla | string | Presente; — |
| 200 | resposta.startedAt | object; aceita null | Opcional; — |
| 200 | resposta.status | string: AGENDADO, EM_ESPERA, EM_ATENDIMENTO, EM_REVISAO, ENCERRADO, CANCELADO | Presente; — |
| 200 | resposta.subjects | array de object | Presente; — |
| 200 | resposta.subjects[] | object | Presente; — |
| 200 | resposta.subjects[].caseId | object; aceita null | Opcional; — |
| 200 | resposta.subjects[].conclusion | object; aceita null | Opcional; Conclusão do Assunto; null enquanto não registrada. |
| 200 | resposta.subjects[].conclusion.authorUserId | object; aceita null | Opcional; — |
| 200 | resposta.subjects[].conclusion.createdAt | string (date-time) | Presente; — |
| 200 | resposta.subjects[].conclusion.id | string | Presente; — |
| 200 | resposta.subjects[].conclusion.note | string | Presente; — |
| 200 | resposta.subjects[].conclusion.type | string: PROVIDENCIAS, SEM_INTERCORRENCIA | Presente; — |
| 200 | resposta.subjects[].conclusion.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.subjects[].consultationId | object; aceita null | Opcional; — |
| 200 | resposta.subjects[].feeContractId | object; aceita null | Opcional; — |
| 200 | resposta.subjects[].id | string | Presente; — |
| 200 | resposta.subjects[].originConsultationId | object; aceita null | Opcional; — |
| 200 | resposta.subjects[].purpose | string: AVULSO, ENTREVISTA_INAUGURAL, ACOMPANHAMENTO, SOLICITACAO, ORIENTACAO, FINANCEIRO | Presente; — |
| 200 | resposta.unitId | string | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |
Inicia, conclui ou cancela a Ocorrência com controle de versão.
Autenticação e autorização: Bearer; perfil mínimo operacional-restrito; alcance institucional ou do núcleo responsável. Executor restrito deve constar nos responsáveis da Rota.
Entrada
| Local | Campo | Tipo | Obrigatório | Condição |
|---|
| path | id | string | Sim | — |
| path | occurrenceId | string | Sim | — |
| body | expectedVersion | number | Sim | mínimo: 1 |
| body | status | string: planned, in_progress, completed, cancelled, skipped | Sim | — |
Saída
| HTTP | Campo | Tipo | Descrição |
|---|
| 200 | resposta | object | Presente; — |
| 200 | resposta.createdAt | string (date-time) | Presente; — |
| 200 | resposta.effectiveDate | string; aceita null | Presente; — |
| 200 | resposta.endedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.id | string | Presente; — |
| 200 | resposta.requestedDate | string | Presente; — |
| 200 | resposta.routeId | string | Presente; — |
| 200 | resposta.startedAt | string (date-time); aceita null | Presente; — |
| 200 | resposta.status | string: planned, in_progress, completed, cancelled, skipped | Presente; — |
| 200 | resposta.updatedAt | string (date-time) | Presente; — |
| 200 | resposta.version | number | Presente; — |
Erros
| HTTP | errorCode | Condição |
|---|
| 400 | VALIDATION_FAILED | Entrada ou cursor inválido |
| 401 | UNAUTHORIZED | Sem credencial válida |
| 403 | FORBIDDEN | Operação não permitida para o perfil ou responsável |
| 404 | NOT_FOUND | Recurso inexistente ou fora do alcance |
| 409 | CONFLICT | Concorrência ou estado incompatível |
| 422 | RULE_VIOLATION | Referência ou regra inválida |
| 500 | INTERNAL | falha não tratada (banco, adaptador ou bug): errorCode INTERNAL |