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úblicav1/subaccount/* com header X-API-Key. Todas as rotas abaixo exigem permissões específicas na chave (subaccount/portal/*).
Na criação da subconta
IncluaportalEmail 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.
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.
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 Wallet2
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 PIXReceber PIX (cobrança QR) na subconta
Não existePOST /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:
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 (
subaccountIdna cobrança), o bloqueio reduz o disponível da subconta e aumentalockedPadrao— não usablockedAmountda 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
subaccountIdemPOST /refunds/createquando 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-pricingdefine 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/pricingcomidouexternalReferenceretorna 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
fromSubaccountId → toSubaccountId.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.
