Validate fueling vouchers across app, POS, ESB, and fuel switch.
FuelVoucher is a multi-app voucher and fueling authorization platform for station owners, operators, and customers. It lets a customer generate a voucher in a mobile app, validate it at the POS with QR or NFC, route eligibility checks through a voucher service and ESB to the fuel switch, and then reconcile fuel dispensed, refunds, and charges accurately. The product matters because it replaces manual approval and fragmented settlement with a secure, auditable flow from voucher issue to final fueling consumption.
Customer Farah, 34 - A frequent driver who buys or receives prepaid or entitlement-based fuel vouchers and wants a fast, trustworthy way to redeem them at any supported station.
Station Operator Reza, 41 - A forecourt operator using the POS to validate vouchers, initiate fueling, and record any post-fueling refund or excess consumption.
Station Owner Mina, 52 - Owns one or more stations and needs visibility into voucher sales, usage, exceptions, and settlement performance across sites.
Farah receives a prepaid fueling voucher in her customer app before a long trip. She opens the app at the station, displays the QR code, and the operator scans it on the POS. Within seconds the voucher is validated, locked, routed through the ESB, and approved by the fuel switch with a clear maximum liter allowance.
The operator sees the permitted liters and starts fueling without guessing or calling a supervisor. After the pump stops, the operator enters the exact liters dispensed, the system settles any overage or refund automatically, and Farah immediately sees the completed transaction in her app. The station gets a clean audit trail, fewer disputes, and faster throughput at the forecourt.
Team & resourcing - Small cross-functional team - 3 engineers, 1 product designer, part-time QA, part-time PM.
Paste this into Cursor, Bolt, Lovable, or v0 to start building.
Build a production-ready fuel voucher redemption platform called FuelVoucher. Use a sensible default stack: Next.js 14 for web dashboards, React Native for mobile apps, Node.js with TypeScript and NestJS for backend services, PostgreSQL for transactional data, Redis for token locks and idempotency, and Kafka or RabbitMQ for async integration events. Use JWT plus asymmetric signing for voucher tokens, and design for secure API integration with an ESB and a fuel switch. Core product: 1) Three user experiences: customer mobile app, station owner app/dashboard, and operator POS/tablet app. 2) Customer app: wallet balance, create voucher with amount or liters, view voucher QR/NFC token, transaction history, receipt lookup. 3) Operator POS app: scan QR or read NFC, validate signature locally, call voucher service to lock redemption, route authorization through ESB, display allowed liters, capture final dispensed liters, capture refund liters, and complete settlement. 4) Station owner dashboard: manage stations, view voucher usage analytics, reconciliation reports, exceptions, and audit logs. 5) Voucher service: issue vouchers, track wallet reservations, enforce one-time redemption, duplicate detection, expiry, status transitions, and settlement calculations. 6) Integration service: send validated requests to ESB, receive fuel switch allowance responses, persist correlation IDs and final consume confirmations. Primary screens/flows: Customer onboarding and login, wallet overview, create voucher, show QR/NFC token, voucher history, fueling receipt detail. Operator POS home, scan/tap screen, validation result screen, allowed liters screen, fueling confirmation, settlement screen, error/retry screen. Owner dashboard: stations list, redemptions, settlements, refunds, reports, audit logs, settings. Data model entities: User, Role, Station, Wallet, Voucher, VoucherToken, VoucherRedemption, FuelAuthorization, FuelDispense, RefundAdjustment, Settlement, AuditEvent, IntegrationRequest, IntegrationResponse. Include statuses such as Draft, Reserved, Locked, Authorized, Dispensed, Settled, Expired, Revoked, Rejected. Important logic: A voucher may be created as either amount-based or liter-based. At redemption, POS must validate the token signature, then the voucher service must lock it to prevent duplicates. The ESB and fuel switch determine the allowed liter cap based on customer identity fields such as national code, phone number, and PAN where applicable. The operator may dispense less than or equal to the allowance. After fueling, the operator enters actual liters and any refund liters; the system calculates any extra charge or refund and sends settlement updates back to voucher service and ESB. Engineering requirements: Implement RBAC, audit logging, request correlation IDs, idempotent settlement endpoints, validation errors with clear operator messages, retry/backoff for ESB and fuel switch calls, and observability with structured logs and metrics. Add seed/mock integration modes so the app can be demoed without live ESB or fuel switch access. Deliver responsive, accessible UI with large POS-friendly controls, QR scanner, NFC-ready hooks, and clear status states for success/failure/loading. Scaffold the backend APIs, database schema, and frontends with realistic folder structure, sample data, and environment variable templates.
hi. we have a business that is have 3 starter as customer, station owner and operator, the should have own application, we want they can communicate with a voucher service, in the vocher service they should have wallet, and we should generate vocher for them, voucher should accept with a pos device that should accept qr or nfc from that apps, then voucher should validate in pos and send this to the voucher service for check duplication and existation, then if get acc from that, send request of the information to esb server, it send data from an amp area that pos can communicate in that to the feul switch, then feul switch based on the the information is in the vocher such as national code, phone number and valid pan card should say that the voucher can used until how many liter, that voucher in first app generation can have liter or amount, and thet feul switch allow or disallow with an liter amount, then we should in pos show the alow based on that and user can choose the liter less equal that amount and after we generate token for that, we should send the used to voucher and esb for send to feul switch, and after feuling , if the operator enter any refund liter for that vocher we should say that to voucher server to charge as rial of that. say if you have any question 1-show voucher app costumer to pos 2- pos validate token signiture 3- send token to voucher service to accept and lock this 4- answer voucher service 5- pos send voucher detail to ESB server and ESB send to feul swtich 7- feul switch answer that this costumer detail have how many alow liter 8- ESB answer this to pos 9- customer choose an amount less equal that feul response 10- pos send that voucher used with liter detail to voucher and voucher server charge for extra amount that user paid. 11- pos generate and print token for feuling 12- send request to ESB to send consume to feul switch 13- get ok from that. 14- customer can get report of feuling by nfc or scan qr in costumer app
Design by The Resonance | Powered by GPC – The AI Transformation Company