Versionamento semântico. Breaking changes (campos renomeados, endpoints removidos, esquema de autenticação alterado) ocorrem somente em uma nova versão major, sob novo prefixo de URL /v2/. Dentro de /v1/ acontecem apenas mudanças aditivas (novos campos opcionais, novos endpoints).
v1.1.0 (2026-09-23)
- POST /v1/orders: config_options só aceita opções e valores visíveis na loja e quantidades dentro dos respetivos limites. As opções visíveis que omitir recebem o primeiro valor listado, exatamente como na loja. GET /v1/products/{id} lista apenas opções encomendáveis e devolve quantity.min e quantity.max.
- Novo estado de encomenda awaiting_setup com o campo awaiting_setup para produtos que a equipa KernelHost configura manualmente. Os serviços aprovisionados automaticamente são aprovisionados exatamente uma vez.
- Os bodies dos pedidos estão limitados a 64 KB (HTTP 413). Aplica-se um limite de 120 pedidos por minuto por conta, em todas as chaves, e uma conta pode ter até 20 chaves ativas. Uma autenticação falhada já não bloqueia nenhuma chave e o Idempotency-Key fica associado ao método e ao caminho.
- Os pedidos com mais de um parâmetro na query string (por exemplo GET /v1/services?limit=10&offset=0) eram rejeitados com HTTP 401. A assinatura passa a abranger a query string exatamente como documentado.
v1.0.0 (2026-05-14)
- Lançamento inicial. Todos os 15 endpoints, autenticação HMAC, armazenamento de segredos AES-GCM, limites de taxa, idempotência, log de auditoria.
- GET
/v1/me,/v1/products,/v1/products/{id} - POST
/v1/orders, GET/v1/orders/{id} - GET
/v1/services,/v1/services/{id},/v1/services/{id}/credentials - POST
/v1/services/{id}/actions - GET
/v1/billing/balance,/v1/billing/invoices,/v1/billing/invoices/{id}/pdf - GET/PUT
/v1/webhooks - HMAC-SHA256 signing, AES-256-GCM secret storage, replay protection, idempotency.

