Vetores de teste

Valide assinatura de requisição (ES256 e PS256) e HMAC de webhook offline, sem credencial.

Os valores abaixo são gerados e verificados pelo mesmo código que valida em produção (internal/reqsign). Se a sua implementação reproduz estas assinaturas, ela vai passar no gateway.

Chave RSA de teste

A chave privada PS256 publicada aqui existe só para você reproduzir o vetor. Ela nunca foi cadastrada em credencial nenhuma; não a use para nada além deste teste.

Assinatura de requisição

Os dois algoritmos assinam a mesma string canônica (LF entre linhas, sem newline no fim):

POST
/v1/accounts/acc-123/pix/payments
1789412400
4f1e3b7a-9d2c-4a11-8f55-2b0c6a7d1e90
612612d208fb618eb2b007d2a7f8d7a1cfb511532389298f1cc33322c3094bcc
CampoValor
methodPOST
path?query/v1/accounts/acc-123/pix/payments
X-Request-Timestamp1789412400
Idempotency-Key4f1e3b7a-9d2c-4a11-8f55-2b0c6a7d1e90
body{"amount":1000}
X-Content-SHA256612612d208fb618eb2b007d2a7f8d7a1cfb511532389298f1cc33322c3094bcc
CampoValor
kidcfe8291443215153e11b76a7a533dd3c
jti00000000-0000-4000-8000-000000000001

Chave pública (SPKI PEM)

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6VuQL7n18jc/8dHENPXeHZrdCVPu
q2j496awbvsDhxWTVj3hBScPI9MioPmlfS9nNUo9MJhTDNMfVRUALXXrfg==
-----END PUBLIC KEY-----

JWS destacada (X-Request-Signature)

eyJhbGciOiJFUzI1NiIsImtpZCI6ImNmZTgyOTE0NDMyMTUxNTNlMTFiNzZhN2E1MzNkZDNjIiwianRpIjoiMDAwMDAwMDAtMDAwMC00MDAwLTgwMDAtMDAwMDAwMDAwMDAxIn0..hN37T9veyWLyXnEvXqnPwFIsD1GzgKfoY_bHzkc3rx3-MZCNhVaIVq1W_P77g8Dfw6IJ09wBddu6bhNQkGulvQ

A assinatura ES256 tem 64 bytes (R||S, ieee-p1363). DER não confere.

Assinatura HMAC de webhook

Com authType: HMAC, cada entrega leva X-Signature = base64(HMAC_SHA256(secret, corpo_bruto)). Calcule sobre os bytes exatos recebidos — nunca sobre JSON reserializado.

CampoValor
secretwhsec_test_0123456789abcdef0123456789abcdef
X-SignatureJNDRKgQ0ApKBavDOoLYfNnQHhFXUN6RhEspaqKf5fX8=

Corpo bruto

{"id":"pix-in-E0000000020251229211433912","type":"pix.in.completed","occurredAt":"2025-12-29T21:14:33.912Z","schemaVersion":"1.0","environment":"sandbox","tenantId":"tenant-acme","accountId":"acc_123456","data":{"transactionId":"2ee948cb-4e03-43d1-b202-b7fb31d5b016","endToEnd":"E0000000020251229211433912","amount":150.5,"status":"SUCCESS"}}