Pular para o conteúdo principal

Caixa — Consultar e ativar a wallet em nome do participante

Duas rotas regionais (wallet-api, /v1/events/{eventId}/...):

EndpointO 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/activateCria 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}/statementExtrato 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>"
Resposta
{
"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âmetroO que faz
typeSó um tipo de movimento (hoje só recharge existe).
occurredAfter / occurredBeforeIntervalo de datas, ISO 8601, inclusivo dos dois lados.
sortDirectionasc ou desc (padrão: desc, mais recente primeiro).
limit1 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.