🧾 Crie uma Assinatura para o seu ID de Conta
Gere uma assinatura codificada em Base64 para o seu ID de conta usando sua chave privada explicada no Gerenciamento de Api:
Para Linux, Git Bash ou WSL:
ACCOUNT_ID="YOUR_ACCOUNT_ID"
TIMESTAMP=$(date +%s)
PAYLOAD="${ACCOUNT_ID}:${TIMESTAMP}"
SIGNATURE=$(echo -n "$PAYLOAD" | openssl dgst -sha256 -sign private_key.pem | base64 -w 0)
echo "timestamp: $TIMESTAMP"
echo "authorization: $SIGNATURE"
Para MacOS (se -w 0
não for suportado):
ACCOUNT_ID="YOUR_ACCOUNT_ID"
TIMESTAMP=$(date +%s)
PAYLOAD="${ACCOUNT_ID}:${TIMESTAMP}"
SIGNATURE=$(echo -n "$PAYLOAD" | openssl dgst -sha256 -sign private_key.pem | base64 tr -d)
echo "timestamp: $TIMESTAMP"
echo "authorization: $SIGNATURE"
Substitua ACCOUNT_ID
pelo seu ID de conta real e gere um timestamp baseado em segundos TIMESTAMP
. Isso gera uma string codificada em Base64 usada como assinatura, que expira programaticamente após cada requisição.
Obs: no ambiente de homologação o tempo de expiração é diário, mas na rota de produção sua duração é baseada em segundos.
📨 Passo 2 — Inclua a Assinatura na Requisição HTTP
Adicione os seguintes cabeçalhos às suas requisições HTTP para validação:
authorization
: Sua assinatura codificada em Base64 gerada no Passo 3.accountid
: Seu ID de conta real (o mesmo usado para gerar a assinatura).timestamp
: O timestamp gerado no momento da criação da hash de autenticação, deve ser dinamica e gerado a cada requisição.
Os cabeçalhos seguem padrão de protocolo HTTP/2 que especifica que todos os nomes de cabeçalhos HTTP devem ser enviados em letras minúsculas
🚀 Processo de Validação
A função valida cada requisição verificando se a assinatura fornecida no cabeçalho authorization
corresponde ao seu accountid
, utilizando sua chave pública carregada na plataforma e timestamp
para ter uma expiração.