Campos personalizados que o tribunal definiu
const url = 'https://api.emmaos.com.br/custom-field-definitions';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.emmaos.com.br/custom-field-definitions \ --header 'Authorization: Bearer <token>'Devolve a lista de campos personalizados que o tribunal do token
definiu para o cadastro do ato, na ordem do cadastro: chave, rótulo,
tipo, se é obrigatório, se está arquivado e, nos campos SELECT, as
opções. O painel desenha o formulário com ela.
A lista vem do banco do tribunal (custom_field_definitions), escrita
só pela plataforma, e a API a relê em até 5 minutos depois de uma
mudança. Tribunal sem campo definido recebe items: []. Nunca aparece
a lista de outro tribunal. A resposta não é guardada em cache
(Cache-Control: no-store).
O campo arquivado (archived: true) continua na lista: o cadastro
não o pede, e POST /notices recusa a chave dele, mas o detalhe de um
ato antigo ainda mostra o valor que ele guardou.
O que POST /notices faz com ela
- O campo definido e não arquivado é conferido (tipo igual ao da definição, valor válido para o tipo, obrigatório presente) e grava o rótulo da definição, e não o que o pedido mandou.
- Em
SELECT,valueé ovaluede uma das opções, e o ato ganhaoptionLabel, o rótulo daquela opção, carimbado pelo servidor. OoptionLabelque o pedido mandar é ignorado. - O campo arquivado não é exigido, e a chave dele no pedido é
recusada com
400emcustomFields.<chave>, antes de gastar protocolo. Uma chave arquivada não volta a ser usada. - A chave que nenhuma definição lista continua aceita, como sempre
foi: integrações mandam chaves próprias (
processoOrigem). - Mudar a definição vale só para atos novos: o valor e os rótulos ficam congelados no ato.
Authorizations
Seção intitulada “Authorizations”Responses
Seção intitulada “Responses”As definições do tribunal (lista vazia se não houver)
object
A definição de um campo personalizado do tribunal. Vive no banco do
tribunal; o valor é que fica no ato (CustomField), congelado.
object
Chave do campo em customFields. Começa com letra minúscula.
Rótulo em português, como aparece no cadastro e no detalhe.
Tipo de um campo personalizado do tribunal.
O cadastro recusa o ato sem este campo.
As opções, só em campo SELECT. O ato grava o value; o label é
o que a tela mostra.
object
Fora de uso: o cadastro não o pede nem o exige, e POST /notices
recusa a chave dele com 400. O detalhe de um ato antigo continua
mostrando o valor guardado.
Example
{ "items": [ { "key": "contrato", "label": "Número do contrato", "type": "TEXT", "required": true, "archived": false }, { "key": "grauDeUrgencia", "label": "Grau de urgência", "type": "SELECT", "required": false, "options": [ { "value": "baixo", "label": "Baixo" }, { "value": "alto", "label": "Alto" } ], "archived": false } ]}Headers
Seção intitulada “Headers”Sempre no-store.
Sem header Authorization. Recusado pelo API Gateway antes de chegar à
aplicação.
Token inválido, expirado, ou de um emissor que não é tribunal conhecido neste stage. Recusado pelo authorizer.
Erro interno
object
Código estável do erro. É por ele que se programa.
Campo que causou a recusa, quando aplicável.
Texto em português para diagnóstico. Não programe contra ele: pode mudar sem aviso.
Só com TENANT_NOT_CONFIGURED: o que falta na configuração do
tribunal.
Example
{ "error": "INTERNAL_ERROR"}