Ir para o conteúdo
A AmunPay API PixVersão 3.38 · atualizada em Páginas

Sub-contas

Uma sub-conta é uma conta com saldo próprio sob a sua: uma filial, uma unidade de negócio, um lojista do seu marketplace. Uma cobrança com ex.subconta credita nela; ?subconta= nas consultas recorta o que é dela.

Algumas contas não têm sub-contas. Leia capacidades.subcontas em GET /v2/ex/config: quando é false, criar uma sub-conta responde 503 capacidade_indisponivel, e as consultas continuam respondendo.

Criar #

PUT /v2/ex/subcontas/{id}

Escopo: ex.subcontas.write.

PUT /v2/ex/subcontas/SUB01J1ZK7M9QW3ERT5TY6UI8O
{
  "nome": "Filial Centro",
  "cnpj": "11222333000181"
}
→ 201
{
  "id": "SUB01J1ZK7M9QW3ERT5TY6UI8O",
  "nome": "Filial Centro",
  "cnpj": "11222333000181",
  "status": "EM_ANALISE",
  "custodiante": "Conta PI",
  "herda": true,
  "aceitaSplit": true,
  "criadoEm": "2026-09-18T12:00:00Z",
  "atualizadoEm": "2026-09-18T12:00:00Z"
}
Campo Tipo Obrigatório Descrição
nome string sim Nome da sub-conta.
cnpj string sim CNPJ do titular da sub-conta: 14 posições, sem pontuação, com os dígitos verificadores. As 12 primeiras podem ser dígitos ou letras, e a letra minúscula é lida em maiúscula; as 2 últimas são dígitos. Fora disso, 400 cnpj_invalido.
Campo do response Tipo Descrição
status string Nasce EM_ANALISE. Da análise vai a ATIVA ou a RECUSADA, às vezes passando por EM_DILIGENCIA. De ATIVA pode ir a SUSPENSA, BLOQUEADA ou ENCERRADA, e das duas primeiras voltar a ATIVA. RECUSADA e ENCERRADA são finais. Quem muda é a instituição.
custodiante string O nome da instituição por onde as operações novas dela passam (a cobrança, o saque), o mesmo de custodia.custodiante em GET /v2/ex/config?subconta={id}. Para ler, não para programar contra. Somente leitura: quem troca é a AmunPay, e o que já existe segue pela instituição em que nasceu.
herda boolean true quando ela opera pela mesma instituição da conta principal e acompanha cada troca dela; false quando tem uma própria. Somente leitura.
aceitaSplit boolean Se uma cobrança desta sub-conta pode levar ex.splitConfig. Não se deduz de custodiante. Com false, ela responde 422 split_de_outro_custodiante. Ausente quando não foi apurado. Somente leitura.

Cada mudança de status emite subconta.atualizada. Cobrança e saque novos exigem a sub-conta ATIVA e respondem 403 subconta_indisponivel fora dela. O saque já em processamento liquida. A cobrança já emitida, se for paga com a sub-conta fora de ATIVA, não credita: o Pix é recusado ou devolvido ao pagador, com o evento cob.pagamento_rejeitado (motivo SUBCONTA_INDISPONIVEL).

Listar e consultar #

GET /v2/ex/subcontas

Escopo: ex.subcontas.read.

GET /v2/ex/subcontas
→ 200
{
  "subcontas": [
    {
      "id": "SUB01J1ZK7M9QW3ERT5TY6UI8O",
      "nome": "Filial Centro",
      "cnpj": "11222333000181",
      "status": "EM_ANALISE",
      "custodiante": "Conta PI",
      "herda": true
    }
  ]
}

?status= filtra a lista pela situação. GET /v2/ex/subcontas/{id} devolve uma sub-conta.

Consultas por sub-conta #

GET /v2/ex/config, GET /v2/ex/saldo, GET /v2/ex/cobrancas, GET /v2/ex/pix, GET /v2/ex/extrato/{data}, GET /v2/ex/extrato/{data}/arquivo, GET /v2/ex/transacoes, GET /v2/ex/transacoes/mapear e GET /v2/ex/resumo aceitam ?subconta=. As capacidades de uma sub-conta podem ser diferentes das da conta principal: antes de cobrar, sacar ou devolver por ela, leia GET /v2/ex/config com ?subconta=.

GET /v2/ex/saldo?subconta=SUB01J1ZK7M9QW3ERT5TY6UI8O
→ 200
{
  "subconta": "SUB01J1ZK7M9QW3ERT5TY6UI8O",
  "disponivel": "0.00",
  "total": "0.00"
}

Inquilinos #

Quando capacidades.baas é verdadeiro em GET /v2/ex/config, uma sub-conta pode ter credencial própria e operar sozinha, sobre a própria conta, com escopos que são um subconjunto dos seus. POST /v2/ex/inquilinos emite a credencial, GET /v2/ex/inquilinos lista e DELETE /v2/ex/inquilinos/{sub} revoga. Escopo: ex.inquilinos.write e ex.inquilinos.read. A credencial do inquilino nasce sem IP e só pede token depois que a AmunPay cadastra os IPs de saída dele. Antes disso, o token e cada chamada respondem 403 origem_nao_permitida.

Erros #

Status title Quando
400 id_invalido id fora de 26 a 35 caracteres alfanuméricos.
400 nome_obrigatorio nome vazio.
400 cnpj_invalido cnpj fora das 14 posições, com pontuação ou com os dígitos verificadores errados.
400 status_invalido Filtro status fora da lista.
409 id_duplicado O mesmo id já existe com outro corpo.
403 subconta_indisponivel Operação numa sub-conta que não está ATIVA.
403 subconta_de_outro A credencial é de uma sub-conta e pediu outra.
404 nao_encontrado A sub-conta não existe nesta conta.
503 capacidade_indisponivel capacidades.subcontas é false: a conta não tem sub-contas.