Skip to main content
Uma subconta representa um cliente seu (um vendedor do seu marketplace, um franqueado, um parceiro). O dinheiro continua no seu saldo; a subconta guarda quanto dele é atribuído a esse cliente, e essa parte não sai nos seus saques, Pix e transferências (só no saque da própria subconta). Uma cobrança criada com 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 pedem Idempotency-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ê.
Paga, cada subconta recebe a parte dela menos a tarifa da WyzeCash na mesma proporção e a sua comissão. A cobrança volta com 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 webhook subaccount.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
É um saque normal (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.