API VeraTrace — programadores
A camada de prova alimentar, em REST. Atestações assinadas Ed25519, árvore de Merkle, passaporte de produto em formato DPP — verificáveis sem conta VeraTrace. Os endpoints do anel 1 abaixo chamam-se sem qualquer chave: copie, cole, teste.
Experimentar agora
Não é necessária nenhuma inscrição para a primeira chamada. A chave serve depois para levantar a quota anónima e abrir os referenciais do anel 2.
# Anel 1 — nenhuma chave necessária. Experimente já.
curl "https://veratrace.eu/api/recalls/check/3017620422003"
# → {"ok":true,"recalled":false,"recallCheck":"ok","matches":[]}
# Anel 1 — passaporte de produto (DPP), formato JSON-LD
# O lote «demo» é um passaporte de DEMONSTRAÇÃO: o documento
# declara-o ("demonstration": true) e não contém nenhuma atestação.
curl "https://veratrace.eu/api/dpp/demo"
# Anel 1 — análise de GS1 Digital Link (superfície Java)
curl "https://api.veratrace.eu/api/public/v1/gs1/digital-link/parse?url=https://veratrace.eu/01/03123456789012/21/ABC"
# Anel 1 — verificar uma atestação, sem chave nem conta.
# A assinatura Ed25519, a ancoragem e a prova de inclusão são REAIS; apenas o
# sujeito é fictício. A chave pública é servida por /attestations/trust-anchors.
curl "https://veratrace.eu/api/attestations/0571db99-cc4e-4c00-8bc7-974e50ad89df/verify"
# Anel 2 — chave necessária, scope «read»
curl "https://veratrace.eu/api/ciqual/lookup?q=carotte" \
-H "X-VeraTrace-Api-Key: vt_live_A_SUA_CHAVE"
# A mesma chave também funciona como Bearer — rigorosamente equivalente
curl "https://veratrace.eu/api/inao/lookup?q=comte" \
-H "Authorization: Bearer vt_live_A_SUA_CHAVE"Autenticação
Uma chave de programador escreve-se vt_live_… e passa-se de duas formas, rigorosamente equivalentes:
X-VeraTrace-Api-Key: vt_live_…Authorization: Bearer vt_live_…
Uma chave presente mas inválida nunca é degradada para acesso anónimo: devolve 401. As respostas autenticadas incluem X-RateLimit-Remaining-Minute, X-RateLimit-Remaining-Day e X-RateLimit-Reset. Um excesso devolve 429 RATE_LIMITED com Retry-After, um scope em falta devolve 403 INSUFFICIENT_SCOPE.
Três anéis de acesso
Cada endpoint aberto pertence a exatamente um anel, que fixa a sua autenticação e a sua quota.
Verificação de atestações, passaporte de produto (DPP), recolhas por EAN, resolução GS1.
Nenhuma. A chave não altera os seus direitos: substitui a quota por IP pela do seu escalão e atribui a utilização à sua conta.
Referenciais enriquecidos: CIQUAL, e-Phy, RPG, DECP, INAO, aprovações, comparador de preços, feed de recolhas.
Chave de programador, scope «read».
Fidelização (earn / redeem), leituras da cadeia de frio, captura EPCIS 2.0.
Chave de programador + scope de escrita ativado na criação: loyalty:write, cold-chain:write, epcis:capture ou qr:write.
Duas bases de URL
A plataforma expõe duas superfícies distintas. Os referenciais do anel 2, as recolhas e o DPP só respondem na base BFF, sem o prefixo /api/public/v1. Cada operação da especificação indica a sua.
https://api.veratrace.eu/api/public/v1https://veratrace.eu/apiUm ambiente de testes (api-sandbox.veratrace.eu) está declarado na especificação a título de roteiro. Ainda não está disponibilizado — não o utilize.
Ir mais longe
Obter uma chave
A criação é self-service e imediata: basta uma conta, sem validação manual. O escalão Free é atribuído por defeito. A chave só é apresentada uma vez.