Comece a usar o Asaas SDK em minutos! Este guia mostra os passos essenciais para integrar pagamentos na sua aplicação.
Adicione ao seu pom.xml:
<dependency>
<groupId>io.github.jpdev01</groupId>
<artifactId>asaassdk</artifactId>
<version>1.4</version>
</dependency>
Adicione ao seu build.gradle:
implementation 'io.github.jpdev01:asaassdk:1.4'
Importante: Use a chave de produção apenas em ambiente de produção!
import io.github.jpdev.asaassdk.Asaas;
public class Main {
public static void main(String[] args) {
// Ambiente de produção
Asaas.init("sua_chave_api_producao");
// OU ambiente sandbox (para testes)
// Asaas.initSandbox("sua_chave_api_sandbox");
}
}
import io.github.jpdev.asaassdk.rest.customeraccount.CustomerAccount;
CustomerAccount cliente = CustomerAccount.creator()
.setName("João Silva")
.setCpfCnpj("12345678900")
.setEmail("joao@exemplo.com")
.setPhone("47999999999")
.create();
System.out.println("✅ Cliente criado: " + cliente.getId());
import io.github.jpdev.asaassdk.rest.payment.Payment;
import io.github.jpdev.asaassdk.enums.BillingType;
import io.github.jpdev.asaassdk.util.Money;
import java.math.BigDecimal;
import java.util.Date;
Payment cobranca = Payment.creator()
.setCustomer(cliente.getId())
.setBillingType(BillingType.PIX)
.setDueDate(new Date())
.setValue(Money.create(new BigDecimal("100.00")))
.setDescription("Pagamento de serviço")
.create();
System.out.println("✅ Cobrança criada: " + cobranca.getId());
System.out.println("📱 QR Code PIX: " + cobranca.getPixQrCode());
import io.github.jpdev.asaassdk.Asaas;
import io.github.jpdev.asaassdk.rest.customeraccount.CustomerAccount;
import io.github.jpdev.asaassdk.rest.payment.Payment;
import io.github.jpdev.asaassdk.enums.BillingType;
import io.github.jpdev.asaassdk.util.Money;
import java.math.BigDecimal;
import java.util.Date;
public class ExemploCompleto {
public static void main(String[] args) {
try {
// 1. Inicializar SDK
Asaas.init("sua_chave_api");
System.out.println("✅ SDK inicializado");
// 2. Criar cliente
CustomerAccount cliente = CustomerAccount.creator()
.setName("Maria Santos")
.setCpfCnpj("12345678900")
.setEmail("maria@exemplo.com")
.setPhone("47999999999")
.create();
System.out.println("✅ Cliente criado: " + cliente.getId());
// 3. Criar cobrança PIX
Payment cobranca = Payment.creator()
.setCustomer(cliente.getId())
.setBillingType(BillingType.PIX)
.setDueDate(new Date())
.setValue(Money.create(new BigDecimal("150.00")))
.setDescription("Pagamento de produto")
.create();
System.out.println("✅ Cobrança criada: " + cobranca.getId());
System.out.println("💰 Valor: R$ " + cobranca.getValue());
System.out.println("📱 QR Code: " + cobranca.getPixQrCode());
// 4. Verificar status
System.out.println("📊 Status: " + cobranca.getStatus());
} catch (Exception e) {
System.err.println("❌ Erro: " + e.getMessage());
e.printStackTrace();
}
}
}
Payment boleto = Payment.creator()
.setCustomer(cliente.getId())
.setBillingType(BillingType.BOLETO)
.setDueDate(new Date())
.setValue(Money.create(new BigDecimal("250.00")))
.setDescription("Mensalidade")
.create();
System.out.println("Link do boleto: " + boleto.getBankSlipUrl());
import io.github.jpdev.asaassdk.rest.subscription.Subscription;
import io.github.jpdev.asaassdk.enums.SubscriptionCycle;
Subscription assinatura = Subscription.creator()
.setCustomer(cliente.getId())
.setBillingType(BillingType.CREDIT_CARD)
.setNextDueDate(new Date())
.setValue(Money.create(new BigDecimal("99.90")))
.setCycle(SubscriptionCycle.MONTHLY)
.setDescription("Plano Premium")
.create();
System.out.println("Assinatura criada: " + assinatura.getId());
import io.github.jpdev.asaassdk.rest.transfer.Transfer;
import io.github.jpdev.asaassdk.enums.PixAddressKeyType;
Transfer transfer = Transfer.pixAddressKeyCreator()
.setPixAddressKey("12345678900")
.setPixAddressKeyType(PixAddressKeyType.CPF)
.setValue(Money.create(new BigDecimal("100.00")))
.setDescription("Pagamento fornecedor")
.create();
System.out.println("PIX enviado: " + transfer.getId());
import io.github.jpdev.asaassdk.rest.webhook.Webhook;
import io.github.jpdev.asaassdk.enums.Event;
import io.github.jpdev.asaassdk.enums.SendType;
Webhook webhook = Webhook.creator()
.setName("Notificações de Pagamento")
.setUrl("https://seusite.com/webhook/asaas")
.setEmail("notificacoes@seusite.com")
.setSendType(SendType.SEQUENTIALLY)
.addEvent(Event.PAYMENT_RECEIVED)
.addEvent(Event.PAYMENT_CONFIRMED)
.create();
System.out.println("Webhook configurado: " + webhook.getId());
Para testes, use o ambiente sandbox:
Asaas.initSandbox("sua_chave_api_sandbox");
Ajuste o timeout das requisições (padrão: 30 segundos):
Asaas.setTimeout(10000); // 10 segundos
Payment payment = Payment.creator()
.setCustomer(cliente.getId())
.setBillingType(BillingType.PIX)
.setDueDate(new Date())
.setValue(Money.create(new BigDecimal("100.00")))
.create();
RateLimit rateLimit = payment.getRateLimit();
System.out.println("Requisições restantes: " + rateLimit.getRemaining());
System.out.println("Limite total: " + rateLimit.getLimit());
System.out.println("Reseta em: " + rateLimit.getReset());
Nunca exponha suas chaves de API no código:
String apiKey = System.getenv("ASAAS_API_KEY");
Asaas.init(apiKey);
try {
Payment payment = Payment.creator()
.setCustomer("cus_invalid")
.setBillingType(BillingType.PIX)
.setDueDate(new Date())
.setValue(Money.create(new BigDecimal("100.00")))
.create();
} catch (AsaasException e) {
System.err.println("Erro ao criar cobrança: " + e.getMessage());
// Registrar erro, notificar equipe, etc.
}
String cpf = "123.456.789-00";
String cpfLimpo = cpf.replaceAll("[^0-9]", "");
if (cpfLimpo.length() == 11) {
CustomerAccount cliente = CustomerAccount.creator()
.setCpfCnpj(cpfLimpo)
.setName("Cliente")
.create();
}
Mantenha sincronização com seu sistema:
CustomerAccount cliente = CustomerAccount.creator()
.setName("João Silva")
.setCpfCnpj("12345678900")
.setExternalReference("CLIENTE_ID_123") // ID do seu sistema
.create();
Agora que você já sabe o básico, explore mais recursos:
Pronto! Você já está apto para integrar pagamentos com Asaas! 🎉