Skip to main content

🔗 Visão Geral

Os Links de Pagamento são URLs personalizadas que você pode criar e compartilhar com seus clientes para receber pagamentos. Cada link pode ser configurado com valores, métodos de pagamento, produtos e muito mais.

✨ Funcionalidades

  • Slug único: Cada link tem um identificador único e personalizável
  • Múltiplos métodos de pagamento: PIX, Cartão de Crédito/Débito, Boleto
  • Produtos: Associe produtos do seu catálogo ao link
  • Controle de estoque: Configure quantidade limitada de vendas
  • Parcelamento: Configure parcelamento até 12x
  • Validade: Defina data de expiração para o link
  • Meta Pixel: Integre com Meta Pixel para rastreamento
  • URL de redirecionamento: Configure para onde redirecionar após pagamento

Requisição Básica

curl -X POST "https://upay-sistema-api.onrender.com/api/v1/payment-links" \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Produto Premium",
    "description": "Acesso completo à plataforma",
    "amountCents": 9900,
    "currency": "BRL",
    "settings": {
      "pixEnabled": true,
      "creditCardEnabled": true,
      "maxInstallments": 12
    }
  }'

Resposta

{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "slug": "produto-premium-abc123",
    "title": "Produto Premium",
    "description": "Acesso completo à plataforma",
    "amount": 99.00,
    "amountCents": 9900,
    "currency": "BRL",
    "status": "ACTIVE",
    "url": "https://app.upaybr.com/checkout/produto-premium-abc123",
    "createdAt": "2025-12-30T00:00:00.000Z",
    "updatedAt": "2025-12-30T00:00:00.000Z"
  }
}

📋 Campos Disponíveis

Campos Obrigatórios

  • title (string): Título do link de pagamento (máx. 255 caracteres)

Campos Opcionais

  • description (string): Descrição detalhada (máx. 1000 caracteres)
  • amountCents (number): Valor em centavos (ex: 9900 = R$ 99,00)
  • currency (string): Moeda (padrão: “BRL”)
  • expiresAt (string): Data de expiração no formato ISO 8601
  • redirectUrl (string): URL para redirecionar após pagamento
  • productDescription (string): Descrição do produto
  • stockQuantity (number): Quantidade em estoque (0 = ilimitado)
  • stockEnabled (boolean): Ativar controle de estoque
  • metaPixelCode (string): Código do Meta Pixel
  • status (enum): “ACTIVE” ou “INACTIVE” (padrão: “ACTIVE”)

Configurações de Pagamento (settings)

{
  "settings": {
    "pixEnabled": true,              // Habilitar PIX
    "boletoEnabled": false,          // Habilitar Boleto
    "creditCardEnabled": true,       // Habilitar Cartão
    "maxInstallments": 12,           // Máximo de parcelas
    "interestFreeInstallments": 3,  // Parcelas sem juros
    "interestRate": 2.5,            // Taxa de juros (%)
    "requirePhone": true,           // Exigir telefone
    "requireAddress": true           // Exigir endereço
  }
}

Associando Produtos

{
  "products": [
    {
      "productId": "550e8400-e29b-41d4-a716-446655440000",
      "quantity": 2
    }
  ]
}
Quando produtos são associados, o valor total é calculado automaticamente baseado nos preços dos produtos e quantidades.

📖 Exemplos Completos

const response = await fetch('https://upay-sistema-api.onrender.com/api/v1/payment-links', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    title: 'Curso Online',
    description: 'Acesso completo ao curso por 1 ano',
    amountCents: 19900, // R$ 199,00
    currency: 'BRL',
    settings: {
      pixEnabled: true,
      creditCardEnabled: true,
      maxInstallments: 6,
      interestFreeInstallments: 3
    }
  })
});
const response = await fetch('https://upay-sistema-api.onrender.com/api/v1/payment-links', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    title: 'Pacote Premium',
    description: 'Inclui 3 produtos do catálogo',
    products: [
      { productId: 'produto-1-id', quantity: 1 },
      { productId: 'produto-2-id', quantity: 2 }
    ],
    stockQuantity: 50,
    stockEnabled: true,
    settings: {
      pixEnabled: true,
      creditCardEnabled: true,
      boletoEnabled: true
    }
  })
});
const expiresAt = new Date();
expiresAt.setDate(expiresAt.getDate() + 30); // Expira em 30 dias

const response = await fetch('https://upay-sistema-api.onrender.com/api/v1/payment-links', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    title: 'Oferta Especial',
    description: 'Válido apenas este mês',
    amountCents: 9900,
    expiresAt: expiresAt.toISOString(),
    redirectUrl: 'https://meusite.com.br/obrigado',
    settings: {
      pixEnabled: true,
      creditCardEnabled: true
    }
  })
});
curl -X GET "https://upay-sistema-api.onrender.com/api/v1/payment-links?page=1&limit=20" \
  -H "Authorization: Bearer SUA_API_KEY"
curl -X GET "https://upay-sistema-api.onrender.com/api/v1/payment-links/{id}" \
  -H "Authorization: Bearer SUA_API_KEY"
curl -X PATCH "https://upay-sistema-api.onrender.com/api/v1/payment-links/{id}" \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Novo Título",
    "status": "INACTIVE"
  }'
Você pode atualizar apenas os campos que desejar. Campos não enviados permanecerão inalterados.
curl -X DELETE "https://upay-sistema-api.onrender.com/api/v1/payment-links/{id}" \
  -H "Authorization: Bearer SUA_API_KEY"
A exclusão é permanente e não pode ser desfeita. Certifique-se de que realmente deseja deletar o link.

🔗 URL do Checkout

Após criar um link, você receberá uma URL no formato:
https://app.upaybr.com/checkout/{slug}
Esta URL pode ser compartilhada diretamente com seus clientes.
  • ACTIVE: Link ativo e disponível para pagamentos
  • INACTIVE: Link desativado (não aceita novos pagamentos)

🎯 Casos de Uso

E-commerce

Crie links para produtos específicos com controle de estoque e múltiplos métodos de pagamento.

Assinaturas

Configure links recorrentes com valores e parcelamento adequados.

Doações

Crie links simples para receber doações via PIX ou cartão.

Cursos Online

Associe produtos (cursos) aos links e controle o acesso.

📚 Próximos Passos