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
Obtendo o Link de Pagamento
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
}
Utilizando o Link de Pagamento
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 : 12 px 24 px ;
background-color : #257264 ;
color : white ;
text-decoration : none ;
border-radius : 8 px ;
font-weight : bold ;
}
.btn-comprar:hover {
background-color : #005243 ;
}
</ style >
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
Salve o UUID no seu banco de dados
Sempre armazene o uuid do produto para referência futura. Você precisará dele para construir o link de pagamento.
Use URLs de retorno significativas
Configure URLs de retorno que entreguem valor ao cliente, como páginas de acesso ao produto ou instruções de próximos passos.
Teste antes de ir para produção
Use chaves sk_test_ para testar todo o fluxo antes de usar chaves de produção.
Configure webhooks para confirmaçã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