This is an old revision of the document!



Vouchers

  • Vouchers are a once off way to give someone access to the Internet.
  • With a voucher you don't care who are using it and we thus do not record any personal information with a voucher.
  • A Voucher has to belong to a Profile and Realm in order to be useful to RADIUS.
  • There are dedicated Wiki Pages that cover adding a Profile and a Realm.
  • In this page we will show you how to add a Voucher to a Cloud in RADIUSdesk using an API call.
  • We will use PHP but the principles can be applied using any programming language.
  • There are two classes of vouchers.
    • Single Field - Username and Password are of the same value and typically an easy to remember compound word.
    • Username and Password - Username and Password are different where the username is easy to remember but the password is a random generated string.
  • There is the option to create a single voucher or a batch of vouchers.
  • Batches will be grouped by a batch name.
  • Activate and Expire
    • By default a voucher never expires.
    • One can specify an expiry date where-after the voucher can not be used.
    • There is also the option to activate the voucher when a user logs in for the first time.
    • These type of vouchers are time based and you can specify the how long after the first login the voucher expires.
  • Extra Fields
    • There are an optional Extra field name and Extra field value that can be used to store extra information.

Add a single voucher using the API

  • When using the API to generate vouchers you have the option to create a single voucher or a batch of vouchers.
  • Here we will cover the API call to create a single voucher.
add_single_voucher.php
<?php
 
    // Configuration
    $api_url    = 'http://127.0.0.1/cake4/rd_cake/permanent-users/add.json';
    $token      = 'b4c6ac81-8c7c-4802-b50a-0a6380555b50';
    $cloud_id   = 23; // replace with the Cloud ID that you want to work on.
    $username   = 'testuser';
    $password   = 'testing123';
    $realm      = 'Dev';
    $profile    = 'MzanziFibre-12/1';
 
    // Set API payload
    $payload = [
 
        //Required Fields     
        'username'  => $username,
        'password'  => $password,
        'realm'     => $realm,
        'profile'   => $profile,
        'cloud_id'  => $cloud_id,
        'token'     => $token,
        'active'    => 'active', //active flag must be set for user to authenticate      
 
       /*        
       //Optional Fields  
        'name'          => '',
        'surname'       => '',     
        'phone'         => '',
        'email'         => '',
        'address'       => '',
        'from_date'     => '04/12/2025',
        'to_date'       => ''04/12/2026',
        'realm_id'	    => 19, //Alternative to Realm's name
        'profile_id'    => 49, //Alternative to Profile's name
        'static_ip'     => '192.168.1.100'
        'extra_name'    => '',
        'extra_value'   => '',
        'site'          => '',
        'ppsk'          => '',
        'auto_add'      => 'auto_add' //flag to automatically add the MAC Address the user connects with as a Device (BYOD) belonging to him
        */
    ];
 
    $json_payload = json_encode($payload);
    $ch = curl_init($api_url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json_payload);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
 
    $response = curl_exec($ch);
    curl_close($ch);
    echo "Added $username: $response\n";
 
?>
  • Now that we have created a Permanent User, we will cover some common actions that can be done on the Permanent User via the API.
  • technical/api-voucher-add.1779346058.txt.gz
  • Last modified: 2026/05/21 08:47
  • by system