Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.usealpa.com/llms.txt

Use this file to discover all available pages before exploring further.

Visão geral

As Transações representam todas as operações de pagamento realizadas através da Alpa Gateway API. Cada transação contém informações completas sobre o pagamento, incluindo método utilizado, status, valores e dados do cliente.

Pré-requisitos

Antes de começar, você precisa:
  • Uma conta ativa na Alpa
  • Sua API Key configurada (veja Autenticação)
  • Conhecimento básico de APIs REST

Funcionalidades

  • Múltiplos métodos de pagamento: PIX, Cartão de Crédito/Débito, Boleto
  • Rastreamento em tempo real: Acompanhe o status de cada transação
  • Histórico completo: Consulte todas as transações com paginação
  • Detalhes do cliente: Informações completas do pagador
  • Webhooks: Receba notificações automáticas de mudanças de status
  • Filtros avançados: Busque por status, método de pagamento, período e mais

Criando uma transação

Requisição Básica - PIX

curl -X POST "https://alpa-sistema-api.onrender.com/api/v1/transactions" \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product": "Pedido #001",
    "paymentMethod": "PIX",
    "amountCents": 9900,
    "clientName": "João Silva",
    "clientEmail": "joao@example.com",
    "clientPhone": "11999999999",
    "clientDocument": "12345678900"
  }'

Resposta

{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "displayId": "52a8d85b-160b-4f06-b7cb-34845c1955f2",
    "amountCents": 9900,
    "amount": 99.00,
    "currency": "BRL",
    "paymentMethod": "PIX",
    "status": "PENDING",
    "pixCopiaECola": "00020101021226940014br.gov.bcb.pix...",
    "pixExpiresAt": "2025-12-30T01:00:00-03:00",
    "client": {
      "name": "João Silva",
      "email": "joao@example.com",
      "phone": "11999999999",
      "document": "12345678900"
    },
    "createdAt": "2025-12-30T00:00:00.000Z"
  }
}
O campo displayId é preenchido com o ID externo gerado pela adquirente após o processamento. O campo pixCopiaECola contém o código PIX copia-e-cola pronto para uso.

Campos disponíveis

Campos obrigatórios

CampoTipoDescrição
productstringNome ou descrição do produto/serviço. Máximo 255 caracteres.
amountCentsnumberValor em centavos. Exemplo: 9900 = R$ 99,00.
clientNamestringNome completo do cliente. Máximo 255 caracteres.
clientEmailstringEmail válido do cliente.
clientDocumentstringCPF ou CNPJ do cliente (apenas números). Mínimo 11 dígitos.

Campos opcionais

CampoTipoDescriçãoPadrão
paymentMethodstringMétodo de pagamento: "PIX", "CARD", "BOLETO"."PIX"
clientPhonestringTelefone do cliente (apenas números). Exemplo: 11999999999.
installmentsnumberNúmero de parcelas (apenas cartão). Mínimo: 1, Máximo: 12.1
paymentLinkIdstring (UUID)ID do link de pagamento associado.
dueDatestring (ISO 8601)Data de vencimento da cobrança.
metadataobjectDados adicionais personalizados (ex: orderId, source).
postbackUrlstring (URL)URL para receber notificações de mudança de status da transação.
trackingParamsobjectParâmetros UTM para rastreamento de campanhas.

📖 Exemplos Completos

Transação com Cartão de Crédito

const response = await fetch('https://alpa-sistema-api.onrender.com/api/v1/transactions', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    product: 'Curso Online',
    paymentMethod: 'CARD',
    amountCents: 19900, // R$ 199,00
    installments: 3,
    clientName: 'Maria Santos',
    clientEmail: 'maria@example.com',
    clientPhone: '11988888888',
    clientDocument: '98765432100'
  })
});

Transação com Boleto

const response = await fetch('https://alpa-sistema-api.onrender.com/api/v1/transactions', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    product: 'Assinatura Mensal',
    paymentMethod: 'BOLETO',
    amountCents: 29900, // R$ 299,00
    clientName: 'Pedro Oliveira',
    clientEmail: 'pedro@example.com',
    clientPhone: '11977777777',
    clientDocument: '12345678900'
  })
});

