O Ordara Privacidade Entrar

API v1

A mesma API que o aplicativo do Ordara usa. Ela lê e escreve os dados do escritório com as permissões da pessoa dona do token, e as regras são as mesmas da tela: é o servidor que confere cada coisa, e nenhum escritório alcança dado de outro.

Endereço

https://app.ordara.com.br/api/v1

Autenticação

Toda chamada, exceto /ping e /login, leva um token no cabeçalho:

Authorization: Bearer SEU_TOKEN

Há dois jeitos de obter um token:

O servidor guarda só uma impressão digital (hash) do token. Qualquer token pode ser revogado na mesma tela, e deixa de valer na hora. O token de um usuário desativado pelo administrador para de funcionar na chamada seguinte, e é revogado ali mesmo.

curl -s https://app.ordara.com.br/api/v1/login \
  -H 'Content-Type: application/json' \
  -d '{"email":"voce@escritorio.com.br","senha":"…","dispositivo":{"nome":"Meu celular","plataforma":"android"}}'

curl -s https://app.ordara.com.br/api/v1/prazos?responsavel=eu -H 'Authorization: Bearer SEU_TOKEN'

Formato das respostas

Sempre JSON, sempre com o campo ok. Nunca redireciona e nunca devolve página HTML.

{"ok": true,  "dados": { … }}
{"ok": false, "erro": {"codigo": "nao_encontrado", "mensagem": "Caso não encontrado."}}

Use o codigo para decidir o que fazer; a mensagem é para gente e pode mudar. Os principais: sem_token e token_invalido (401), credenciais_invalidas (401), nao_encontrado (404 — inclusive para dado de outro escritório: o servidor não confirma que ele existe), campo_obrigatorio e data_invalida (422), muitas_tentativas (429), chave_reutilizada (409), corpo_grande_demais (413), app_desatualizado (426 — o aplicativo está abaixo de app_versao_minima; a resposta traz versao_minima e loja. Vale só para quem se identifica como User-Agent: Ordara-App/x.y.z; token de integração não passa por esse piso, e /ping e /login nunca respondem 426).

Datas

Data com hora sai em ISO 8601 com o fuso escrito (2026-09-11T14:30:00-04:00). Data de prazo sai como data pura (2026-09-15): o dia do prazo não muda com o fuso de quem olha.

Paginação

Por cursor, nunca por número de página: a resposta traz cursor; mande-o de volta em ?cursor= para a próxima página. cursor: null é o fim. O parâmetro limite vai de 1 a 200 (padrão 50).

Reenvio seguro (idempotência)

Nas escritas, mande Idempotency-Key: <8 a 80 caracteres>. Se a rede cair e você reenviar com a mesma chave, o servidor devolve a resposta guardada (com Idempotent-Replay: true) em vez de executar de novo — um prazo não é dado como cumprido duas vezes.

Endpoints

GET/ping sem token

Verificar o serviço

Responde sem token. Serve para o app conferir se o servidor está no ar e qual a versão mínima que ele aceita.

Resposta: servico, versao_api, app_versao_minima, agora (data-hora com fuso)

POST/login sem token

Entrar e receber um token

Confere e-mail (ou nome de usuário) e senha — a mesma conferência da tela — e cria um token para o aparelho. O token só aparece nesta resposta; o servidor guarda apenas o hash dele. Limite: 8 tentativas por conta a cada 15 minutos.

ParâmetroDescrição
emaile-mail da conta (ou `usuario`)
senhasenha da conta
codigoobrigatório se a conta usa acesso em duas etapas: os 6 dígitos do aplicativo autenticador ou um código de recuperação (sem ele, a resposta é 401 `mfa_obrigatoria`)
dispositivo.nomeopcional, ex.: "Galaxy do Fulano"
dispositivo.plataformaandroid, ios ou web
dispositivo.app_versaoopcional

Resposta: token, usuario, escritorio, permissoes, app_versao_minima (HTTP 201)

POST/logout

Sair (revogar este token)

Revoga o token usado na chamada. Ele deixa de valer imediatamente.

Resposta: revogado: true

GET/me

Quem sou eu

Dados do usuário, do escritório e as PERMISSÕES deste acesso. O app decide o que mostrar por estas permissões, nunca pelo nome do plano.

Resposta: usuario, escritorio (plano, fim da avaliação), permissoes, dispositivo

POST/dispositivo/push

Registrar notificação push

Guarda o token FCM deste aparelho. Mandar vazio desliga. O servidor avisa por push (Firebase Cloud Messaging) os prazos que vencem em até 3 dias (rotina diária) e as publicações novas do Diário, para quem registrou o aparelho e não desligou a categoria em Notificações. A mensagem leva só a contagem e `data.tela` (agenda | intimacoes) — nunca nome de parte nem número de processo. `push_servidor` em /me diz se o servidor tem como enviar.

ParâmetroDescrição
push_tokentoken do Firebase (FCM), ou vazio

