Example Scenario
A complete walkthrough of a festival cup deposit flow.
Setup
An organizer creates a configuration for the "Summer Festival" organization with two container categories:
| Category | Deposit | Expiration |
|---|---|---|
| 0.5L Cup | 500 HUF | 48 hours |
| 0.3L Cup | 300 HUF | 48 hours |
Products are mapped: beer uses the 0.5L cup, wine uses the 0.3L cup.
1. Guest Orders Drinks
A guest orders 2 beers and 1 wine. The POS creates a transaction:
POST /v1/integrations/hybrid-revo-token-transactions
[
{ "productId": "beer_500ml", "quantity": 2 },
{ "productId": "wine_300ml", "quantity": 1 }
]
The system responds with a transaction code. The guest receives:
- 2x 0.5L Cup + 1x 0.3L Cup
- Total deposit charged: 1,300 HUF (2 x 500 + 1 x 300)
- Transaction code printed on receipt
2. Guest Returns Next Day
The guest returns with 2 large cups. The operator scans the transaction code and previews:
GET /v1/integrations/hybrid-revo-token-transactions/{code}/preview
[
{ "category": { "id": "cat_001", ... "name": "0.5L Cup" }, "activeItemCount": 2 },
{ "category": { "id": "cat_002", ... "name": "0.3L Cup" }, "activeItemCount": 1 }
]
The operator validates the return of 2x 0.5L cups:
POST /v1/integrations/hybrid-revo-token-transactions/{code}/validate
[
{ "hybridRevoTokenCategoryId": "cat_001", "quantity": 2 }
]
Result: Guest receives 1,000 HUF refund (2 x 500). The 0.3L cup remains active until the 48-hour window expires.
3. Expiration
The guest never returns the 0.3L cup. After 48 hours, the system automatically sets the item to EXPIRED status. The 300 HUF deposit is forfeited.