Il est possible d'utiliser le code Java suivant pour vérifier le code RIO :

private static boolean is_RIO(String rio, String sMsisdn) {
    if (rio.length() != 12)
    return false;
    if (!sMsisdn.matches("0\\d{9,9}"))
        throw new IllegalArgumentException(
            "Le numéro de téléphone (msisdn) doit être au format 0612345678");

    String sRio = rio.toUpperCase();
    String operateur = sRio.substring(0, 2);
    String typeContrat = sRio.substring(2, 3);
    String refClient = sRio.substring(3, 9);
    if (!typeContrat.equals("P") && !typeContrat.equals("E"))
        return false;

    String sOrdre = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+";

    int[] nRes = { 0, 0, 0 };
    String sTmp = operateur + typeContrat + refClient + sMsisdn;

    for (int n = 0; n < 19; n++) {
        int nPos = sOrdre.indexOf(sTmp.substring(n, n + 1));
        nRes[0]= (nRes[0] + nPos) % 37;
        nRes[1] = ((2 * nRes[1]) + nPos) % 37;
        nRes[2] = ((4 * nRes[2]) + nPos) % 37;
    }

    String sCleCalculee = sOrdre.substring(nRes[0], nRes[0] + 1) +  sOrdre.substring(nRes[1], nRes[1] + 1) + sOrdre.substring(nRes[2], nRes[2] + 1);
    return sRio.substring(9).equals(sCleCalculee);
}


La même possibilité est offerte avec le code PHP