Transação com Metadata (integração de parceiros)

const response = await fetch('https://alpa-sistema-api.onrender.com/api/v1/transactions', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    product: 'Pedido #4836572',
    paymentMethod: 'PIX',
    amountCents: 670000, // R$ 6.700,00
    clientName: 'Ana Costa',
    clientEmail: 'ana@example.com',
    clientPhone: '11966666666',
    clientDocument: '11122233344',
    metadata: {
      orderId: '4836572',
      source: 'checkout-parceiro',
      campaign: 'black-friday'
    }
  })
});

Consultando transações

Listar Todas as Transações

curl -X GET "https://alpa-sistema-api.onrender.com/api/v1/transactions?page=1&limit=20" \
  -H "Authorization: Bearer SUA_API_KEY"

Resposta

{
  "success": true,
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "displayId": "TRX-2025-001234",
      "amountCents": 9900,
      "amount": 99.00,
      "currency": "BRL",
      "paymentMethod": "PIX",
      "status": "COMPLETED",
      "client": {
        "name": "João Silva",
        "email": "joao@example.com"
      },
      "createdAt": "2025-12-30T00:00:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "totalPages": 8
  }
}

Buscar Transação Específica

curl -X GET "https://alpa-sistema-api.onrender.com/api/v1/transactions/{id}" \
  -H "Authorization: Bearer SUA_API_KEY"

Filtros Disponíveis

# Filtrar por status
curl -X GET "https://alpa-sistema-api.onrender.com/api/v1/transactions?status=COMPLETED" \
  -H "Authorization: Bearer SUA_API_KEY"

# Filtrar por método de pagamento
curl -X GET "https://alpa-sistema-api.onrender.com/api/v1/transactions?paymentMethod=PIX" \
  -H "Authorization: Bearer SUA_API_KEY"

# Filtrar por período
curl -X GET "https://alpa-sistema-api.onrender.com/api/v1/transactions?startDate=2025-01-01&endDate=2025-12-31" \
  -H "Authorization: Bearer SUA_API_KEY"

# Combinar filtros
curl -X GET "https://alpa-sistema-api.onrender.com/api/v1/transactions?status=COMPLETED&paymentMethod=PIX&page=1&limit=50" \
  -H "Authorization: Bearer SUA_API_KEY"

📊 Status da Transação

StatusDescriçãoAção
PENDINGAguardando pagamentoAguardar confirmação
PROCESSINGProcessando pagamentoAguardar processamento
COMPLETEDPagamento confirmadoLiberar produto/serviço
FAILEDPagamento falhouTentar novamente
CANCELLEDTransação canceladaCriar nova transação
REFUNDEDPagamento reembolsadoRegistrar reembolso
EXPIREDTransação expiradaCriar nova transação

Métodos de pagamento

PIX

  • Tempo de expiração: 30 minutos (padrão)
  • Confirmação: Instantânea
  • Retorno: Código copia-e-cola e data de expiração
  • Webhook: transaction.completed quando confirmado
{
  "pixCopiaECola": "00020101021226940014br.gov.bcb.pix...",
  "pixExpiresAt": "2025-12-30T01:00:00-03:00"
}

Cartão de Crédito

  • Parcelamento: Até 12x
  • Confirmação: Imediata ou em até 2 dias úteis
  • Retorno: Status da autorização
  • Webhook: transaction.completed ou transaction.failed

Cartão de Débito

  • Parcelamento: Não disponível
  • Confirmação: Imediata
  • Retorno: Status da autorização
  • Webhook: transaction.completed ou transaction.failed

Boleto

  • Vencimento: 3 dias úteis (padrão)
  • Confirmação: 1-3 dias úteis após pagamento
  • Retorno: URL do boleto e código de barras
  • Webhook: transaction.completed quando compensado
{
  "boletoUrl": "https://boleto.usealpa.com/...",
  "boletoBarcode": "34191.79001 01043.510047 91020.150008 1 84350000002000",
  "boletoExpiresAt": "2025-01-02T23:59:59.000Z"
}

