Visão Geral
A SDK Node.js da Garu permite integrar pagamentos PIX, Cartão de Crédito e Boleto no seu projeto com poucas linhas de código. A SDK abstrai a API REST, com tipos prontos e status simplificados.Os valores em dinheiro na SDK são em Reais (BRL decimal):
49.90 é R 4.990,00.Pré-requisito: Você precisa de uma chave de API. Veja como obter em
Autenticação.
Instalação
Inicialização
Produtos
Criar um produto
name, image e value na criação. O value segue esta regra:
Um produto sem preço serve para quem cobra de outro jeito, como por cobranças agendadas. Em um produto de assinatura (
isSubscription: true), envie value: 0: o preço fica nos preços de assinatura, que também têm mínimo de R$ 5,00.
Atualizar um produto
Ofertas
Uma oferta vende o mesmo produto por outro preço, com link próprio. Ela muda só o preço; o resto continua o do produto.value de uma oferta precisa ser de pelo menos R$ 5,00. Diferente do produto, uma oferta não pode ficar sem preço: 0 é recusado.
Cobranças
A cobrança é sempre de um produto: o preço vem do produto (ou da oferta), nunca da requisição.Criar uma cobrança PIX
Criar uma cobrança com cartão de crédito
Listar cobranças
Consultar uma cobrança
Reembolsar uma cobrança
Cancelar uma cobrança não paga
Clientes
Criar um cliente
Listar clientes
Consultar um cliente
Atualizar um cliente
Remover um cliente
Filtrar clientes em atraso
Cobranças agendadas
PIX e Boleto agendados para uma data futura. A Garu envia o e-mail no vencimento e alerta o time se atrasar. Disponível a partir do@garuhq/node 0.5.
Criar uma cobrança agendada
idempotencyKey (derivada de algo estável no seu sistema, como o id do
pedido) para que um retry após falha de rede não crie uma segunda série. Sem
ela, a SDK não envia chave nenhuma.
O amount precisa ser de pelo menos R$ 5,00, na cobrança avulsa e na
recorrente. Abaixo disso a API responde 400 (GaruValidationError). As
cobranças criadas antes dessa regra mantêm o valor e continuam sendo cobradas.
Listar e filtrar
Detalhes (cobrança + linha do tempo + transações)
Ações no ciclo de vida
Em
changePaymentMethod, o cartão precisa ser do mesmo cliente da série e
já cobrar uma cobrança sua para esse cliente: uma assinatura, uma cobrança
agendada ou uma tentativa anterior. Um cartão de outro cliente, ou que você
nunca cobrou, responde 404 (GaruNotFoundError), como um cartão que não existe.Chaves de Idempotência
Use chaves de idempotência para garantir que uma operação não seja executada duas vezes, mesmo em caso de retry:idempotencyKey: uma chave
nova a cada chamada não protege nada, porque o retry levaria outra chave.
Tratamento de Erros
400 — Dados inválidos
400 — Dados inválidos
Verifique os campos enviados. A resposta inclui detalhes sobre quais campos
estão incorretos.
401 — Chave de API inválida ou ausente
401 — Chave de API inválida ou ausente
Confira se a variável
GARU_API_KEY está definida e se a chave é válida.404 — Recurso não encontrado
404 — Recurso não encontrado
O ID informado não corresponde a nenhum recurso existente.
409 — Conflito de idempotência
409 — Conflito de idempotência
A chave de idempotência já foi usada com dados diferentes. Use uma chave
única por operação.
422 — Regra de negócio violada
422 — Regra de negócio violada
A requisição é válida mas viola uma regra de negócio (ex: status
incompatível). Um preço abaixo do mínimo de R$ 5,00 responde
400, não 422.429 — Rate limit excedido
429 — Rate limit excedido
Aguarde alguns segundos e tente novamente. Implemente backoff exponencial em
automações.
Recursos
Repositório GitHub
Código-fonte e documentação técnica
Pacote npm
@garuhq/node no npm
Próximos Passos
MCP Server
Conecte agentes de IA à API
Webhooks
Receba notificações de pagamento