Rafobase Logo

Autenticação

Aprenda como autenticar com a API do Rafobase usando chaves de API e proteja suas requisições.

Autenticação

Todas as requisições de API ao Rafobase requerem autenticação. Este guia cobre como obter e usar suas credenciais de API com segurança.

Chaves de API

Rafobase usa chaves de API para autenticação. Cada chave é escopo de uma única conta de merchant.

Tipos de Chave

TipoPrefixoCaso de Uso
Ao Vivorfb_live_Ambiente de produção
Testerfb_test_Desenvolvimento e testes

Aviso de Segurança: Nunca exponha suas chaves de API em código cliente, repositórios públicos ou logs.

Obtendo Sua Chave de API

  1. Faça login no Painel do Rafobase
  2. Navegue para Configurações → Chaves de API
  3. Clique em Gerar Nova Chave
  4. Copie e armazene a chave com segurança

As chaves de API são mostradas apenas uma vez na criação. Se perdida, você precisará gerar uma nova e revogar a antiga.

Usando Chaves de API

Inclua sua chave de API no cabeçalho Authorization usando autenticação Bearer:

curl https://api.rafobase.com/v1/members \
  -H "Authorization: Bearer rfb_live_xxxxxxxxxxxxx"
const response = await fetch('https://api.rafobase.com/v1/members', {
  headers: {
    'Authorization': `Bearer ${process.env.RAFOBASE_API_KEY}`,
    'Content-Type': 'application/json',
  },
});
import requests
import os

response = requests.get(
    'https://api.rafobase.com/v1/members',
    headers={
        'Authorization': f'Bearer {os.environ["RAFOBASE_API_KEY"]}',
        'Content-Type': 'application/json',
    }
)

Variáveis de Ambiente

Armazene sua chave de API em variáveis de ambiente:

# .env (nunca faça commit deste arquivo)
RAFOBASE_API_KEY=rfb_live_xxxxxxxxxxxxx
RAFOBASE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxx

Exemplos de Framework

// Carregue de .env
require('dotenv').config();

const apiKey = process.env.RAFOBASE_API_KEY;
// As variáveis de ambiente do next.config.js são carregadas automaticamente
// Acesse apenas em rotas de API ou componentes de servidor
const apiKey = process.env.RAFOBASE_API_KEY;
import os
from dotenv import load_dotenv

load_dotenv()
api_key = os.getenv('RAFOBASE_API_KEY')

Verificação de Assinatura de Webhook

Ao receber webhooks, verifique a assinatura para garantir que a requisição é do Rafobase:

import crypto from 'crypto'

function verifyWebhookSignature(payload, signature, secret) {
  const expectedSignature = crypto.createHmac('sha256', secret).update(payload).digest('hex')

  return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expectedSignature))
}

// Em seu manipulador de webhook
app.post('/webhooks/rafobase', (req, res) => {
  const signature = req.headers['x-rafobase-signature']
  const isValid = verifyWebhookSignature(
    JSON.stringify(req.body),
    signature,
    process.env.RAFOBASE_WEBHOOK_SECRET
  )

  if (!isValid) {
    return res.status(401).json({ error: 'Assinatura inválida' })
  }

  // Processe o webhook...
})

Rotação de Chave

Periodicamente rotacione suas chaves de API por segurança:

  1. Gere uma nova chave
  2. Atualize sua aplicação para usar a nova chave
  3. Verifique que a nova chave funciona em produção
  4. Revogue a chave antiga

Configure lembretes de rotação de chave a cada 90 dias como melhor prática de segurança.

Limites de Taxa

As requisições de API são limitadas por taxa por chave de API:

PlanoLimite de Taxa
Gratuito100 requisições/minuto
Pro1.000 requisições/minuto
EnterprisePersonalizado

Os cabeçalhos de limite de taxa são inclusos em toda resposta:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640000000

Respostas de Erro

Erros de autenticação retornam status 401 Não Autorizado:

{
  "error": {
    "code": "unauthorized",
    "message": "Chave de API inválida ou ausente"
  }
}

Melhores Práticas de Segurança

  1. Nunca exponha chaves em código cliente
  2. Use variáveis de ambiente - Não codifique as chaves
  3. Restrinja permissões de chave - Use chaves de teste para desenvolvimento
  4. Monitore o uso de chave - Revise logs de API regularmente
  5. Rotacione chaves periodicamente - A cada 90 dias no mínimo
  6. Use assinaturas de webhook - Sempre verifique webhooks recebidos

Relacionado

On this page