subaccountId (ou dividida entre subcontas com split), quando paga, credita a cada subconta a parte dela − tarifa da WyzeCash na mesma proporção − sua comissão. Estorno ou devolução (MED) de uma venda saem de cada subconta na mesma proporção.
Em toda rota /v1/subaccounts/{id} (e no subaccountId da cobrança e do link), {id} aceita o sacc_... ou o seu externalId.
Criar uma subconta
POST /v1/subaccounts · escopo subaccounts:write
string
required
2 a 80 caracteres. Vai mudar: o nome vai seguir o titular (nome completo para CPF, razão social para CNPJ), sem CPF/CNPJ nem id no nome; veja a regra do nome.
string | null
E-mail do cliente (guardado criptografado). A lista devolve só
hasEmail; criar, consultar e editar devolvem o e-mail.string | null
O identificador do cliente no seu sistema (letras, números, ponto, hífen e sublinhado; até 64). Único por conta:
409 EXTERNAL_ID_IN_USE.integer
Sua comissão por venda em pontos-base (100 = 1%; 0 a 10000).
integer
Parte fixa da comissão por venda, em centavos.
integer
Sua taxa por saque da subconta, em pontos-base.
integer
Parte fixa da taxa por saque, em centavos. Ela paga a tarifa do saque da WyzeCash; o que sobra fica com você.
"global" | "custom"
global segue a taxa global da Configuração das subcontas; custom usa as taxas acima. Sem feeMode e sem nenhuma taxa no pedido, a subconta nasce na global; com alguma taxa, fica com a própria.object | null
{ "keyType": "cpf" | "cnpj" | "email" | "phone" | "random", "key": "..." }: a chave Pix do cliente, conferida no banco e guardada criptografada. Vira o destino padrão do saque da subconta (não precisa mandar a chave em cada saque). Volta com o titular e o banco: inteira ao criar, consultar e editar, mascarada na lista.object | null
Dados livres do seu sistema (objeto JSON, até 2 KB). Volta na consulta da subconta.
balance é o saldo atribuído à subconta (centavos), nunca negativo. saleFee e withdrawFee são as taxas que valem (na global, as da Configuração) e feeMode diz de onde vêm.
Bloqueios
Uma subconta pode estar bloqueada de dois jeitos, e os dois aparecem no detalhe e na lista:
O
platformLock vale junto com o lockMode e só a WyzeCash tira: fale com o suporte em Ajuda, no painel. O que estiver bloqueado responde 422 SUBACCOUNT_LOCKED, com a mensagem dizendo qual bloqueio (ex.: “A WyzeCash bloqueou a saída de dinheiro desta subconta. Fale com o suporte em Ajuda.”). A venda já criada e paga depois de um bloqueio de entrada fica com você, na conta principal.
Configuração das subcontas
Uma configuração por conta, que vale para todas as subcontas sem configuração própria. Só o dono da conta muda.- Taxa global: a sua comissão por venda e taxa por saque das subcontas com
feeMode: "global". Começa zerada. Mudar a global muda todas as que seguem a global. - Limites padrão: copiados para cada subconta criada depois (o que o pedido manda vale por cima).
- Bloqueio automático por MED (
medAutoLock, desligado de início): um MED numa venda da subconta sem saldo livre para reservar a parte dela tranca o saque dela (medLocked: true) e o que falta fica pendente (medPending). As próximas entradas dela (venda, envio, transferência) cobrem a pendência, nunca o seu saldo; sem pendência, ela destrava sozinha. Veja Mudar a configuração.
Listar, ver e alterar
Desativada (
active: false): não recebe venda, envio nem transferência e não saca (SUBACCOUNT_INACTIVE); a venda paga depois fica com você. Devolver à principal continua valendo.
Movimentos da subconta
GET /v1/subaccounts/{id}/entries?limit=&cursor=&from=&to=&kind= · escopo transactions:read
Filtros opcionais: from e to (AAAA-MM-DD vale o dia inteiro em Brasília; com data e hora ISO, to é exclusivo) e kind (um ou mais tipos separados por vírgula).
Enviar, transferir e devolver
Sem tarifa e sem dinheiro saindo da WyzeCash: só muda de quem é cada parte do seu saldo. As três pedemIdempotency-Key (repetir com os mesmos dados devolve o mesmo movimento; com outros dados, IDEMPOTENCY_KEY_REUSED).
Excluir
DELETE /v1/subaccounts/{id} · escopo subaccounts:write
O saldo volta à sua conta principal (um movimento return), a subconta some das listas e da API e o externalId fica livre para outra. O extrato dela fica guardado. Com saque dela em andamento: 409 SUBACCOUNT_BUSY, espere concluir.
Dividir uma venda entre subcontas
Na criação da cobrança,split (no lugar de subaccountId) divide a venda entre até 10 subcontas, cada uma com um valor em centavos; a soma vai até o valor da cobrança e o resto fica com você.
split (subconta, nome e valor). Um link de pagamento também pode creditar numa subconta (subaccountId); se ela estiver desativada, quem paga não é barrado e a venda fica com você.
O saldo dos clientes é protegido
GET /v1/balance traz subaccounts (a soma do que é das subcontas) e free (o que é seu). Seus saques, Pix enviados e transferências só usam o free (SUBACCOUNT_FUNDS); o dinheiro das subcontas só sai no saque delas.
Avisos
Cada movimento manda o webhooksubaccount.credited (entrou) ou subaccount.debited (saiu), com o saldo da subconta depois dele. Veja Webhooks de subcontas.
Saque da subconta para o cliente
POST /v1/subaccounts/{id}/withdrawals · escopo withdrawals:write · Idempotency-Key obrigatória
SAQ-API-), com as mesmas regras do saque. O Pix vai para a chave enviada em destination ou, sem ela, para a pixKey guardada na subconta (sem nenhuma das duas: DESTINATION_REQUIRED). amount sai da subconta; a sua taxa por saque paga a tarifa da WyzeCash e o que sobra fica com você; se a sua taxa não cobre a tarifa, ela sai do valor sacado. Se não sobrar nada para o cliente: FEE_ABOVE_AMOUNT. Subconta desativada não saca. Falhou ou foi recusado, o valor volta à subconta. A resposta e os webhooks são os do saque.