{"openapi":"3.1.0","info":{"title":"odjud API","version":"1.0.0","summary":"Consulta, coleta e monitoramento de dados processuais públicos por API REST.","description":"API comercial da **odjud — uma solução da Orvya Digital Ltda (CNPJ 69.553.603/0001-17)**.\n\n- Autenticação: `Authorization: Bearer odj_<test|live>_…`. Chaves de teste usam a fonte **sandbox** (dados sintéticos, créditos sem valor).\n- Buscas são assíncronas: `202 Accepted` + `id`; acompanhe por `GET /v1/searches/{id}` (cabeçalho `Retry-After`) ou webhook `search.completed`.\n- Erros no formato RFC 9457 (`application/problem+json`) com `code` e `requestId`.\n- Datas/horas em ISO 8601 com offset/UTC; datas sem hora das fontes seguem o fuso America/Sao_Paulo.\n- Valores em créditos inteiros: **100 créditos = R$ 1,00**. Cada busca informa `billable`, `chargedCredits`, `currencyAmount`, `priceVersion` e o critério.\n- Estado atual das fontes: consulte `GET /v1/coverage`. Fontes sem direito de redistribuição respondem `403 SOURCE_NOT_COMMERCIALLY_ENABLED` **antes** de consultar e sem cobrança.","contact":{"name":"odjud — Orvya Digital Ltda","email":"odjud@orvya.net","url":"https://odjud.orvyadigital.com.br/contato"},"termsOfService":"https://odjud.orvyadigital.com.br/legal/termos-de-uso"},"servers":[{"url":"https://odjud-api.orvyadigital.com.br/v1","description":"Produção"}],"security":[{"bearer":[]}],"tags":[{"name":"Catálogo","description":"Saúde, cobertura, fontes, modalidades e preços (públicos)"},{"name":"Buscas","description":"Consultas assíncronas por CNJ, modalidade e OAB"},{"name":"Processos","description":"Leitura de resultados já entregues (sem nova consulta e sem cobrança)"},{"name":"Monitoramentos","description":"Acompanhamento periódico com webhook"},{"name":"Conta","description":"Saldo, extrato, uso, limites e faturas"},{"name":"Faturamento","description":"Compra de créditos"}],"paths":{"/health":{"get":{"tags":["Catálogo"],"security":[],"summary":"Saúde da API","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"time":{"type":"string","format":"date-time"},"version":{"type":"string"}},"required":["status","time"]}}}},"503":{"description":"Degradado","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/coverage":{"get":{"tags":["Catálogo"],"security":[],"summary":"Cobertura real por fonte (estado operacional e comercial)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Coverage"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/sources":{"get":{"tags":["Catálogo"],"security":[],"summary":"Fontes, instâncias, modalidades, bloqueios e última validação","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Source"}}},"required":["data"]}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/modalities":{"get":{"tags":["Catálogo"],"security":[],"summary":"Modalidades de consulta disponíveis e não disponíveis","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"notAvailable":{"type":"array","items":{"type":"string"}}},"required":["data"]}}}}}}},"/pricing":{"get":{"tags":["Catálogo"],"security":[],"summary":"Tabelas de preço publicadas e regras de faturamento","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pricing"}}}}}}},"/searches/process-number":{"post":{"tags":["Buscas"],"summary":"Busca por número CNJ (rota automática)","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Recomendado em toda ação faturável. Mesma chave + mesmo corpo → mesma operação, sem nova cobrança; mesma chave + corpo diferente → 409.","schema":{"type":"string","minLength":8,"maxLength":200,"pattern":"^[A-Za-z0-9_.:-]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessNumberInput"},"examples":{"capa":{"value":{"cnj":"1000001-73.2025.8.26.0100","detail":"cover"}}}}}},"responses":{"200":{"description":"Repetição idempotente","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"202":{"description":"Busca aceita (assíncrona)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"402":{"description":"Saldo insuficiente ou teto pós-pago","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency-Key reutilizada com outro corpo","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validação (ex.: dígito verificador)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/searches/modality":{"post":{"tags":["Buscas"],"summary":"Busca por tribunal, instância e número","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Recomendado em toda ação faturável. Mesma chave + mesmo corpo → mesma operação, sem nova cobrança; mesma chave + corpo diferente → 409.","schema":{"type":"string","minLength":8,"maxLength":200,"pattern":"^[A-Za-z0-9_.:-]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModalityInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"202":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"402":{"description":"Saldo insuficiente","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Conflito de idempotência","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validação","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/searches/oab":{"post":{"tags":["Buscas"],"summary":"Pesquisa por OAB/UF (lote assíncrono)","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Recomendado em toda ação faturável. Mesma chave + mesmo corpo → mesma operação, sem nova cobrança; mesma chave + corpo diferente → 409.","schema":{"type":"string","minLength":8,"maxLength":200,"pattern":"^[A-Za-z0-9_.:-]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OabInput"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"202":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"402":{"description":"Saldo insuficiente","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Conflito de idempotência","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validação","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/searches":{"get":{"tags":["Buscas"],"summary":"Lista buscas da conta (cursor)","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Search"}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"]}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/searches/{id}":{"get":{"tags":["Buscas"],"summary":"Estado da busca","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^srch_[a-z0-9]{22}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Não encontrada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/searches/{id}/results":{"get":{"tags":["Buscas"],"summary":"Resultados normalizados (cursor)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^srch_[a-z0-9]{22}$"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"search":{"type":"object"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Process"}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"]}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Não encontrada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/searches/{id}/cancel":{"post":{"tags":["Buscas"],"summary":"Cancela (antes da execução: sem cobrança)","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^srch_[a-z0-9]{22}$"}}],"responses":{"202":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Não encontrada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Já terminou","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/processes/{cnj}":{"get":{"tags":["Processos"],"summary":"Capa do processo já entregue à conta","parameters":[{"name":"cnj","in":"path","required":true,"description":"Número CNJ com ou sem máscara","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Process"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Ainda não consultado por esta conta","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/processes/{cnj}/movements":{"get":{"tags":["Processos"],"summary":"Andamentos já entregues","parameters":[{"name":"cnj","in":"path","required":true,"description":"Número CNJ com ou sem máscara","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"cnj":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Movement"}}}}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Não entregue","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/processes/{cnj}/publications":{"get":{"tags":["Processos"],"summary":"Publicações (DJEN) já entregues","parameters":[{"name":"cnj","in":"path","required":true,"description":"Número CNJ com ou sem máscara","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"cnj":{"type":"string"},"data":{"type":"array","items":{"type":"object"}}}}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/monitorings":{"post":{"tags":["Monitoramentos"],"summary":"Cria monitoramento (cobra o 1º período de 30 dias)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitoringInput"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Monitoring"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Já monitorado","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validação","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}},"get":{"tags":["Monitoramentos"],"summary":"Lista monitoramentos","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Monitoring"}}}}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/monitorings/{id}":{"patch":{"tags":["Monitoramentos"],"summary":"Pausa/retoma ou altera intervalo","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"enum":["ACTIVE","PAUSED"]},"intervalHours":{"type":"integer","minimum":6,"maximum":168}},"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Monitoring"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Não encontrado","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}},"delete":{"tags":["Monitoramentos"],"summary":"Encerra o monitoramento","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Encerrado"},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Não encontrado","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/me/balance":{"get":{"tags":["Conta"],"summary":"Saldo de créditos (disponível, reservado, devedor)","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Balance"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/me/transactions":{"get":{"tags":["Conta"],"summary":"Extrato do ledger","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","maximum":100}},{"name":"before","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"nextBefore":{"type":["integer","null"]}}}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/me/usage":{"get":{"tags":["Conta"],"summary":"Uso faturado por dia e produto","parameters":[{"name":"days","in":"query","schema":{"type":"integer","maximum":90}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/me/limits":{"get":{"tags":["Conta"],"summary":"Limites da chave e do faturamento","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/me/invoices":{"get":{"tags":["Conta"],"summary":"Faturas pós-pagas","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}}}}},"/billing/top-ups":{"post":{"tags":["Faturamento"],"summary":"Compra de créditos (Pix, boleto ou cartão pela fatura hospedada do Asaas)","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Recomendado em toda ação faturável. Mesma chave + mesmo corpo → mesma operação, sem nova cobrança; mesma chave + corpo diferente → 409.","schema":{"type":"string","minLength":8,"maxLength":200,"pattern":"^[A-Za-z0-9_.:-]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["credits"],"properties":{"credits":{"type":"integer","minimum":10000,"maximum":5000000},"billingType":{"enum":["PIX","BOLETO","CREDIT_CARD","UNDEFINED"]}},"additionalProperties":false}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payment"}}}},"400":{"description":"Requisição inválida","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Chave ausente, inválida, revogada ou expirada","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Sem escopo, conta suspensa ou fonte não habilitada para uso comercial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Limite de requisições","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"headers":{"Retry-After":{"schema":{"type":"integer"}}}},"503":{"description":"Pagamentos aguardando credencial","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"webhooks":{"search.completed":{"post":{"summary":"Busca concluída","description":"Assinatura: cabeçalho `Odjud-Signature: t=<unix>,v1=<hmac_sha256_hex(secret, t + '.' + corpo)>`. Rejeite `t` com mais de 5 minutos e deduplique por `Odjud-Event-Id`.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"responses":{"2XX":{"description":"Recebido"}}}},"monitoring.updated":{"post":{"summary":"Novos andamentos no processo monitorado","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"responses":{"2XX":{"description":"Recebido"}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"odj_<env>_<prefixo>_<segredo>"}},"schemas":{"Problem":{"type":"object","required":["type","title","status","code","requestId"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"},"requestId":{"type":"string"},"errors":{}}},"ProcessNumberInput":{"type":"object","required":["cnj"],"additionalProperties":false,"properties":{"cnj":{"type":"string","description":"20 dígitos, com ou sem máscara; dígito verificador conferido (mód. 97)"},"detail":{"enum":["cover","full"],"default":"cover"}}},"ModalityInput":{"type":"object","required":["cnj","court","grade"],"additionalProperties":false,"properties":{"cnj":{"type":"string"},"court":{"type":"string","description":"Código do conector (ver /v1/sources), ex.: TJSP, TJDFT, STJ"},"grade":{"enum":["G1","G2","TR","SUP"]},"detail":{"enum":["cover","full"],"default":"full"}}},"OabInput":{"type":"object","required":["oab","uf"],"additionalProperties":false,"properties":{"oab":{"type":"string","pattern":"^\\d{1,8}[A-Za-z]?$"},"uf":{"type":"string","minLength":2,"maxLength":2},"from":{"type":"string","format":"date"},"to":{"type":"string","format":"date"},"maxResults":{"type":"integer","minimum":1,"maximum":500,"default":100}}},"MonitoringInput":{"type":"object","required":["cnj","legalBasis"],"additionalProperties":false,"properties":{"cnj":{"type":"string"},"legalBasis":{"type":"string","minLength":10,"description":"Base legal/contratual declarada pelo cliente"},"intervalHours":{"type":"integer","minimum":6,"maximum":168,"default":24},"webhookEndpointId":{"type":"string"}}},"Search":{"type":"object","required":["id","object","kind","status","billing","links","createdAt"],"properties":{"id":{"type":"string"},"object":{"const":"search"},"kind":{"enum":["PROCESS_NUMBER","MODALITY","OAB"]},"status":{"enum":["QUEUED","RUNNING","SUCCEEDED","PARTIAL","NOT_FOUND","FAILED","CANCELED"]},"environment":{"enum":["test","live"]},"input":{"type":"object"},"source":{"type":"string"},"resultCount":{"type":"integer"},"completeness":{"type":["string","null"]},"cacheHit":{"type":"boolean"},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"detail":{"type":["string","null"]}}},"billing":{"type":"object","required":["billable","chargedCredits","currencyAmount","priceVersion"],"properties":{"product":{"type":"string"},"priceVersion":{"type":"string"},"chargeMode":{"enum":["PREPAID","POSTPAID","TEST"]},"unitCredits":{"type":"integer"},"reservedCredits":{"type":"integer"},"billable":{"type":["boolean","null"]},"chargedCredits":{"type":"integer"},"currencyAmount":{"type":"string"},"currency":{"const":"BRL"},"criterion":{"type":["string","null"]}}},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]},"links":{"type":"object"}}},"Movement":{"type":"object","properties":{"at":{"type":"string"},"description":{"type":"string"},"detail":{"type":["string","null"]},"sequence":{"type":["integer","null"]},"grade":{"type":["string","null"]}}},"Process":{"type":"object","required":["schemaVersion","cnj","completeness","missingFields","source","collectedAt","publicAccess","restrictions"],"properties":{"schemaVersion":{"const":"odjud.process.v1"},"cnj":{"type":"string"},"cnjFormatted":{"type":"string"},"court":{"type":["object","null"]},"system":{"type":["string","null"]},"grade":{"type":["object","null"]},"classe":{"type":["object","null"]},"subjects":{"type":"array"},"division":{"type":["string","null"]},"judge":{"type":["string","null"]},"status":{"type":["string","null"]},"filedAt":{"type":["string","null"]},"claimAmount":{"type":["number","null"]},"parties":{"type":"array","description":"Sem CPF/CNPJ (minimização)"},"movements":{"type":"array","items":{"$ref":"#/components/schemas/Movement"}},"movementsComplete":{"type":"boolean"},"completeness":{"enum":["COMPLETE","PARTIAL"]},"missingFields":{"type":"array","items":{"type":"string"}},"publicAccess":{"type":"boolean"},"restrictions":{"type":"array","items":{"type":"string"}},"source":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"official":{"type":"boolean"},"fallback":{"type":"boolean"}}},"collectedAt":{"type":"string"},"updatedAt":{"type":"string"}}},"Monitoring":{"type":"object","properties":{"id":{"type":"string"},"object":{"const":"monitoring"},"cnj":{"type":"string"},"status":{"type":"string"},"legalBasis":{"type":"string"},"intervalHours":{"type":"integer"},"lastCheckedAt":{"type":["string","null"]},"nextCheckAt":{"type":"string"}}},"Balance":{"type":"object","required":["available","reserved","owed"],"properties":{"environment":{"type":"string"},"unit":{"const":"credits"},"available":{"type":"integer"},"reserved":{"type":"integer"},"owed":{"type":"integer"},"availableBRL":{"type":"string"}}},"Payment":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"amount":{"type":"string"},"credits":{"type":"integer"},"billingType":{"type":"string"},"invoiceUrl":{"type":["string","null"]}}},"Source":{"type":"object","required":["key","operationalStatus","commercialStatus"],"properties":{"key":{"type":"string"},"name":{"type":"string"},"grades":{"type":"array"},"modalities":{"type":"array"},"operationalStatus":{"type":"string"},"commercialStatus":{"enum":["COMERCIALIZAVEL","NAO_COMERCIALIZAVEL"]},"commercialReason":{"type":["string","null"]},"lastValidation":{}}},"Coverage":{"type":"object","required":["summary","sources"],"properties":{"summary":{"type":"object"},"sources":{"type":"array"}}},"Pricing":{"type":"object","required":["unit","tables"],"properties":{"unit":{"const":"credits"},"creditValueBRL":{"type":"string"},"billingRules":{"type":"object"},"tables":{"type":"array"}}},"Event":{"type":"object","required":["id","type","createdAt","data"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"createdAt":{"type":"string"},"environment":{"type":"string"},"data":{"type":"object"}}}}}}