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.
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": "SPI",
"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 dígitos. |
| Campo do response | Tipo | Descrição |
|---|---|---|
status |
string | Nasce EM_ANALISE. Passa a ATIVA depois da análise, e pode ir a SUSPENSA, BLOQUEADA ou ENCERRADA. Quem muda é a instituição. |
custodiante |
string | Onde o saldo dela vive. 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 que já estava em curso liquida.
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": "SPI"
}
]
}
GET /v2/ex/subcontas/{id} devolve uma sub-conta.
Consultas por sub-conta #
GET /v2/ex/saldo, GET /v2/ex/cobrancas, GET /v2/ex/pix, GET /v2/ex/extrato/{data}, GET /v2/ex/transacoes e GET /v2/ex/resumo aceitam ?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.
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 do formato. |
| 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. |