Caixa — Consultar e ativar a wallet em nome do participante
Duas rotas regionais (wallet-api, /v1/events/{eventId}/...):
| Endpoint | O que faz |
|---|---|
GET /v1/events/{eventId}/cashier/wallets/{userId} | Consulta pura: saldo e status da wallet desse participante nesse evento. 404 WALLET_NOT_FOUND se ele ainda não ativou. |
POST /v1/events/{eventId}/cashier/wallets/activate | Cria a wallet, usando a activationAuthorization obtida no passo anterior (ver Localizar ou cadastrar participante). Idempotente. A autorização só pode ser usada uma vez — mesmo se a ativação falhar por outro motivo, ela é consumida; peça uma nova em caso de erro. |
GET /v1/events/{eventId}/cashier/wallets/{userId}/statement | Extrato paginado das movimentações dessa wallet (recargas hoje; vendas/estornos quando existirem). |
curl -X POST http://127.0.0.1:8787/v1/events/{eventId}/cashier/wallets/activate \
-H "Authorization: Bearer <accessToken do caixa>" \
-H "Content-Type: application/json" \
-d '{ "userId": "<userId devolvido no passo anterior>", "activationAuthorization": "<token devolvido no passo anterior>" }'
Extrato
curl "http://127.0.0.1:8787/v1/events/{eventId}/cashier/wallets/{userId}/statement?limit=20&sortDirection=desc" \
-H "Authorization: Bearer <accessToken do caixa>"
{
"items": [
{
"entryId": "018f26d7-...",
"transactionId": "018f26d7-...",
"type": "recharge",
"accountType": "WALLET_AVAILABLE",
"amountMinor": 5000,
"occurredAt": "2026-09-03T16:30:29.377Z",
"paymentMethod": "cash",
"note": null,
"createdByOperatorUsername": "CX-55130771",
"createdByOperatorDescription": "Entrada Principal"
}
],
"nextCursor": null
}
createdByOperatorUsername/createdByOperatorDescription identificam quem
fez a movimentação (o caixa ou, no futuro, o PDV) — vêm gravados junto com o
lançamento no momento em que ele acontece, então continuam mostrando quem
era o operador na hora, mesmo que a conta seja renomeada depois. Ambos são
null quando não há operador, ou quando a conta não tem descrição
cadastrada.
Paginado por cursor (não por página numerada): quando nextCursor vier
preenchido, chame de novo com ?cursor=<valor> pra pegar a próxima leva —
mantendo os mesmos sortDirection/filtros da chamada original, senão a API
rejeita com WALLET_STATEMENT_CURSOR_SORT_MISMATCH.
Filtros disponíveis, todos opcionais e combináveis:
| Parâmetro | O que faz |
|---|---|
type | Só um tipo de movimento (hoje só recharge existe). |
occurredAfter / occurredBefore | Intervalo de datas, ISO 8601, inclusivo dos dois lados. |
sortDirection | asc ou desc (padrão: desc, mais recente primeiro). |
limit | 1 a 100 (padrão 50). |
amountMinor vem com sinal — positivo é crédito (dinheiro entrando),
negativo é débito. paymentMethod/note só aparecem em lançamentos de
recarga; ficam null pra outros tipos de movimento no futuro.