> ## Documentation Index
> Fetch the complete documentation index at: https://docs.purincash.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Carteira

> Saldo bruto, retido, a liberar e sacável. Quatro números que não são a mesma coisa.

`GET /v1/wallet` devolve o saldo da loja separado por situação. A confusão comum é achar
que "saldo" é o quanto dá pra sacar, e não é.

```bash theme={null}
curl https://api.purincash.com/v1/wallet \
  -H "Authorization: Bearer $PURINCASH_KEY"
```

```json theme={null}
{
  "currency": "BRL",
  "balance": 1250.00,
  "balanceCents": 125000,
  "disputeBlocked": 230.70,
  "withdrawable": 1019.30,
  "withdrawableCents": 101930,
  "pendingRelease": 480.00,
  "pendingReleaseCents": 48000,
  "cryptoBalanceLtc": 0.15068859
}
```

## O que cada número significa

<ResponseField name="balance" type="number">
  Saldo bruto da carteira, em reais. É o total que entrou e ainda não saiu, sem descontar
  retenção.
</ResponseField>

<ResponseField name="disputeBlocked" type="number">
  Valor retido por [disputas](/guias/disputas) abertas ou perdidas que ainda não foram
  perdoadas. Fica indisponível até a contestação ser resolvida.
</ResponseField>

<ResponseField name="withdrawable" type="number">
  **É este que importa na hora de sacar.** Vale `balance - disputeBlocked`, e é o teto
  aceito por `POST /v1/payouts`.
</ResponseField>

<ResponseField name="pendingRelease" type="number">
  Vendas no cartão aguardando o prazo de liberação. Ainda **não** está em `balance` nem em
  `withdrawable`. É previsão de caixa, não dinheiro disponível.
</ResponseField>

<ResponseField name="cryptoBalanceLtc" type="number">
  Saldo em Litecoin, com 8 casas decimais. Sacável por `POST /v1/payouts` com
  `method: "ltc"`.
</ResponseField>

Todos os valores em reais têm um par em centavos (`balanceCents`, `withdrawableCents`,
`pendingReleaseCents`).

<Tip>
  Use os campos em centavos para qualquer conta. Ponto flutuante em dinheiro é como você
  ganha uma diferença de um centavo no relatório e perde uma tarde procurando.
</Tip>

## A relação entre eles

```
balance          = o que entrou e liquidou
  − disputeBlocked = retido por contestação
  = withdrawable   = o que POST /v1/payouts aceita hoje

pendingRelease   = cartão que ainda vai virar balance
```

Pedir um saque acima de `withdrawable` devolve `400` por saldo insuficiente, mesmo que
`balance` cubra o valor. Se isso te pegou de surpresa, quase sempre a resposta está em
`disputeBlocked`.

## Em sandbox

A rota funciona com chave `ps_test_`. O saldo é somado a partir das transações de teste, a
resposta traz `"sandbox": true`, e `disputeBlocked` e `cryptoBalanceLtc` ficam sempre em
zero.

<CardGroup cols={2}>
  <Card title="Tirar o dinheiro" icon="arrow-up-from-bracket" href="/guias/saques">
    PIX, LTC ou USDT, direto pela API.
  </Card>

  <Card title="Destravar retenção" icon="gavel" href="/guias/disputas">
    Como responder uma contestação e liberar o valor.
  </Card>
</CardGroup>
