Transfer Subaccount Balance
Move saldo entre a subconta e a conta principal, nos dois sentidos. É uma operação contábil: nenhum PIX é enviado e o dinheiro real não sai da carteira da sua conta. Muda apenas a quem o valor está atribuído.
to_master debita a subconta (exige saldo suficiente; a checagem é atômica, duas transferências concorrentes não deixam saldo negativo). to_subaccount credita a subconta a partir do pool NÃO ATRIBUÍDO da conta principal (sacável da carteira menos o que as subcontas já detêm: o unattributedCents do GET /v1/wallet): aporte atribui dinheiro que existe, não cria. Sem lastro é 400; corrida entre duas transferências pelo mesmo lastro desfaz a perdedora com 409 (repita).
amountCents é número JSON inteiro de 1 a 100000000000 (R$ 1 bilhão). String, decimal ou acima do teto: 400, sem coerção.
Idempotência: mande idempotencyKey NO CORPO (esta API não usa header de idempotência). A repetição devolve 200 com a transferência original e idempotentReplay true, em vez de mover o valor duas vezes.
Para pagar um cliente de verdade, transfira to_master e faça um saque normal em POST /v1/payouts com a chave PIX dele.
Authorizations
Chave de API gerada no dashboard da PurinCash (ps_live_ ou ps_test_).
Path Parameters
Body
Sentido da transferência.
to_master, to_subaccount Valor em centavos. Número JSON inteiro: string e decimal são recusados com 400.
1 <= x <= 100000000000Texto livre que aparece no extrato.
200Chave de idempotência OPCIONAL, enviada no CORPO (não existe header de idempotência nesta API). Com ela, repetir a mesma requisição devolve 200 com a transferência original e idempotentReplay true, em vez de mover o valor de novo. Vira o refId do lançamento com o prefixo idem_. Escopo: a subconta. Sem a chave, cada requisição é uma transferência nova.
64^[A-Za-z0-9_-]+$Response
Repetição de uma transferência já registrada com o mesmo idempotencyKey. Nada foi movido de novo: o corpo descreve a transferência ORIGINAL e traz idempotentReplay true.

