Criar e Configurar Subconta por API

📘

O que você irá aprender com esse artigo?

  • Criação de subcontas
  • Configuração da subconta
  • Verificação de conta
  • Configuração de cartão de crédito e boleto para uma conta
  • Configuração de Pix para uma conta

Case de uso

"Preciso utilizar a funcionalidade de split para distribuir valores fixos para meus parceiros em suas respectivas subcontas. É possível configurar essa distribuição uma única vez, com a opção de realizar alterações quando necessário, ou será necessário definir essa distribuição individualmente para cada transação?"

A distribuição de valores, conhecida como Split de Pagamento, é predefinida por você e realizada automaticamente a cada recebimento. Existem várias formas de configurar essa operação: entre a conta principal (a sua) e as subcontas (contas dos seus parceiros, associados), ou apenas entre as subcontas.

Você pode definir se essa configuração será aplicada a todos os parceiros ou se precisará de uma configuração específica para cada um. Na prática, isso permite definir condições especiais para parceiros que apresentam maior volume de vendas.

Tudo isso é implementado de maneira simples e eficiente via API, com poucas chamadas POST, facilitando o processo sem complicações.


1. Criar Subconta

Utilize o endpoint Criar SubcontaPOST v1/marketplace/create_account.

🚧

Apenas em produção

É possível Criar Subcontas apenas em ambiente de produção.

📘

account_id pode se tornar o nome da conta

Se o parâmetro name não for preenchido, o account_id gerado será utilizado como o nome da conta. Utilize o endpoint Configurar ContaPOST v1/accounts/configuration para alteração.

Request e Response exemplo

curl --request POST \
     --url 'https://api.iugu.com/v1/marketplace/create_account?api_token=<seu-api_token>' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '{"name":"Subconta"}'
{
  "account_id": "49196DF60BC64B6EB42DEC9C5D81C2CC",
  "name": "Subconta",
  "live_api_token": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA111111111111111111111111111111111",
  "test_api_token": "AAAAAAAAAAAAAAAAAAAAAA111111111111111111111111111111111AAAAAAAAA",
  "user_token": "111111111111111111111111111111111AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
}

Armazene os tokens ⚠️

Esses dados são exibidos apenas neste retorno, então, certifique-se de armazená-los em segurança.


2. Enviar verificação de subconta

A verificação de uma subconta é obrigatória para realizar transações. Utilize o endpoint Enviar Verificação de SubcontaPOST v1/accounts/{account_id}/request_verification. Este chamada exige o user_token ao invés do api_token (etapa 1).

🚧

Não utilize dados fictícios

A verificação de conta exige dados reais para ser bem sucedida.

Preencha os parâmetro listados abaixo:

PATH PARAMS

ParâmetroObrigatórioDescrição
account_idID da Conta (etapa 1 )

BODY PARAMS

ParâmetroDescriçãoObrigatório
price_rangeValor máximo da venda
physical_productsSe o produto vendido é físico
business_typeDescrição do negócio
person_typePessoa Física ou Pessoa Jurídica
automatic_transferSaque automático
cnpjCNPJ da empresaSe person_type é Pessoa Jurídica
cpfCPF do titular da contaSe person_type é Pessoa Física
company_nameNome da empresaSe person_type é Pessoa Jurídica
resp_nameNome do responsável da empresaSe person_type é Pessoa Jurídica
resp_cpfCPF do responsável da empresaSe person_type é Pessoa Jurídica
nameNome do titular da contaSe person_type é Pessoa Física
addressEndereço (Rua, Avenida, etc)
cepCEP do endereço
cityCidade do endereço
districtBairro do endereço
stateEstado
telephoneTelefone
bankNome do Banco (e.g. Bradesco/Next — confira a lista)
bank_agAgência da Conta
account_typeCorrente, Poupança ou Pagamento
bank_ccNúmero da conta

Objeto files

Arquivos (codificados em Base64 e com limite de 15 MB por arquivo) para KYC, como Foto do Documento de Identificação Pessoal, selfie etc.

ParâmetroDescriçãoObrigatório
identificationDocumento de Identificação Pessoal do Titular (RG, CNH ou Passaporte) detentor dos dados informados no objeto data
selfieFoto (selfie) do titular da Conta
address_proofComprovante de Endereço do Titular da Conta (contas de luz, energia, água ou internet) dos últimos 90 dias. Se person_type é Pessoa Jurídica, envie Comprovante de Endereço da companhia.
balance_sheetRelatório financeiro da CompanhiaSe person_type é Pessoa Jurídica
social_contractContrato SocialSe person_type é Pessoa Jurídica
additional_document_oneDocumento adicional 1
additional_document_twoDocumento adicional 2

Request e Response exemplo

