I wrote a voucher manager for pfSense Captive Portal. You can import vouchers into a database and user can request vouchers from there (self-service).
I tested it with pfSense, but i think it should run with OPNsense also.
What do you need ?
– pfSense Firewall running Captive Portal
– SQL Database (I had tested with MS SQL and MS SQL Express)
The source code with a short tutorial can be found here:
https://github.com/jbrundiers/PfsenseVoucherMgr