Ir para o conteúdo
ReboundDLQDesenvolvedores
Rebound DLQDocumentação

Assinatura e criptografia

Prepare o payload, serialize uma vez e assine exatamente o que será enviado.

01 — Criptografe o JSON do payload

Derive a chave como os primeiros 32 caracteres da representação Base64 do SHA-256 do segredo. Converta esses caracteres em bytes UTF-8: não use o hash binário nem decodifique essa Base64.

Gere um IV aleatório novo de 16 bytes para cada nova captura. Criptografe o JSON UTF-8 com AES-256-CBC e padding PKCS#7. O campo payload é o IV hexadecimal, dois-pontos e o conteúdo criptografado hexadecimal.

Pseudocódigo
key = UTF8(first32(Base64(SHA256(secret))))
payload = hex(iv) + ":" + hex(AES_256_CBC_PKCS7(key, iv, jsonPayload))

02 — Assine o corpo final

Monte o objeto de captura com payload já criptografado e serialize em JSON uma única vez. A assinatura hexadecimal é o HMAC-SHA256 de timestamp + "." + corpo, usando o segredo como chave. Envie exatamente esses bytes.

Pseudocódigo
signature = hex(HMAC_SHA256(secret, timestamp + "." + body))

03 — Preserve a identidade nos reenvios

Mantenha o mesmo eventId e o mesmo corpo completo, inclusive IV e payload criptografado. Atualize apenas o timestamp do header e a assinatura de cada tentativa. Recriptografar muda o corpo e pode causar conflito com o comprovante existente.

Dados sensíveis

A criptografia do payload não substitui HTTPS. error e os campos de fluxo ficam fora do payload criptografado. Remova senhas, tokens e dados desnecessários antes de capturar; o backend precisa descriptografar o payload para os recursos do produto.

Rebound DLQ · Documentação para desenvolvedores
Termos de uso