You would probably be easier creating a system at another host, and using cURL commands to send data?
On my firewalls, the captive portal page checks that it can see a second box on the network which is used to host most of the captive portal page, and Syslog-NG for logging. If it can't see this box, it uses cURL to talk to my website, (via https:// and to a password protected area) and set a flag, if the unit is online, offline etc.
If it is offline, I get an e-mail, and a button shows on the Captive Portal, saying "We've been automatically informed of the problem, however, to send us an SMS, please click here." if someone clicks on that button, I get an SMS through (using bulksms.com)
So, it is definitely possible.
What you would probably have to do, is setup a database, setup vouchers in pfSense, import the voucher roll into your database, then when someone sends the number through to you, you can set your system to send an SMS back to their number, taking a voucher code from the roll in your DB.