Pular para o conteúdo principal

Caixa — Recarga

EndpointO que faz
POST /v1/events/{eventId}/cashier/topupsRecarrega a wallet do participante. Sempre imediata — não existe confirmação externa de pagamento nesta fase, o caixa só declara como o dinheiro entrou.

paymentMethod é texto livre, não uma lista fechada — "cash", "credit_card", "pix", ou qualquer categoria que a organização usar. Exige o header Idempotency-Key: repetir a mesma chave devolve o mesmo resultado, sem recreditar — mesmo que as duas chamadas cheguem ao mesmo tempo, nunca executam a recarga em paralelo. Se uma segunda chamada com a mesma chave chegar enquanto a primeira ainda está em andamento, ela é rejeitada com 409 IDEMPOTENCY_KEY_IN_PROGRESS (em vez de esperar) — tente de novo em seguida, não é um erro definitivo.

Resposta
{
"walletId": "018f26d7-...",
"eventId": "018f26d7-...",
"availableAmountMinor": 21750,
"replayed": false
}

replayed diz se essa resposta é de uma recarga nova ou a repetição de uma chamada anterior com a mesma Idempotency-Key — false quando a recarga aconteceu agora, true quando é a mesma resposta de antes, sem crédito novo algum. Reusar a mesma chave com um corpo diferente (outro amountMinor, userId, etc.) não devolve o resultado antigo por engano — vira 409 IDEMPOTENCY_KEY_BODY_MISMATCH: gere uma chave nova pra cada operação logicamente diferente.

curl -X POST http://127.0.0.1:8787/v1/events/{eventId}/cashier/topups \
-H "Authorization: Bearer <accessToken do caixa>" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: <uuid gerado pelo cliente>" \
-d '{ "userId": "<userId do participante>", "amountMinor": 5000, "paymentMethod": "cash" }'