Java
Kit de desenvolvimento de software Java da API
O SDK Java do Asaas é a forma mais prática, segura e robusta de integrar a API REST em aplicações desenvolvidas com Java ou Kotlin. Ele é publicado oficialmente no Sonatype (Maven Central) e validado continuamente por ferramentas de qualidade e segurança.
Repositório oficial
Você pode acessar o código-fonte, histórico de versões e exemplos no GitHub clicando aqui.
O repositório contém exemplos de uso em inglês. Esta documentação (em português) complementa os exemplos com explicações mais detalhadas e aplicadas ao contexto local.
Publicação e qualidade
- O SDK é distribuído pelo Maven Central via Sonatype.
- Os artefatos são assinados com suporte ao GitHub Artifact Attestations, garantindo a proveniência e integridade dos builds. Saiba mais sobre essa tecnologia em: GitHub Artifact Attestations.
Você pode consultar o SDK diretamente no Sonatype Central.
Instalação
<dependency>
<groupId>com.asaas</groupId>
<artifactId>api-sdk</artifactId>
<version>VERSAO_AQUI</version>
</dependency>
implementation group: 'com.asaas', name: 'api-sdk', version: 'VERSAO_AQUI'
Autenticação
A autenticação é feita via API Key (Veja a seção Autenticação), que deve ser configurada ao inicializar o SDK:
import com.asaas.apisdk.AsaasSdk;
import com.asaas.apisdk.config.ApiKeyAuthConfig;
import com.asaas.apisdk.config.AsaasSdkConfig;
ApiKeyAuthConfig authConfig = ApiKeyAuthConfig.builder()
.apiKey("SUA_API_KEY")
.build();
AsaasSdkConfig config = AsaasSdkConfig.builder()
.apiKeyAuthConfig(authConfig)
.build();
AsaasSdk asaasSdk = new AsaasSdk(config);
Nunca exponha sua chave de API diretamente no código-fonte. Use variáveis de ambiente ou um gerenciador seguro de configurações
Ambientes
O SDK suporta tanto o ambiente de sandbox, quanto o de produção:
Environment.DEFAULT // Produção (https://api.asaas.com/)
Environment.SANDBOX // Sandbox (https://api-sandbox.asaas.com/)
Para definir o ambiente desejado:
asaasSdk.setEnvironment(Environment.SANDBOX);
Timeout personalizado
Você pode configurar o timeout das requisições HTTP ao instanciar o SDK:
AsaasSdkConfig config = AsaasSdkConfig.builder()
.timeout(10000) // timeout em milissegundos
.build();
Usando o SDK em projetos Spring Boot
Para usar o SDK de forma mais idiomática em projetos Spring, você pode configurá-lo como um @Bean e injetar os serviços onde precisar.
import com.asaas.apisdk.AsaasSdk;
import com.asaas.apisdk.config.ApiKeyAuthConfig;
import com.asaas.apisdk.config.AsaasSdkConfig;
import com.asaas.apisdk.http.Environment;
import com.asaas.apisdk.services.CustomerService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AsaasConfig {
@Value("${asaas.api.key}")
private String asaasApiKey;
@Bean
public AsaasSdk asaasSdk() {
AsaasSdkConfig config = AsaasSdkConfig.builder()
.apiKeyAuthConfig(ApiKeyAuthConfig.builder().apiKey(asaasApiKey).build())
.build();
config.setEnvironment(Environment.SANDBOX);
return new AsaasSdk(config);
}
@Bean
public CustomerService customerService(AsaasSdk asaasSdk) {
return asaasSdk.customer;
}
}
Agora você pode injetar o CustomerService normalmente nos seus serviços:
import com.asaas.apisdk.AsaasSdk;
import com.asaas.apisdk.models.CustomerGetResponseDto;
import com.asaas.apisdk.models.CustomerSaveRequestDto;
import com.asaas.apisdk.services.CustomerService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class MyService {
private final AsaasSdk asaasSdk;
private final CustomerService customerService;
public CustomerGetResponseDto save() {
CustomerSaveRequestDto request = CustomerSaveRequestDto.builder()
.name("Jhon Doe")
.cpfCnpj("24971563792")
.email("[email protected]")
.phone("88888888888")
.build();
return customerService.createNewCustomer(request);
}
}
Com essa estrutura, o SDK está totalmente integrado à sua aplicação Spring. Basta repetir o padrão para outros serviços como cobranças, assinaturas, links de pagamento, etc.
Você pode encontrar mais exemplos clicando aqui
Updated 1 day ago