# Human validation vouchers

Human validation vouchers are designed for programs where it’s not possible to integrate your POS system with the Loyalty Engine, or where code-based validation isn’t suitable. Instead of using system integrations, a staff member validates the voucher by visually checking the user’s device during redemption.

#### When to use this voucher type

Choose human validation vouchers when:

* Your POS system cannot support API integrations.
* You don’t have a system in place to validate voucher codes.
* You’re running an in-person program where a staff member can visually check and validate redemptions.
* You want a low-tech redemption method with an optional manual reconciliation process.

This voucher type relies solely on a staff member verifying that a redemption is happening in real-time, by checking visual markers on the redemption screen.

<table><thead><tr><th valign="top">Advantages of </th><th valign="top">Disadvantages of</th></tr></thead><tbody><tr><td valign="top"><ul><li>No technical integration required.</li><li>Simple for in-store or face-to-face validation.</li><li>Staff can refer to the Loyalty Console to check voucher status if needed.</li></ul></td><td valign="top"><ul><li>Requires staff training and manual application of rewards.</li><li>Redemption is not validated at the point of fulfilment—only the initiation is logged automatically.</li><li>More limited tracking and reporting compared to code-based methods.</li></ul></td></tr></tbody></table>

***

## How it works

When a user redeems a human validation voucher, we recommend building a redemption screen in your customer interface that includes:

* A uniform code (the same for every user of that reward)
* A live countdown timer to show the screen is active
* The current date and time as an additional check

This screen allows staff to visually verify redemptions in real time, without needing to query the API or validate a code.

The staff member should check that:

* The countdown timer is active (not a static screenshot)
* The date and time match the current moment
* The code format looks correct (you can train staff to recognise valid codes)

The reward is then manually fulfilled in your POS or service.

You can optionally reconcile redemptions by comparing the number of redemptions shown in the Loyalty Engine with fulfilments logged in your internal systems.

### Code logic in WLL interfaces

