API pública
Contagem de prazos para equipas jurídicas portuguesas
Calcula prazos, sincroniza processos e recebe eventos assinados por webhook com contratos versionados por data.
Motor atual: 2.2.1. A versão corrige transferências de prazos processuais em dias que atravessam férias judiciais, sem alterar o contrato da API.
Os prazos podem incluir o estado archived. As listagens preservam os registos arquivados; os calendários omitem esses prazos.
Contrato
Cada chave de API continua ligada à equipa que a emitiu. Mudar o workspace no portal não altera o âmbito da chave. Criar equipas e gerir links de entrada exige sessão Better Auth no portal. Cada conta guarda a sua equipa ativa. Após a migração, é necessário iniciar sessão novamente.
Calcular prazo
curl -X POST https://contarprazos.pt/api/deadline-calculations \
-H "Authorization: Bearer $PRAZOS_API_KEY" \
-H "X-Prazos-API-Version: 2026-05-19" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2026-05-04",
"amount": 10,
"unit": "dias",
"kind": "processual",
"notificationKind": "nenhuma"
}'Sincronizar processo
curl -X POST https://contarprazos.pt/api/processes/sync \
-H "Authorization: Bearer $PRAZOS_API_KEY" \
-H "X-Prazos-API-Version: 2026-05-19" \
-H "Idempotency-Key: process-kleos-123-v1" \
-H "Content-Type: application/json" \
-d '{
"externalId": "kleos-123",
"name": "Processo principal",
"tags": ["civil"]
}'SDK TypeScript
import { PrazosClient } from "@prazos/sdk";
const client = new PrazosClient({ apiKey: process.env.PRAZOS_API_KEY! });
const { calculation } = await client.deadlines.calculate({
startDate: "2026-05-04",
amount: 10,
unit: "dias",
kind: "processual",
});
console.log(calculation.deadline, calculation.rulesVersion);Webhooks
Entregas usam X-Prazos-Signature no formato t=<unix>,v1=<hmac>. O HMAC é SHA-256 sobre <unix>.<body> com o segredo mostrado na criação do webhook.
Callbacks de notificações
O callback de estado da Twilio aceita apenas formulários assinados em X-Twilio-Signature. O recetor provider-neutral exige um bearer token dedicado em NOTIFICATION_EVENTS_SECRET; ambos permanecem fechados quando a respetiva configuração não existe.