Skip to main content
DELETE
/
api
/
transactions
/
{id}
Cancelar Transação
curl --request DELETE \
  --url https://garu.com.br/api/transactions/{id} \
  --header 'Authorization: Bearer <token>'

Visão Geral

Cancele uma transação que ainda não foi paga. Este endpoint só funciona para transações com status pendente (pendingBoleto ou pendingPix).
Para transações já pagas, use o endpoint de Reembolso.

Exemplo de Requisição

curl -X DELETE https://garu.com.br/api/transactions/12345 \
  -H "Authorization: Bearer sk_test_sua_chave_api"

Resposta de Sucesso (200 OK)

true
A resposta é true indicando que a transação foi cancelada com sucesso.

Quando Usar

  • Cliente desistiu da compra antes de pagar
  • Boleto gerado por engano
  • PIX não foi pago dentro do prazo esperado
  • Transação duplicada

Erros Comuns

{
  "statusCode": 400,
  "message": "Transaction cannot be cancelled"
}
Solução: Apenas transações pendentes podem ser canceladas. Se a transação já foi paga, use o endpoint de reembolso.
{
  "statusCode": 404,
  "message": "Transaction not found"
}
Solução: Verifique se o ID da transação está correto.

Exemplo: Cancelar Transações Pendentes Antigas

async function cancelarTransacoesPendentesAntigas(diasAntigos = 7) {
  // Buscar transações pendentes
  const response = await fetch(
    'https://garu.com.br/api/transactions?status=pendingBoleto&limit=100',
    {
      headers: {
        'Authorization': `Bearer ${process.env.GARU_API_KEY}`
      }
    }
  );

  const { data: transacoes } = await response.json();
  const agora = new Date();
  const canceladas = [];

  for (const tx of transacoes) {
    const criacao = new Date(tx.createdAt);
    const diasPassados = (agora - criacao) / (1000 * 60 * 60 * 24);

    if (diasPassados > diasAntigos) {
      await fetch(
        `https://garu.com.br/api/transactions/${tx.id}`,
        {
          method: 'DELETE',
          headers: {
            'Authorization': `Bearer ${process.env.GARU_API_KEY}`
          }
        }
      );
      canceladas.push(tx.id);
    }
  }

  console.log(`${canceladas.length} transações canceladas`);
  return canceladas;
}

Próximos Passos

Reembolsar

Reembolse transações já pagas

Listar Transações

Consulte todas as transações