In the [loyalty-microsite](https://kbase.whitelabel-loyalty.com/product/interfaces/white-label-interfaces/loyalty-microsite "mention") and [loyalty-mobile-app](https://kbase.whitelabel-loyalty.com/product/interfaces/white-label-interfaces/loyalty-mobile-app "mention"), human-validation vouchers use a 4-character code format. The character structure is designed so trained staff can quickly assess whether a code is plausibly valid.

> For example, using the logic below, the code for a voucher with the name 'Latte' being redeemed at 2.30pm on a Monday 3rd would be `SVLE`:
>
> * 2.30pm = `S`
> * Monday = `V`
> * Latte (name of reward) = `L`
> * 3rd of the month = `E`

{% tabs %}
{% tab title="First Letter" %}
The **first letter** is a **consonant** representing the **current hour of the day** in alphabetical order, specifically:

<table><thead><tr><th width="85.5625">Time</th><th>Letter</th></tr></thead><tbody><tr><td><strong>12am</strong></td><td><code>B</code></td></tr><tr><td><strong>1am</strong></td><td><code>C</code></td></tr><tr><td><strong>2am</strong></td><td><code>D</code></td></tr><tr><td><strong>3am</strong></td><td><code>F</code></td></tr><tr><td><strong>4am</strong></td><td><code>G</code></td></tr><tr><td><strong>5am</strong></td><td><code>H</code></td></tr><tr><td><strong>6am</strong></td><td><code>J</code></td></tr><tr><td><strong>7am</strong></td><td><code>K</code></td></tr><tr><td><strong>8am</strong></td><td><code>L</code></td></tr><tr><td><strong>9am</strong></td><td><code>M</code></td></tr><tr><td><strong>10am</strong></td><td><code>N</code></td></tr><tr><td><strong>11am</strong></td><td><code>P</code></td></tr><tr><td><strong>12pm</strong></td><td><code>Q</code></td></tr><tr><td><strong>1pm</strong></td><td><code>R</code></td></tr><tr><td><strong>2pm</strong></td><td><code>S</code></td></tr><tr><td><strong>3pm</strong></td><td><code>T</code></td></tr><tr><td><strong>4pm</strong></td><td><code>V</code></td></tr><tr><td><strong>5pm</strong></td><td><code>W</code></td></tr><tr><td><strong>6pm</strong></td><td><code>X</code></td></tr><tr><td><strong>7pm</strong></td><td><code>Y</code></td></tr><tr><td><strong>8pm</strong></td><td><code>Z</code></td></tr><tr><td><strong>9pm</strong></td><td><code>B</code></td></tr><tr><td><strong>10pm</strong></td><td><code>C</code></td></tr><tr><td><strong>11pm</strong></td><td><code>D</code></td></tr></tbody></table>
{% endtab %}

{% tab title="Second Letter" %}
The **second letter** is a **vowel** (or vowel-like letter) corresponding to the **current day of the week**.

<table><thead><tr><th width="144.59765625">Day</th><th>Letter</th></tr></thead><tbody><tr><td><strong>Monday</strong></td><td><code>V</code></td></tr><tr><td><strong>Tuesday</strong></td><td><code>A</code></td></tr><tr><td><strong>Wednesday</strong></td><td><code>E</code></td></tr><tr><td><strong>Thursday</strong></td><td><code>I</code></td></tr><tr><td><strong>Friday</strong></td><td><code>O</code></td></tr><tr><td><strong>Saturday</strong></td><td><code>U</code></td></tr><tr><td><strong>Sunday</strong></td><td><code>Y</code></td></tr></tbody></table>
{% endtab %}

{% tab title="Third Letter" %}
The **third letter** is a representation of the **first letter of the reward being redeemed** based on the following rules:

<table><thead><tr><th width="177.34375" valign="top">First letter of reward</th><th>Letter shown in code</th></tr></thead><tbody><tr><td valign="top"><strong>Is a consonant?</strong></td><td>The same letter.</td></tr><tr><td valign="top"><strong>Is a vowel?</strong></td><td><code>X</code></td></tr><tr><td valign="top"><strong>Is a number?</strong></td><td><p>The letter of the alphabet corresponding to that number.</p><p>0 → <code>A</code></p><p>1 → <code>B</code></p><p>2 → <code>C</code></p><p>3 → <code>D</code></p><p>4 → <code>E</code></p><p>5 → <code>F</code></p><p>6 → <code>G</code></p><p>7 → <code>H</code></p><p>8 → <code>I</code></p><p>9 → <code>J</code></p></td></tr></tbody></table>
{% endtab %}

{% tab title="Fourth Letter" %}
The **fourth letter** is a **vowel** (or vowel-like letter) representing the **current day of the month** rotating through the same 7 letters available for the second letter.

<table><thead><tr><th width="88.54296875">Time</th><th>Letter</th></tr></thead><tbody><tr><td><strong>1st</strong></td><td><code>V</code></td></tr><tr><td><strong>2nd</strong></td><td><code>A</code></td></tr><tr><td><strong>3rd</strong></td><td><code>E</code></td></tr><tr><td><strong>4th</strong></td><td><code>I</code></td></tr><tr><td><strong>5th</strong></td><td><code>O</code></td></tr><tr><td><strong>6th</strong></td><td><code>U</code></td></tr><tr><td><strong>7th</strong></td><td><code>Y</code></td></tr><tr><td><strong>8th</strong></td><td><code>V</code></td></tr><tr><td><strong>9th</strong></td><td><code>A</code></td></tr><tr><td><strong>10th</strong></td><td><code>E</code></td></tr><tr><td><strong>11th</strong></td><td><code>I</code></td></tr><tr><td><strong>12th</strong></td><td><code>O</code></td></tr><tr><td><strong>13th</strong></td><td><code>U</code></td></tr><tr><td><strong>14th</strong></td><td><code>Y</code></td></tr><tr><td><strong>15th</strong></td><td><code>V</code></td></tr><tr><td><strong>16th</strong></td><td><code>A</code></td></tr><tr><td><strong>17th</strong></td><td><code>E</code></td></tr><tr><td><strong>18th</strong></td><td><code>I</code></td></tr><tr><td><strong>19th</strong></td><td><code>O</code></td></tr><tr><td><strong>20th</strong></td><td><code>U</code></td></tr><tr><td><strong>21st</strong></td><td><code>Y</code></td></tr><tr><td><strong>22nd</strong></td><td><code>V</code></td></tr><tr><td><strong>23rd</strong></td><td><code>A</code></td></tr><tr><td><strong>24th</strong></td><td><code>E</code></td></tr><tr><td><strong>25th</strong></td><td><code>I</code></td></tr><tr><td><strong>26th</strong></td><td><code>O</code></td></tr><tr><td><strong>27th</strong></td><td><code>U</code></td></tr><tr><td><strong>28th</strong></td><td><code>Y</code></td></tr><tr><td><strong>29th</strong></td><td><code>V</code></td></tr><tr><td><strong>30th</strong></td><td><code>A</code></td></tr><tr><td><strong>31st</strong></td><td><code>E</code></td></tr></tbody></table>
{% endtab %}
{% endtabs %}
