Skip to main content

Visão Geral

Após criar um produto, você recebe um uuid que é usado para construir o link de pagamento. Este link pode ser compartilhado diretamente com seus clientes para que eles realizem o pagamento.
https://garu.com.br/pay/{uuid}
Exemplo: https://garu.com.br/pay/a1b2c3d4-e5f6-7890-abcd-ef1234567890

Método 1: Na Criação do Produto

Quando você cria um produto via API, a resposta inclui o campo uuid:
const response = await fetch('https://garu.com.br/api/products', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.GARU_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'Meu Produto',
    description: 'Descrição do produto',
    value: 99.90,
    pix: true,
    creditCard: true,
    boleto: true,
    installments: 6
  })
});

const product = await response.json();
const paymentLink = `https://garu.com.br/pay/${product.uuid}`;

console.log(paymentLink);
// https://garu.com.br/pay/a1b2c3d4-e5f6-7890-abcd-ef1234567890

Método 2: Consultando um Produto Existente

Se você já tem um produto criado, consulte-o pelo UUID:
# Endpoint público - não requer autenticação
curl -X GET https://garu.com.br/api/products/a1b2c3d4-e5f6-7890-abcd-ef1234567890
Resposta:
{
  "id": 123,
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "Meu Produto",
  "value": 99.90,
  ...
}

Método 3: Listando Todos os Produtos

Recupere todos os seus produtos e seus UUIDs:
curl -X GET https://garu.com.br/api/products \
  -H "Authorization: Bearer sk_test_sua_chave_api"
Resposta:
{
  "data": [
    {
      "id": 123,
      "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "Curso de Marketing Digital",
      "value": 297.00
    },
    {
      "id": 124,
      "uuid": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
      "name": "E-book Python",
      "value": 47.00
    }
  ],
  "count": 2,
  "page": 1,
  "totalPages": 1
}

Compartilhamento Direto

Envie o link diretamente para seus clientes via:
  • Email
  • WhatsApp
  • Redes sociais
  • SMS

Incorporando no seu Site

<a href="https://garu.com.br/pay/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
   class="btn-comprar">
  Comprar Agora - R$ 297,00
</a>

<style>
.btn-comprar {
  display: inline-block;
  padding: 12px 24px;
  background-color: #257264;
  color: white;
  text-decoration: none;
  border-radius: 8px;
  font-weight: bold;
}
.btn-comprar:hover {
  background-color: #005243;
}
</style>

Abrindo em Popup

Para uma experiência de checkout mais integrada:
function abrirCheckout(uuid) {
  const width = 500;
  const height = 700;
  const left = (window.innerWidth - width) / 2;
  const top = (window.innerHeight - height) / 2;

  window.open(
    `https://app.garu.com.br/${uuid}`,
    'GaruCheckout',
    `width=${width},height=${height},left=${left},top=${top}`
  );
}

URL de Retorno Personalizada

Configure para onde o cliente será redirecionado após o pagamento:
{
  "name": "Curso de Marketing Digital",
  "value": 297.00,
  "pix": true,
  "creditCard": true,
  "boleto": true,
  "installments": 12,
  "returnUrl": "https://meusite.com.br/obrigado",
  "returnUrlButtonText": "Acessar Curso"
}
Após o pagamento, o cliente verá um botão com o texto “Acessar Curso” que redireciona para https://meusite.com.br/obrigado.
Use a URL de retorno para direcionar o cliente para uma página de agradecimento ou para entregar o acesso ao produto.

Fluxo Completo

const GARU_BASE_URL = 'https://garu.com.br/pay';

async function criarProdutoEObterLink(dadosProduto) {
  // 1. Criar o produto
  const response = await fetch('https://garu.com.br/api/products', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.GARU_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(dadosProduto)
  });

  if (!response.ok) {
    throw new Error('Falha ao criar produto');
  }

  const product = await response.json();

  // 2. Construir o link de pagamento
  const paymentLink = `${GARU_BASE_URL}/${product.uuid}`;

  // 3. Retornar produto e link
  return {
    produto: product,
    linkPagamento: paymentLink,
    uuid: product.uuid
  };
}

// Uso
const resultado = await criarProdutoEObterLink({
  name: 'Curso de Marketing Digital',
  description: 'Aprenda marketing digital',
  value: 297.00,
  pix: true,
  creditCard: true,
  boleto: true,
  installments: 12,
  returnUrl: 'https://meusite.com.br/obrigado',
  returnUrlButtonText: 'Acessar Curso'
});

console.log(`Produto criado: ${resultado.produto.name}`);
console.log(`Link de pagamento: ${resultado.linkPagamento}`);

Boas Práticas

Sempre armazene o uuid do produto para referência futura. Você precisará dele para construir o link de pagamento.
Configure URLs de retorno que entreguem valor ao cliente, como páginas de acesso ao produto ou instruções de próximos passos.
Use chaves sk_test_ para testar todo o fluxo antes de usar chaves de produção.
Não dependa apenas do retorno do cliente. Configure webhooks para receber confirmação de pagamento do servidor.

Próximos Passos

Webhooks

Receba notificações de pagamento em tempo real

Exemplos de Código

Veja implementações completas em várias linguagens