Resposta: push_ativo

GET/prazos

Listar prazos pendentes

Compromissos não cumpridos, do mais urgente para o menos. Mesma regra da agenda da tela.

ParâmetroDescrição
ateopcional, AAAA-MM-DD: só os que vencem até a data
responsavelopcional: `eu` para a agenda individual (responsável do prazo, ou do caso)
limiteopcional, 1 a 200 (padrão 50)
cursoropcional, da página anterior

Resposta: itens[] (id, titulo, tipo, data, hora, caso_id, cliente, cumprido, fatal, responsavel), cursor, total_pendentes

POST/prazos/{id}/concluir

Dar baixa num prazo

Marca como cumprido (ou desfaz, se já estava). Se o prazo é de um caso, a baixa vira andamento. Aceita Idempotency-Key.

Resposta: id, cumprido

POST/prazos/{id}/adiar

Reagendar um prazo

Muda a data de um compromisso pendente — a mesma regra da tela: a data tem de existir no calendário, e o reagendamento de prazo de caso vira andamento com as duas datas. Pedir a data que ele já tem é sucesso sem efeito. Aceita Idempotency-Key.

ParâmetroDescrição
dataAAAA-MM-DD (data inválida: HTTP 422 `data_invalida`)

Resposta: id, data

GET/intimacoes

Listar publicações do Diário

Intimações do DJEN do escritório, das mais novas para as mais antigas, com um resumo de 400 caracteres (o texto inteiro fica no detalhe, para não pesar no 4G).

ParâmetroDescrição
fopcional: `novas` para só as não lidas
responsavelopcional: `eu` para só as que estão com quem usa o token
urgentesopcional: `1` para só as marcadas como urgentes pela triagem
categoriaopcional: uma categoria da triagem (citacao | intimacao | sentenca | decisao | despacho | acordao | audiencia_pauta | edital | outro); outra coisa é 422 `categoria_invalida`
limiteopcional
cursoropcional

Resposta: itens[] (id, numero_processo, tribunal, orgao, tipo, data, lida, lida_por, lida_em, responsavel, caso_id, virou_prazo, cliente, resumo, texto_truncado, categoria, urgente, analise {ato, data_fatal, memoria, resumo, em} ou null, link_oficial), cursor, nao_lidas, urgentes_nao_lidas

GET/intimacoes/{id}

Ler uma publicação

O texto integral de uma intimação, com a triagem da IA quando já houve: categoria do ato (citacao | intimacao | sentenca | decisao | despacho | acordao | audiencia_pauta | edital | outro), urgência e a análise (ato, data fatal, resumo). A data fatal é contada pelo servidor em dias úteis do CPC, com a regra do DJEN e os feriados do escritório — `memoria` diz como; a IA só leu o prazo. É sugestão — o prazo só entra na agenda quando alguém confirma.

Resposta: id, numero_processo, tribunal, orgao, tipo, classe, data, lida, caso_id, texto, categoria, urgente, analise {ato, data_fatal, memoria, resumo, em} ou null, link_oficial (endereço da publicação na fonte oficial — DJEN/CNJ — ou null)

POST/intimacoes/{id}/lida

Marcar publicação como lida

Marca como lida (ou não lida). Aceita Idempotency-Key.

ParâmetroDescrição
lidaopcional, true (padrão) ou false

Resposta: id, lida

GET/casos

Listar casos

Casos do escritório, dos mais novos para os mais antigos.

ParâmetroDescrição
qopcional: busca por assunto, número do processo ou cliente
limiteopcional
cursoropcional

Resposta: itens[] (id, titulo, numero_processo, tipo_processo, etapa, area, ultima_movimentacao, cliente), cursor

GET/casos/{id}

Ver um caso

A ficha do caso: últimos 50 andamentos, prazos pendentes e documentos do GED.

Resposta: id, titulo, numero_processo, tipo_processo (judicial | administrativo), etapa, area, cliente, andamentos[], prazos[], documentos[]

GET/clientes

Listar clientes

Clientes do escritório, dos mais novos para os mais antigos.

ParâmetroDescrição
qopcional: busca por nome ou CPF/CNPJ (os dígitos casam com ou sem pontuação)
limiteopcional
cursoropcional

Resposta: itens[] (id, nome, cpf_cnpj, email, telefone), cursor

GET/clientes/{id}

Ver um cliente

Dados de contato e os casos do cliente.

Resposta: id, nome, cpf_cnpj, email, telefone, endereco, casos[]

POST/casos/{id}/documentos

Enviar documento para o caso

Anexa um arquivo ao GED do caso (a foto da câmera, por exemplo). Mesmas regras da tela: extensões permitidas, limite de tamanho e cota do plano, conferidos no servidor. Aceita Idempotency-Key.

ParâmetroDescrição
arquivomultipart; OU conteudo_base64 + nome em JSON
categoriaopcional; uma das categorias em "Limites do GED", abaixo (padrão: geral)

