Skip to main content
Subcontas merchant são carteiras lógicas vinculadas à sua conta GoatPay principal. Servem para separar saldo por produto, parceiro ou unidade de negócio, sem abrir outra conta na GoatPay.

Habilitação

Sem habilitação, a API retorna 403 em rotas subaccount/* e ao enviar subaccountId no PIX. A solicitação de acesso não existe na API pública hoje — apenas no dashboard.

Permissões na API key

Marque o grupo Subcontas ao criar a chave. Cada rota exige uma permissão: Para PIX na subconta, use também payment-pix/create e/ou transfer-pix/create na mesma chave.

Conceitos

Portal Wallet

O Portal Wallet permite que o titular ou operador de uma subconta acesse uma carteira dedicada em wallet.goatpay.com.br, separada do login da conta principal em app.goatpay.com.br. Cada subconta pode ter um usuário de portal (e-mail + senha). A sessão é isolada da conta merchant.

O que o operador vê

Habilitar login na subconta (API key)

Use a API pública v1/subaccount/* com header X-API-Key. Todas as rotas abaixo exigem permissões específicas na chave (subaccount/portal/*).

Na criação da subconta

Inclua portalEmail e portalPassword em POST /v1/subaccount/create:
Se ambos forem informados, o acesso fica ativo na hora. O operador entra em wallet.goatpay.com.br/login com e-mail e senha — sem confirmação por e-mail.
Se você informar portalEmail sem portalPassword, a API retorna erro.

Subconta já existente (sem login)

POST /v1/subaccount/portal/setup — permissão subaccount/portal/setup:
Resposta de sucesso: { "success": true, "mode": "portal_ready" }.

Consultar status do portal (API key)

GET /v1/subaccount/portal/status — permissão subaccount/portal/get
  • Sem query: lista todas as subcontas com estado do portal.
  • Com ?id= ou ?externalReference=: status de uma subconta.
Exemplo de item na resposta:
Estados possíveis:

Outras rotas de gestão (API key)

Alternativa: dashboard merchant

As mesmas operações estão disponíveis no app em Contas → Subcontas → Gerenciar subconta → aba Portal.

Login do operador (wallet)

O operador entra em wallet.goatpay.com.br/login com o e-mail e a senha cadastrados pelo merchant. A sessão fica limitada à subconta vinculada — saldo, PIX, extrato e MED respeitam os mesmos limites da API pública.

Relação com a API pública

  • Criar/movimentar subcontas via API key continua em v1/subaccount/*.
  • O Portal Wallet é opcional e voltado a operação humana na interface web.
  • PIX, extrato e MED no wallet respeitam os mesmos saldos e bloqueios da subconta no trilho Padrão.

Fluxo recomendado

1

1. Habilitar e criar subconta

Após aprovação no dashboard, crie a subconta com cadastro KYC (PF ou PJ): POST /subaccount/create com nome, CPF, data de nascimento, CEP e, para PJ, CNPJ, razão social, site e comprovante em multipart.No app GoatPay, configure taxas globais em Subcontas e use Gerenciar subconta para saldo, transferências, limites, bloqueios e taxas PIX in/out. Opcionalmente configure o Portal Wallet na aba Portal ou com portalEmail + portalPassword na criação (senha obrigatória junto com o e-mail).Criar subconta · Portal Wallet
2

2. Alocar saldo (opcional)

POST /subaccount/add-balance transfere da conta principal para a subconta.Ou receba PIX direto na subconta (passo 4).
3

3. Configurar limites e bloqueios (opcional)

set-limits, lock / unlock conforme política de risco.
4

4. PIX na subconta

Não há rotas /subaccount/payment-pix. Use as rotas PIX normais com subaccountId no body (veja abaixo).
5

5. Reconciliar

GET /subaccount/balance ou get / list. Extrato filtrado por subconta (API key ou dashboard): GET /v1/account/transactions?subaccountId={id} ou merchantSubaccountId={id}. Cobranças PIX da subconta: GET /v1/payment-pix/list?subaccountId={id}.Extrato da conta · Listar cobranças PIX

Receber PIX (cobrança QR) na subconta

Não existe POST /subaccount/payment-pix/create. Use a rota padrão de cobrança com o ID da subconta:
Consulta e listagem: Consultar cobrança (por id ou externalReference); Listar com ?subaccountId= para filtrar só aquela subconta. A resposta inclui subaccountId quando a cobrança foi criada com subconta. Webhooks payment.created / payment.paid não mudam. Documentação completa de criar cobrança PIX

Enviar PIX (saque) da subconta

Mesmo padrão: rota de saque existente + subaccountId:
Documentação de enviar PIX

Movimentação interna (sem PIX)

Rotas add-balance, remove-balance e transfer são idempotentes quando você repete o mesmo externalReference (ou payload equivalente derivado internamente).

Saldo da subconta

GET /subaccount/balance?id=... ou ?externalReference=... Exemplo de balance em GET /subaccount/get/:id:
Na API pública, balance expõe apenas campos *Padrao. Use spendablePadrao como saldo utilizável para saques e remove-balance. Exclusão (delete) exige saldo Padr?o zerado.

Extrato filtrado

GET /v1/account/transactions?subaccountId={id} inclui, entre outros: Consultar taxas antes de set-pricing para ver totalPercentFee / totalFixedFee por operação.

Limites e bloqueio

Limites (set-limits): valores em reais ou null para remover. Gasto validado por agregação de transações de débito COMPLETED vinculadas à subconta (fuso America/Sao_Paulo). Bloqueio (lock):

MED e reembolso

  • MED: quando o depósito PIX estava vinculado à subconta (subaccountId na cobrança), o bloqueio reduz o disponível da subconta e aumenta lockedPadraonão usa blockedAmount da conta principal. MED em PIX da conta principal segue o fluxo normal na main. Veja também Disputas MED.
  • Reembolso PIX: a taxa de saída segue o pricing da subconta; o débito reserva saldo na subconta (líquido retido + taxa). Informe subaccountId em POST /refunds/create quando o depósito pertence à subconta. Na conclusão do estorno, lucro de subconta creditado na main pode ser revertido. Solicitar reembolso

Taxas (PIX entrada e PIX saída)

Subcontas pagam: taxa da conta principal + acréscimo configurado.
  • API pública: POST /subaccount/set-pricing define acréscimo por subconta. O valor soma à taxa da conta principal; na liquidação do PIX in, o acréscimo credita a conta principal (SUBACCOUNT_PROFIT).
  • Preview: GET /subaccount/pricing com id ou externalReference retorna simulação antes de cobrar. Definir taxas

Endpoints

Criar

Nova subconta com externalReference.

Consultar

Por id na URL.

Por referência

GET .../get-by-ref/{externalReference}.

Listar

Paginação e filtro status.

Saldo

Query id ou externalReference.

Adicionar saldo

Main → subconta.

Remover saldo

Subconta → main.

Transferir entre subs

fromSubaccountIdtoSubaccountId.

Atualizar

Nome e status ACTIVE / DISABLED.

Excluir

Saldo zerado no Padrão.

Bloquear

full, withdraw_only, deposit_only.

Desbloquear

Volta ao modo normal.

Limites

Diário, mensal e por transação.

Taxas

Acréscimo PIX in/out.
Para excluir uma subconta, zere o saldo (remove-balance ou saques) e use POST /subaccount/delete. A resposta confirma com { "id": "..." }. Subcontas com saldo retornam erro 400.