Assinatura

Todas as requisições são autenticadas via **HMAC SHA256**, garantindo segurança, integridade e proteção contra replays.

🔐 Autenticação via HMAC

Cada requisição deve conter os seguintes headers:

Header
Tipo
Descrição

x-client-id

string

Identificador exclusivo do parceiro

x-timestamp

string

Timestamp UNIX (em segundos) da requisição

x-signature

string

Assinatura HMAC gerada com o clientSecret

🧾 Como gerar a assinatura

A stringToSign usada para gerar a assinatura deve seguir a seguinte ordem exata:

METHOD + PATH + TIMESTAMP + CLIENT_ID + BODY

  • METHOD: método HTTP da requisição (ex: POST)

  • PATH: caminho da URL (ex: /api/partners/get-dolar)

  • TIMESTAMP: UNIX timestamp válido em segundos, com até 5 minutos de tolerância

  • CLIENT_ID: mesmo valor enviado no header x-client-id

  • BODY: conteúdo da requisição serializado com JSON.stringify() (mesmo que vazio {})

import CryptoJS from "crypto-js";
const method = "POST";
const path = "/api/partners/get-dolar";
const timestamp = "1746924610";
const clientId = "...";
const body = JSON.stringify({ usdtAmount: 10, quoteType: "DEPOSIT" });
const stringToSign = method + path + timestamp + clientId + body;
const clientSecret = "yourClientSecret";
const signature = CryptoJS.HmacSHA256(stringToSign, clientSecret).toString(CryptoJS.enc.Hex);

Last updated

Was this helpful?