Crie páginas de checkout personalizadas sem programação. Compartilhe links para receber pagamentos de forma simples.
import io.github.jpdev.asaassdk.rest.paymentlink.PaymentLink;
import io.github.jpdev.asaassdk.enums.BillingType;
import io.github.jpdev.asaassdk.enums.PaymentLinkChargeType;
PaymentLink link = PaymentLink.creator()
.setName("Produto Digital")
.setBillingType(BillingType.PIX)
.setChargeType(PaymentLinkChargeType.DETACHED)
.create();
System.out.println("Link criado: " + link.getId());
System.out.println("URL: " + link.getUrl());
import io.github.jpdev.asaassdk.util.Money;
import java.math.BigDecimal;
PaymentLink link = PaymentLink.creator()
.setName("Curso Online")
.setDescription("Curso completo de programação")
.setBillingType(BillingType.CREDIT_CARD)
.setChargeType(PaymentLinkChargeType.DETACHED)
.setValue(Money.create(new BigDecimal("297.00")))
.create();
System.out.println("Link: " + link.getUrl());
System.out.println("Valor: R$ 297,00");
PaymentLink link = PaymentLink.creator()
.setName("Notebook")
.setDescription("Notebook Dell Inspiron")
.setBillingType(BillingType.CREDIT_CARD)
.setChargeType(PaymentLinkChargeType.INSTALLMENT)
.setValue(Money.create(new BigDecimal("3000.00")))
.setMaxInstallmentCount(12) // Até 12x
.create();
System.out.println("Link criado com parcelamento em até 12x");
import java.util.Calendar;
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 30); // Expira em 30 dias
Date dataExpiracao = cal.getTime();
PaymentLink link = PaymentLink.creator()
.setName("Promoção Limitada")
.setBillingType(BillingType.PIX)
.setChargeType(PaymentLinkChargeType.DETACHED)
.setValue(Money.create(new BigDecimal("99.00")))
.setEndDate(dataExpiracao)
.create();
System.out.println("Link expira em: " + link.getEndDate());
PaymentLink link = PaymentLink.creator()
.setName("Mensalidade")
.setBillingType(BillingType.BOLETO)
.setChargeType(PaymentLinkChargeType.DETACHED)
.setValue(Money.create(new BigDecimal("150.00")))
.setDueDateLimitDays(5) // Cliente tem 5 dias para pagar
.create();
System.out.println("Prazo de pagamento: 5 dias");
PaymentLink link = PaymentLink.creator()
.setName("Produto Versátil")
.setBillingType(BillingType.UNDEFINED) // Cliente escolhe
.setChargeType(PaymentLinkChargeType.DETACHED)
.setValue(Money.create(new BigDecimal("500.00")))
.create();
System.out.println("Cliente pode escolher: PIX, Boleto ou Cartão");
import io.github.jpdev.asaassdk.enums.SubscriptionCycle;
PaymentLink link = PaymentLink.creator()
.setName("Plano Premium")
.setDescription("Acesso completo à plataforma")
.setBillingType(BillingType.CREDIT_CARD)
.setChargeType(PaymentLinkChargeType.RECURRENT)
.setValue(Money.create(new BigDecimal("49.90")))
.setSubscriptionCycle(SubscriptionCycle.MONTHLY)
.create();
System.out.println("Link de assinatura mensal criado");
import io.github.jpdev.asaassdk.rest.paymentlink.ResourceSet;
ResourceSet<PaymentLink> links = PaymentLink.reader().read();
for (PaymentLink link : links.getData()) {
System.out.println("Nome: " + link.getName());
System.out.println("URL: " + link.getUrl());
System.out.println("Valor: R$ " + link.getValue());
System.out.println("Status: " + link.getActive());
System.out.println("---");
}
// Apenas links ativos
ResourceSet<PaymentLink> ativos = PaymentLink.reader()
.setActive(true)
.read();
// Apenas links inativos
ResourceSet<PaymentLink> inativos = PaymentLink.reader()
.setActive(false)
.read();
ResourceSet<PaymentLink> links = PaymentLink.reader()
.setLimit(50)
.setOffset(0)
.read();
System.out.println("Total: " + links.getTotalCount());
System.out.println("Tem mais: " + links.hasMore());
PaymentLink atualizado = PaymentLink.updater("725104409743")
.setValue(Money.create(new BigDecimal("399.00")))
.update();
System.out.println("Novo valor: R$ " + atualizado.getValue());
PaymentLink atualizado = PaymentLink.updater("725104409743")
.setName("Novo Nome do Produto")
.setDescription("Nova descrição detalhada")
.update();
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 1);
Date novaData = cal.getTime();
PaymentLink atualizado = PaymentLink.updater("725104409743")
.setEndDate(novaData)
.update();
System.out.println("Nova data de expiração: " + atualizado.getEndDate());
PaymentLink atualizado = PaymentLink.updater("725104409743")
.setActive(false)
.update();
System.out.println("Link desativado");
PaymentLink link = PaymentLink.fetcher("725104409743").fetch();
System.out.println("=== DETALHES DO LINK ===");
System.out.println("ID: " + link.getId());
System.out.println("Nome: " + link.getName());
System.out.println("URL: " + link.getUrl());
System.out.println("Valor: R$ " + link.getValue());
System.out.println("Tipo: " + link.getChargeType());
System.out.println("Forma de pagamento: " + link.getBillingType());
System.out.println("Ativo: " + link.getActive());
System.out.println("Data de criação: " + link.getDateCreated());
import io.github.jpdev.asaassdk.rest.paymentlink.DeletedResource;
DeletedResource deletado = PaymentLink.deleter("725104409743").delete();
if (deletado.isDeleted()) {
System.out.println("Link deletado com sucesso");
}
| Tipo | Descrição | Uso |
|---|---|---|
DETACHED |
Cobrança avulsa | Venda única |
INSTALLMENT |
Parcelamento | Venda parcelada |
RECURRENT |
Recorrente | Assinatura |
public class LinkEcommerce {
public static PaymentLink criarLinkProduto(
String nomeProduto,
String descricao,
double preco,
int maxParcelas
) {
PaymentLink link = PaymentLink.creator()
.setName(nomeProduto)
.setDescription(descricao)
.setBillingType(BillingType.CREDIT_CARD)
.setChargeType(PaymentLinkChargeType.INSTALLMENT)
.setValue(Money.create(new BigDecimal(preco)))
.setMaxInstallmentCount(maxParcelas)
.create();
System.out.println("Link do produto criado:");
System.out.println("URL: " + link.getUrl());
System.out.println("Parcelamento: até " + maxParcelas + "x");
return link;
}
public static void main(String[] args) {
Asaas.init("sua_api_key");
criarLinkProduto("Smartphone XYZ", "Smartphone top de linha", 2500.00, 10);
}
}
public class LinkServicosDigitais {
public static PaymentLink criarLinkCurso(
String nomeCurso,
double preco
) {
PaymentLink link = PaymentLink.creator()
.setName(nomeCurso)
.setDescription("Acesso vitalício ao curso")
.setBillingType(BillingType.PIX)
.setChargeType(PaymentLinkChargeType.DETACHED)
.setValue(Money.create(new BigDecimal(preco)))
.create();
System.out.println("Link do curso: " + link.getUrl());
return link;
}
}
public class LinkAssinatura {
public static PaymentLink criarPlano(
String nomePlano,
double valorMensal,
SubscriptionCycle ciclo
) {
PaymentLink link = PaymentLink.creator()
.setName(nomePlano)
.setDescription("Assinatura " + ciclo.toString().toLowerCase())
.setBillingType(BillingType.CREDIT_CARD)
.setChargeType(PaymentLinkChargeType.RECURRENT)
.setValue(Money.create(new BigDecimal(valorMensal)))
.setSubscriptionCycle(ciclo)
.create();
System.out.println("Plano criado: " + link.getUrl());
return link;
}
public static void main(String[] args) {
Asaas.init("sua_api_key");
// Plano mensal
criarPlano("Plano Básico", 29.90, SubscriptionCycle.MONTHLY);
// Plano anual
criarPlano("Plano Anual", 299.00, SubscriptionCycle.YEARLY);
}
}
public class LinkDoacao {
public static PaymentLink criarLinkDoacao(String causa) {
PaymentLink link = PaymentLink.creator()
.setName("Doação - " + causa)
.setDescription("Contribua com qualquer valor")
.setBillingType(BillingType.PIX)
.setChargeType(PaymentLinkChargeType.DETACHED)
// Sem valor fixo - cliente define
.create();
System.out.println("Link de doação: " + link.getUrl());
return link;
}
}
import io.github.jpdev.asaassdk.Asaas;
import io.github.jpdev.asaassdk.rest.paymentlink.PaymentLink;
import io.github.jpdev.asaassdk.enums.*;
import io.github.jpdev.asaassdk.util.Money;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
public class ExemploPaymentLink {
public static void main(String[] args) {
// Inicializar SDK
Asaas.init("sua_api_key");
// Criar link de pagamento
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, 30);
Date dataExpiracao = cal.getTime();
PaymentLink link = PaymentLink.creator()
.setName("Curso de Java Avançado")
.setDescription("Curso completo com certificado")
.setBillingType(BillingType.CREDIT_CARD)
.setChargeType(PaymentLinkChargeType.INSTALLMENT)
.setValue(Money.create(new BigDecimal("497.00")))
.setMaxInstallmentCount(6)
.setEndDate(dataExpiracao)
.setDueDateLimitDays(7)
.create();
System.out.println("=== LINK DE PAGAMENTO CRIADO ===");
System.out.println("ID: " + link.getId());
System.out.println("Nome: " + link.getName());
System.out.println("URL: " + link.getUrl());
System.out.println("Valor: R$ " + link.getValue());
System.out.println("Parcelamento: até 6x");
System.out.println("Expira em: " + link.getEndDate());
// Compartilhar URL
System.out.println("\nCompartilhe este link:");
System.out.println(link.getUrl());
// Atualizar link
PaymentLink atualizado = PaymentLink.updater(link.getId())
.setDescription("Curso completo com certificado + bônus")
.update();
System.out.println("\nDescrição atualizada!");
// Listar todos os links
ResourceSet<PaymentLink> links = PaymentLink.reader().read();
System.out.println("\nTotal de links: " + links.getTotalCount());
}
}
public class DashboardLinks {
public static void exibirDashboard() {
ResourceSet<PaymentLink> todos = PaymentLink.reader().read();
ResourceSet<PaymentLink> ativos = PaymentLink.reader()
.setActive(true)
.read();
System.out.println("╔════════════════════════════════════════╗");
System.out.println("║ DASHBOARD DE LINKS ║");
System.out.println("╠════════════════════════════════════════╣");
System.out.println("║ Total de links: " + todos.getTotalCount());
System.out.println("║ Links ativos: " + ativos.getTotalCount());
System.out.println("║ Links inativos: " + (todos.getTotalCount() - ativos.getTotalCount()));
System.out.println("╚════════════════════════════════════════╝");
}
}
public class RelatorioVendas {
public static void gerarRelatorio(String linkId) {
PaymentLink link = PaymentLink.fetcher(linkId).fetch();
// Buscar pagamentos do link
ResourceSet<Payment> pagamentos = Payment.reader()
.setPaymentLink(linkId)
.read();
double totalVendas = 0;
int totalPagamentos = 0;
for (Payment p : pagamentos.getData()) {
if (p.getStatus().equals("RECEIVED") ||
p.getStatus().equals("CONFIRMED")) {
totalVendas += p.getValue();
totalPagamentos++;
}
}
System.out.println("=== RELATÓRIO DE VENDAS ===");
System.out.println("Link: " + link.getName());
System.out.println("Total de pagamentos: " + totalPagamentos);
System.out.println("Total vendido: R$ " + String.format("%.2f", totalVendas));
}
}
PaymentLink link = PaymentLink.creator()
.setName("Curso Java - Turma Janeiro 2024")
.setDescription("Descrição completa do produto")
.create();
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 3); // Expira em 3 meses
PaymentLink link = PaymentLink.creator()
.setName("Promoção")
.setEndDate(cal.getTime())
.create();
// Para produtos de alto valor
PaymentLink link = PaymentLink.creator()
.setName("Produto Premium")
.setValue(Money.create(new BigDecimal("5000.00")))
.setMaxInstallmentCount(12)
.create();
ResourceSet<PaymentLink> ativos = PaymentLink.reader()
.setActive(true)
.read();
if (ativos.getTotalCount() > 100) {
System.out.println("⚠️ Muitos links ativos. Considere desativar os não utilizados.");
}