Postback URL

Se você prefere receber notificações de status por transação sem precisar cadastrar uma assinatura de webhook global, use o campo postbackUrl na criação da transação. Quando o status mudar para COMPLETED ou FAILED, a Alpa enviará automaticamente um POST para a URL informada com o seguinte payload:
{
  "id": "5e1f52d9-1477-414c-a113-38dd87290ede",
  "displayId": "52a8d85b-160b-4f06-b7cb-34845c1955f2",
  "status": "COMPLETED",
  "amountCents": 9900,
  "amount": 99.00,
  "currency": "BRL",
  "paymentMethod": "PIX",
  "product": "Pedido #001",
  "client": {
    "name": "João Silva",
    "email": "joao@example.com",
    "document": "12345678900",
    "phone": "11999999999"
  },
  "createdAt": "2025-12-30T00:00:00.000Z",
  "updatedAt": "2025-12-30T00:01:00.000Z"
}
O cabeçalho X-Webhook-Signature é enviado com assinatura HMAC-SHA256 para validação de autenticidade (mesmo formato dos webhooks). Seu endpoint deve responder com status 2xx para confirmar o recebimento.
curl -X POST "https://alpa-sistema-api.onrender.com/api/v1/transactions" \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product": "Pedido #001",
    "amountCents": 9900,
    "clientName": "João Silva",
    "clientEmail": "joao@example.com",
    "clientDocument": "12345678900",
    "postbackUrl": "https://meusite.com.br/postback/alpa"
  }'

🔔 Webhooks

Configure webhooks para receber notificações automáticas sobre mudanças de status:
// Eventos disponíveis
const events = [
  'transaction.completed', // Pagamento confirmado
  'transaction.failed',    // Pagamento falhou
  'transaction.created',   // Transação criada
  'transaction.updated',   // Status atualizado
];
Veja o guia completo de webhooks para mais detalhes.

Segurança

Validação de Dados

Sempre valide os dados antes de criar uma transação:
function validateTransaction(data) {
  // Validar valor mínimo
  if (data.amountCents < 100) {
    throw new Error('Valor mínimo: R$ 1,00');
  }
  
  // Validar email
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  if (!emailRegex.test(data.client.email)) {
    throw new Error('Email inválido');
  }
  
  // Validar CPF/CNPJ
  if (!isValidDocument(data.client.document)) {
    throw new Error('CPF/CNPJ inválido');
  }
  
  return true;
}

Proteção contra Duplicatas

Use metadata para rastrear transações e evitar duplicatas:
const transaction = await alpa.transactions.create({
  // ... outros campos
  metadata: {
    orderId: 'ORD-2025-001',
    idempotencyKey: generateUniqueKey()
  }
});

Boas práticas

  1. Sempre use webhooks: Não confie apenas em polling para verificar status
  2. Armazene o ID da transação: Guarde o id e displayId no seu banco de dados
  3. Trate erros adequadamente: Implemente retry com backoff exponencial
  4. Valide dados do cliente: Verifique CPF/CNPJ, email e telefone antes de enviar
  5. Use metadata: Armazene informações adicionais para rastreamento
  6. Monitore expiração: PIX expira em 30 minutos, boleto em 3 dias
  7. Implemente timeout: Configure timeout adequado nas requisições

Casos de uso

E-commerce

Processe pagamentos de produtos com múltiplos métodos e parcelamento.

Assinaturas

Crie transações recorrentes para cobranças mensais.

Marketplace

Gerencie transações entre múltiplos vendedores.

Doações

Aceite doações via PIX com confirmação instantânea.

Serviços

Cobre por serviços prestados com boleto ou cartão.

📚 Próximos Passos

Referência da API

Veja todos os endpoints disponíveis

Links de pagamento

Crie links para receber pagamentos

Webhooks

Configure notificações em tempo real