Subcontas (Accounts)
Crie e gerencie subcontas vinculadas à sua conta principal. Ideal para marketplaces, franquias e empresas que precisam segregar operações.
📋 Índice
Criar Subconta
Subconta Pessoa Jurídica
import io.github.jpdev.asaassdk.rest.account.Account;
import java.util.Date;
Account subconta = Account.creator()
.setName("Loja Parceira LTDA")
.setEmail("contato@lojaparceira.com")
.setCpfCnpj("12.345.678/0001-90")
.setBirthDate(new Date(2020, 0, 1)) // Data de fundação
.setCompanyType("LIMITED") // Tipo de empresa
.setPhone("4733334444")
.setMobilePhone("47999999999")
.setPostalCode("89010-000")
.setAddress("Rua Principal")
.setAddressNumber("100")
.setProvince("Centro")
.create();
System.out.println("Subconta criada: " + subconta.getId());
System.out.println("Wallet ID: " + subconta.getWalletId());
Subconta Pessoa Física
Account subconta = Account.creator()
.setName("João Silva")
.setEmail("joao@exemplo.com")
.setCpfCnpj("123.456.789-00")
.setBirthDate(new Date(1990, 0, 15))
.setPhone("47999999999")
.setPostalCode("89010-000")
.setAddress("Rua das Flores")
.setAddressNumber("50")
.setProvince("Centro")
.create();
Account subconta = Account.creator()
.setName("Empresa XYZ LTDA")
.setEmail("financeiro@empresaxyz.com")
.setCpfCnpj("12345678000190")
.setBirthDate(new Date(2018, 5, 10))
.setCompanyType("LIMITED")
.setPhone("4733334444")
.setMobilePhone("47988888888")
.setPostalCode("89010-000")
.setAddress("Avenida Brasil")
.setAddressNumber("1000")
.setComplement("Sala 201")
.setProvince("Centro")
.setSite("https://empresaxyz.com")
.setIncomeValue(50000.00) // Faturamento mensal estimado
.create();
System.out.println("Subconta criada com sucesso!");
System.out.println("ID: " + subconta.getId());
System.out.println("Wallet ID: " + subconta.getWalletId());
Recuperar Subconta
Account subconta = Account.fetcher("acc_123456789").fetch();
System.out.println("Nome: " + subconta.getName());
System.out.println("Email: " + subconta.getEmail());
System.out.println("CPF/CNPJ: " + subconta.getCpfCnpj());
System.out.println("Wallet ID: " + subconta.getWalletId());
System.out.println("Status: " + subconta.getStatus());
Listar Subcontas
import io.github.jpdev.asaassdk.rest.account.ResourceSet;
ResourceSet<Account> subcontas = Account.reader().read();
for (Account subconta : subcontas.getData()) {
System.out.println("ID: " + subconta.getId());
System.out.println("Nome: " + subconta.getName());
System.out.println("Email: " + subconta.getEmail());
System.out.println("Wallet ID: " + subconta.getWalletId());
System.out.println("---");
}
Atualizar Subconta
Account atualizada = Account.updater("acc_123456789")
.setName("Novo Nome da Empresa")
.setEmail("novoemail@empresa.com")
.setPhone("4733335555")
.update();
System.out.println("Subconta atualizada: " + atualizada.getName());
Tipos de Empresa
| Tipo |
Descrição |
Valor |
| MEI |
Microempreendedor Individual |
"MEI" |
| Limitada |
Sociedade Limitada |
"LIMITED" |
| Individual |
Empresário Individual |
"INDIVIDUAL" |
| Associação |
Associação |
"ASSOCIATION" |
Casos de Uso
Marketplace
// Criar subconta para cada vendedor
Account vendedor1 = Account.creator()
.setName("Vendedor A LTDA")
.setEmail("vendedora@marketplace.com")
.setCpfCnpj("12345678000190")
.setBirthDate(new Date(2020, 0, 1))
.setCompanyType("LIMITED")
.setPostalCode("89010-000")
.create();
// Usar o walletId para split de pagamentos
String walletId = vendedor1.getWalletId();
Franquia
// Criar subconta para cada franqueado
Account franquia = Account.creator()
.setName("Franquia Centro")
.setEmail("centro@franquia.com")
.setCpfCnpj("98765432000100")
.setBirthDate(new Date(2021, 0, 1))
.setCompanyType("LIMITED")
.setPostalCode("89010-000")
.create();
Filiais
// Criar subconta para cada filial
Account filial = Account.creator()
.setName("Filial Sul")
.setEmail("sul@empresa.com")
.setCpfCnpj("11122233000144")
.setBirthDate(new Date(2019, 0, 1))
.setCompanyType("LIMITED")
.setPostalCode("89010-000")
.create();
Exemplo Completo
import io.github.jpdev.asaassdk.Asaas;
import io.github.jpdev.asaassdk.rest.account.Account;
import java.util.Date;
public class ExemploSubconta {
public static void main(String[] args) {
// Inicializar SDK
Asaas.init("sua_api_key");
// Criar subconta
Account subconta = Account.creator()
.setName("Parceiro Comercial LTDA")
.setEmail("parceiro@exemplo.com")
.setCpfCnpj("12345678000190")
.setBirthDate(new Date(2020, 0, 1))
.setCompanyType("LIMITED")
.setPhone("4733334444")
.setPostalCode("89010-000")
.setAddress("Rua Comercial")
.setAddressNumber("500")
.setProvince("Centro")
.create();
System.out.println("Subconta criada!");
System.out.println("ID: " + subconta.getId());
System.out.println("Wallet ID: " + subconta.getWalletId());
// Recuperar subconta
Account recuperada = Account.fetcher(subconta.getId()).fetch();
System.out.println("Nome: " + recuperada.getName());
// Listar todas as subcontas
ResourceSet<Account> subcontas = Account.reader().read();
System.out.println("Total de subcontas: " + subcontas.getTotalCount());
}
}
Boas Práticas
1. Armazene o Wallet ID
Account subconta = Account.creator()
.setName("Vendedor")
.setCpfCnpj("12345678000190")
.create();
// Salvar no banco de dados
String walletId = subconta.getWalletId();
// Use este ID para splits e transferências
2. Valide Dados Antes de Criar
String cnpj = "12.345.678/0001-90";
String cnpjLimpo = cnpj.replaceAll("[^0-9]", "");
if (cnpjLimpo.length() == 14) {
Account subconta = Account.creator()
.setCpfCnpj(cnpjLimpo)
.setName("Empresa")
.create();
}
3. Trate Erros
try {
Account subconta = Account.creator()
.setName("Empresa")
.setCpfCnpj("12345678000190")
.create();
} catch (AsaasException e) {
System.err.println("Erro ao criar subconta: " + e.getMessage());
}
Campos Obrigatórios
| Campo |
Tipo |
Descrição |
name |
String |
Nome da pessoa/empresa |
email |
String |
Email de acesso |
cpfCnpj |
String |
CPF ou CNPJ |
birthDate |
Date |
Data de nascimento/fundação |
postalCode |
String |
CEP |
Veja Também
Referências