Resposta: id, nome, tamanho (HTTP 201)

POST/clientes

Cadastrar cliente (ou interessado)

A mesma regra da tela: nome obrigatório, CPF/CNPJ com dígito verificador. Os demais campos são os da ficha (telefone, email, cpf_cnpj, tipo_pessoa pf|pj, nascimento, cep, logradouro, numero, complemento, bairro, cidade, uf, profissao, rg…). Aceita Idempotency-Key.

ParâmetroDescrição
nomeobrigatório
cpf_cnpjopcional, validado
emailopcional
telefoneopcional

Resposta: id, nome, cpf_cnpj, email, telefone (HTTP 201)

POST/casos

Abrir processo

Cria o processo para uma parte existente (cliente_id) ou nova (cliente_nome: cadastro só com o nome). Judicial exige número CNJ válido; administrativo aceita número livre. Número já cadastrado: 422 `duplicado`. Com rito_id, o processo já nasce na primeira fase do rito (e o prazo dela, se houver, na agenda). Aceita Idempotency-Key.

ParâmetroDescrição
cliente_idou cliente_nome
tituloassunto
tipo_processojudicial (padrão) | administrativo
numero_processoopcional
area_idopcional
etapa_idopcional
responsavel_idopcional
rito_idopcional — ver GET /ritos

Resposta: id, titulo, numero_processo, tipo_processo, cliente_id, fase (HTTP 201)

POST/casos/{id}/andamentos

Registrar andamento

Lança um andamento na linha do tempo do processo. O autor é sempre quem usa o token. Aceita Idempotency-Key.

ParâmetroDescrição
textoobrigatório
dataopcional, AAAA-MM-DD (padrão: hoje)
documento_idopcional — documento deste processo (ou da parte) ao qual o andamento se refere

Resposta: id, data, texto (HTTP 201)

POST/casos/{id}/fase

Mudar a fase do processo

Põe o processo numa fase do rito dele. Entrar numa fase com prazo cria o prazo na agenda (o id vem em prazo_criado). Fase de outro rito: 422. Aceita Idempotency-Key.

ParâmetroDescrição
fase_idobrigatório — ver GET /ritos

Resposta: caso_id, fase, prazo_criado

DELETE/casos/{id}

Excluir processo

As mesmas regras da tela: o administrador exclui qualquer processo, o advogado só o que ele mesmo abriu, a secretaria nenhum (403 `sem_permissao`). Apaga andamentos, prazos, partes, documentos (com os arquivos), contratos e lançamentos do processo; as publicações do Diário ficam, desvinculadas. Irreversível — a trilha de auditoria guarda o inventário do que foi apagado.

Resposta: caso_id, excluido, apagado{andamentos, compromissos, partes, documentos, contratos, parcelas, despesas, publicacoes}

POST/prazos

Agendar compromisso

Cria prazo, audiência, reunião ou tarefa — a mesma regra da tela (data que existe no calendário; caso e responsável só do próprio escritório). Aceita Idempotency-Key.

ParâmetroDescrição
tituloobrigatório
dataobrigatório, AAAA-MM-DD
horaopcional HH:MM
tipoprazo (padrão) | audiencia | reuniao | tarefa
caso_idopcional
fatalopcional, true/false
responsavel_idopcional (vazio = herda do caso)
documento_idopcional — documento do processo ao qual o prazo se refere

Resposta: o compromisso, no mesmo formato de GET /prazos (HTTP 201)

GET/casos/{id}/documentos

Listar documentos do processo

As versões vigentes do acervo do processo, sem os sigilosos de outra pessoa — a mesma lista da tela.

Resposta: itens[] (id, nome, categoria, mime, tamanho, sha256, versao, sigiloso, enviado_em)

GET/documentos/{id}

Baixar documento

Devolve o arquivo (binário, Content-Disposition attachment). O download fica registrado com o aparelho, como na tela. Sigiloso de outra pessoa: 404.

Resposta: o arquivo

GET/ritos

Listar ritos e fases

Os ritos do escritório com as fases em ordem, o prazo automático de cada uma e qual é a final — para o app oferecer "avançar fase".

Resposta: itens[] (id, nome, natureza, tipo_processo, fases[] (id, ordem, nome, prazo_dias, prazo_fatal, final))

Limites do GED

Arquivo de até 25 MB, dentro da cota do plano. Extensões aceitas: pdf, doc, docx, odt, txt, rtf, xls, xlsx, csv, png, jpg, jpeg, webp, heic, zip, mp3, mp4, ogg, opus.

Categorias: procuracao, contrato, peticao, prova, decisao, pessoal, gerado, geral.

O que a API não expõe

Financeiro e o cofre de credenciais ficam fora do token, de propósito: segredo de cliente não sai por aplicativo nem por integração. O GET /me diz, em permissoes, o que cada token pode fazer.