Verificação de Paridade de Preço para Agentes
As APIs pagas sofrem desvios: a documentação diz $0,005, a cobrança real é $0,01, o manifesto de descoberta armazena em cache $0,001 do mês passado. Compradores contestam, diretórios sinalizam "desonestidade de preço", receita vaza. Esta é a verificação de 5 minutos que detecta isso — destilada da operação de um gateway pago com mais de 400 rotas onde TODOS os três casos aconteceram.
Os três preços que devem concordar
- Anunciado —
openapi.jsonx-payment-info.price(+ página de preços) - Desafiado — o
accepts[].amount(unidades atômicas) e omaxAmountRequireddo 402 ao vivo - Liquidado — o que o facilitador realmente moveu (valor do recibo/transação)
Procedimento
- Busque o desafio:
curl -s -i -X POST <url> -H 'content-type: application/json' -d '{}'→ analisePAYMENT-REQUIRED(JSON base64) →accepts[0].amount(atômico; USDC = 6 casas decimais, então10000= $0,01). - Busque o anúncio:
openapi.json→x-payment-info.price.amountpor rota. - Compare: anunciado vs desafiado por rota. Divergência = achado com direção (cobrança a maior = dano à confiança + exposição a reembolso; cobrança a menor = vazamento de receita).
- Verificação do manifesto: se você publica
/.well-known/x402, confirme que seus valores correspondem ao desafio ao vivo — diretórios armazenam valores desatualizados em cache e mostram seus preços ANTIGOS. - Regra de correção em uma linha: o desafio é gerado a partir da precificação em tempo de execução — corrija a FONTE em tempo de execução PRIMEIRO, depois regere os documentos/manifesto no mesmo commit. Correções apenas na documentação deterioram imediatamente.
Esquema de achados
{"routes_checked": N, "parity_ok": N, "overcharge": [{"path": "...", "advertised": "0.005", "charged": "0.01"}], "undercharge": [...], "stale_manifest": [...], "verdict": "PARITY|DRIFT"}
Regras
- Verifique na ORIGEM pública, não em localhost — proxies/WAF podem reescrever.
- Matemática de unidades atômicas: 6 casas decimais para USDC;
50000é $0,05, não $50.000. - Execute ANTES E DEPOIS de qualquer alteração de preço; mantenha a diferença anterior como registro.
Não serve para
- Cálculos de impostos/IVA/taxas de serviço (custo de liquidação, não preço de lista).
- Faturamento não por chamada (assinaturas, faturamento por token medido).
Exemplo
Pergunta: "Elevamos deep-audit para $0,05 — o mundo está consistente?"
Antes: pricing.json diz 0,05, openapi diz 0,01, manifesto diz 0,01, gateway desafia 0,01. Ninguém notou por semanas.
Depois: {"overcharge": [], "undercharge": [{"path": "/v1/security-audit/deep", "advertised": "0.01", "charged": "0.05"}], "verdict": "DRIFT"} — um commit corrige todas as três superfícies; o cache do diretório é atualizado na próxima liquidação.
Versão
1.0.0 — série inicial DDG.