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.
https://app.ordara.com.br/api/v1
Toda chamada, exceto /ping e /login, leva um token no cabeçalho:
Authorization: Bearer SEU_TOKEN
Há dois jeitos de obter um token:
POST /login com e-mail e senha devolve o token do aparelho.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'
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).
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.
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).
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.
/ping
sem tokenResponde 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)
/login
sem tokenConfere 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âmetro | Descrição |
|---|---|
email | e-mail da conta (ou `usuario`) |
senha | senha da conta |
codigo | obrigató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.nome | opcional, ex.: "Galaxy do Fulano" |
dispositivo.plataforma | android, ios ou web |
dispositivo.app_versao | opcional |
Resposta: token, usuario, escritorio, permissoes, app_versao_minima (HTTP 201)
/logout
Revoga o token usado na chamada. Ele deixa de valer imediatamente.
Resposta: revogado: true
/me
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
/dispositivo/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âmetro | Descrição |
|---|---|
push_token | token do Firebase (FCM), ou vazio |
Resposta: push_ativo
/prazos
Compromissos não cumpridos, do mais urgente para o menos. Mesma regra da agenda da tela.
| Parâmetro | Descrição |
|---|---|
ate | opcional, AAAA-MM-DD: só os que vencem até a data |
responsavel | opcional: `eu` para a agenda individual (responsável do prazo, ou do caso) |
limite | opcional, 1 a 200 (padrão 50) |
cursor | opcional, da página anterior |
Resposta: itens[] (id, titulo, tipo, data, hora, caso_id, cliente, cumprido, fatal, responsavel), cursor, total_pendentes
/prazos/{id}/concluir
Marca como cumprido (ou desfaz, se já estava). Se o prazo é de um caso, a baixa vira andamento. Aceita Idempotency-Key.
Resposta: id, cumprido
/prazos/{id}/adiar
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âmetro | Descrição |
|---|---|
data | AAAA-MM-DD (data inválida: HTTP 422 `data_invalida`) |
Resposta: id, data
/intimacoes
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âmetro | Descrição |
|---|---|
f | opcional: `novas` para só as não lidas |
responsavel | opcional: `eu` para só as que estão com quem usa o token |
urgentes | opcional: `1` para só as marcadas como urgentes pela triagem |
categoria | opcional: uma categoria da triagem (citacao | intimacao | sentenca | decisao | despacho | acordao | audiencia_pauta | edital | outro); outra coisa é 422 `categoria_invalida` |
limite | opcional |
cursor | opcional |
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
/intimacoes/{id}
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)
/intimacoes/{id}/lida
Marca como lida (ou não lida). Aceita Idempotency-Key.
| Parâmetro | Descrição |
|---|---|
lida | opcional, true (padrão) ou false |
Resposta: id, lida
/casos
Casos do escritório, dos mais novos para os mais antigos.
| Parâmetro | Descrição |
|---|---|
q | opcional: busca por assunto, número do processo ou cliente |
limite | opcional |
cursor | opcional |
Resposta: itens[] (id, titulo, numero_processo, tipo_processo, etapa, area, ultima_movimentacao, cliente), cursor
/casos/{id}
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[]
/clientes
Clientes do escritório, dos mais novos para os mais antigos.
| Parâmetro | Descrição |
|---|---|
q | opcional: busca por nome ou CPF/CNPJ (os dígitos casam com ou sem pontuação) |
limite | opcional |
cursor | opcional |
Resposta: itens[] (id, nome, cpf_cnpj, email, telefone), cursor
/clientes/{id}
Dados de contato e os casos do cliente.
Resposta: id, nome, cpf_cnpj, email, telefone, endereco, casos[]
/casos/{id}/documentos
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âmetro | Descrição |
|---|---|
arquivo | multipart; OU conteudo_base64 + nome em JSON |
categoria | opcional; uma das categorias em "Limites do GED", abaixo (padrão: geral) |
Resposta: id, nome, tamanho (HTTP 201)
/clientes
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âmetro | Descrição |
|---|---|
nome | obrigatório |
cpf_cnpj | opcional, validado |
email | opcional |
telefone | opcional |
Resposta: id, nome, cpf_cnpj, email, telefone (HTTP 201)
/casos
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âmetro | Descrição |
|---|---|
cliente_id | ou cliente_nome |
titulo | assunto |
tipo_processo | judicial (padrão) | administrativo |
numero_processo | opcional |
area_id | opcional |
etapa_id | opcional |
responsavel_id | opcional |
rito_id | opcional — ver GET /ritos |
Resposta: id, titulo, numero_processo, tipo_processo, cliente_id, fase (HTTP 201)
/casos/{id}/andamentos
Lança um andamento na linha do tempo do processo. O autor é sempre quem usa o token. Aceita Idempotency-Key.
| Parâmetro | Descrição |
|---|---|
texto | obrigatório |
data | opcional, AAAA-MM-DD (padrão: hoje) |
documento_id | opcional — documento deste processo (ou da parte) ao qual o andamento se refere |
Resposta: id, data, texto (HTTP 201)
/casos/{id}/fase
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âmetro | Descrição |
|---|---|
fase_id | obrigatório — ver GET /ritos |
Resposta: caso_id, fase, prazo_criado
/casos/{id}
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}
/prazos
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âmetro | Descrição |
|---|---|
titulo | obrigatório |
data | obrigatório, AAAA-MM-DD |
hora | opcional HH:MM |
tipo | prazo (padrão) | audiencia | reuniao | tarefa |
caso_id | opcional |
fatal | opcional, true/false |
responsavel_id | opcional (vazio = herda do caso) |
documento_id | opcional — documento do processo ao qual o prazo se refere |
Resposta: o compromisso, no mesmo formato de GET /prazos (HTTP 201)
/casos/{id}/documentos
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)
/documentos/{id}
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
/ritos
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))
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.
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.