Skip to main content

Visão Geral

Antes de processar pagamentos reais, siga este checklist para garantir que sua integração está pronta para produção.
Pagamentos em produção são reais. Certifique-se de testar completamente antes de usar chaves sk_live_.

Checklist de Produção

1. Autenticação

Veja a documentação de Autenticação para entender o sistema de chaves de API.
1

Crie chaves de produção

No Dashboard, vá em ConfiguraçõesDesenvolvedores e crie uma chave sk_live_.
2

Configure variáveis de ambiente

Armazene suas chaves de forma segura:
# .env.production
GARU_API_KEY=sk_live_sua_chave_producao
WEBHOOK_SECRET=seu_segredo_webhook
3

Nunca exponha chaves no frontend

Verifique que nenhuma chave aparece em código JavaScript do cliente ou em repositórios públicos.

2. Produtos

Veja a API de Produtos para criar e gerenciar produtos.
  • Todos os produtos criados com chaves sk_live_
  • Preços corretos (conferir valores)
  • Descrições e nomes revisados
  • Imagens funcionando (URLs públicas)
  • URLs de retorno apontando para produção

3. Webhooks

Consulte a documentação de Webhooks para implementação completa.
1

Configure o endpoint de produção

Use uma URL HTTPS do seu servidor de produção:
https://seusite.com/webhooks/garu
2

Valide assinaturas

Implemente validação de assinatura para todos os webhooks:
const crypto = require('crypto');

function validarAssinatura(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(JSON.stringify(payload))
    .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}
3

Implemente idempotência

Evite processar o mesmo webhook duas vezes:
async function processarWebhook(data) {
  const jaProcessado = await verificarProcessado(data.id);
  if (jaProcessado) return;

  await processarPagamento(data);
  await marcarComoProcessado(data.id);
}
4

Responda rapidamente

Retorne 200 em menos de 5 segundos. Processe lógica pesada de forma assíncrona.

4. Tratamento de Erros

Consulte a Solução de Problemas para erros comuns e soluções.
  • Retry com backoff exponencial para erros 429
  • Logs detalhados para debugging
  • Alertas para erros críticos
  • Fallback para falhas de webhook
async function criarProdutoComRetry(dados, tentativas = 3) {
  for (let i = 0; i < tentativas; i++) {
    try {
      return await criarProduto(dados);
    } catch (error) {
      if (error.status === 429 && i < tentativas - 1) {
        await sleep(Math.pow(2, i) * 1000);
        continue;
      }
      throw error;
    }
  }
}

5. Segurança

  • HTTPS em todos os endpoints
  • Chaves de API em variáveis de ambiente
  • Validação de assinatura em webhooks
  • Logs não expõem dados sensíveis
  • Acesso ao Dashboard com 2FA habilitado

6. Monitoramento

Logs

Configure logs para todas as requisições à API e webhooks recebidos.

Alertas

Configure alertas para erros de pagamento e falhas de webhook.

Dashboard

Monitore transações e métricas no Dashboard da Garu.

Uptime

Monitore a disponibilidade do seu endpoint de webhook.

Testes Finais

Antes de ir ao ar, execute estes testes:

Teste de Pagamento Completo

1

Crie um produto de teste

Com chave sk_live_, crie um produto de R$ 5,00 (valor mínimo).
2

Complete um pagamento real

Use seu próprio cartão ou PIX para fazer um pagamento real.
3

Verifique o webhook

Confirme que seu servidor recebeu e processou o webhook corretamente.
4

Verifique a entrega

Confirme que o acesso foi liberado ou o produto foi entregue.
5

Teste o estorno

Solicite estorno pelo Dashboard e verifique se seu sistema trata corretamente.

Teste de Falhas

  • Testar comportamento quando webhook falha
  • Testar rate limiting (429)
  • Testar com chave inválida
  • Testar com dados inválidos

Migração de Teste para Produção

// config.js
const config = {
  development: {
    apiKey: process.env.GARU_TEST_KEY,
    baseUrl: 'https://garu.com.br/api'
  },
  production: {
    apiKey: process.env.GARU_LIVE_KEY,
    baseUrl: 'https://garu.com.br/api'
  }
};

module.exports = config[process.env.NODE_ENV || 'development'];
A URL base é a mesma para teste e produção. A diferença está apenas na chave de API usada.

Pós-Lançamento

Primeiros Dias

  • Monitore de perto todas as transações
  • Verifique se webhooks estão sendo recebidos
  • Responda rapidamente a problemas reportados

Manutenção Contínua

  • Rotacione chaves de API periodicamente
  • Mantenha logs por pelo menos 90 dias
  • Revise métricas de conversão
  • Atualize integrações conforme necessário

Suporte

Se encontrar problemas em produção:
  1. Verifique os logs do seu servidor
  2. Consulte a Solução de Problemas
  3. Acesse o Dashboard para ver status das transações
  4. Entre em contato: contato@garu.com.br

Suporte Técnico

Nossa equipe está disponível para ajudar com sua integração.