curl --request POST \
     --url 'https://api.iugu.com/v1/accounts/account_id/request_verification?api_token=<seu-api_token>' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "data": {
    "physical_products": false,
    "automatic_transfer": false,
    "price_range": "Até R$ 100,00",
    "business_type": "Meu negócio",
    "person_type": "Pessoa Jurídica",
    "cnpj": "66644651000122",
    "company_name": "Minha empresa",
    "address": "Av. das Nações Unidas, 12495",
    "cep": "04578-000",
    "city": "São Paulo",
    "district": "Cidade Monções",
    "state": "SP",
    "telephone": "5511971111111",
    "resp_name": "Nome do Resp",
    "resp_cpf": "113.436.750-30",
    "bank": "Santander",
    "bank_ag": "0723",
    "account_type": "Corrente",
    "bank_cc": "99999999-D"
  }
}
'
{
  "id": "5F0610FC05AA4EF391738124B312BBFA",
  "data": {
    "price_range": "Até R$ 100,00",
    "physical_products": false,
    "business_type": "Meu negócio",
    "person_type": "Pessoa Jurídica",
    "automatic_transfer": false,
    "cnpj": "66644651000122",
    "address": "Av. das Nações Unidas, 12495",
    "cep": "04578000",
    "city": "São Paulo",
    "state": "SP",
    "telephone": "5511971111111",
    "resp_name": "Nome do Resp",
    "resp_cpf": "113.436.750-30",
    "bank": "Santander",
    "bank_ag": "0723",
    "account_type": "Corrente",
    "bank_cc": "99999999-D",
    "resp_cpf": "testes",
    "bank_ispb": "00360305"
  },
  "account_id": "3A605D267BBD4B41BC6CCF2CCA086C4A",
  "created_at": "2024-04-30T13:41:13-03:00"
}

Sequência de Chamadas

Diagrama de Sequência para Criar e Verificar Subconta

Diagrama de Sequência para Criar e Verificar Subconta



3. Configurar Subconta

Após criação da subconta, utilize o endpoint Configurar ContaPOST v1/accounts/configuration para alterações em suas configurações.

Ativar métodos de pagamento

Cartão de Crédito

Utilize o objeto credit_card e informe os seguintes parâmetros para:

ParâmetroAção
activeAtivar/desativar o método
installmentsAtivar/desativar parcelas
max_installmentsDefinir número máximo de parcelas
max_installments_without_interestDefinir número máximo de
parcelas sem juros
two_step_transactionAtivar/desativar Transação em Duas Etapas

Boleto Bancário

Utilize o objeto bank_slip e informe os seguintes parâmetros para:

ParâmetroAção
activeAtivar/desativar o método
extra_dueDeterminar número de
dias de vencimento extras
reprint_extra_due2ª via — Determinar número de
dias de vencimento extras

Pix

Utilize o endpoint Configurar Pagamentos PixPOST v1/payments/pix.

ParâmetroAção
enableAtivar/desativar o método

Com os métodos de pagamento que deseja devidamente ativados, continue com este artigo para configurar o Split de Pagamento.


Split de Pagamentos

Há uma série de formas de utilizar o Split Payment, independente de qual conta gerará a Fatura (Mestre ou Subconta). Consulte este artigo para saber mais.


Features complementares

Existem outros endpoints que permitem disponibilizar mais recursos ao seu parceiro. São eles:

Modificar Domicílio Bancário

Utilize o endpoint Adicionar Domicílio BancárioPOST v1/bank_verification para alterar a Conta Bancária que receberá os seus saques/transferências.

Dashboard

Utilize o endpoint Informações da ContaGET v1/accounts/{id} para exibir dados como Saldo Disponível para Saque, Saldo de Recebíveis, etc.

Extrato Financeiro

Utilize o endpoint Extrato FinanceiroGET v1/accounts/financial para exibir dados que facilitam a conciliação.


Mais configurações

O endpoint Configurar Contav1/accounts/configuration conta com mais configurações do que as abordadas neste artigo. São elas:

📘

Antecipação de Recebíveis

Certifique-se de que a Antecipação de Recebíveis é um recurso disponível para utilização em sua conta. Para ativá-lo, contate nosso suporte.

ParâmetroAção
auto_withdrawAtivar/desativar Saque Automático
per_day_interestAtivar/desativar Juros de mora
finesAtivar/desativar Multa
late_payment_fineDeterminar a % do valor da multa
se fines for true
auto_advanceAtivar/desativar Antecipação de recebíveis Automático.
Se null (vazio), considera o auto_advance da Conta Mestre.
auto_advance_typeDeterminar o Tipo da Antecipação Automática
(daily, weekly, monthly ou days_after_payment)
auto_advance_optionDeterminar a Opção da Antecipação. Saiba mais
payment_email_notificationAtivar/desativar e-mail de notificação de
fatura paga (pagador)
payment_email_notification_receiverAtivar/desativar e-mail de notificação de
fatura paga (recebedor)
early_payment_discountAtivar/desativar desconto por pagamento antecipado
early_payment_discountsConfigurações de desconto por pagamento antecipado se
early_payment_discount for true
disabled_withdrawDesabilitar saque da conta
customer_minimum_balance_centsDeterminar saldo mínimo que deve permanecer na conta
durante um saque