How to Generate the RapidoReach User ID
This page defines the single, authoritative way to build a RapidoReach UID for the Web iFrame.
Required values per user:
internalUserId
: Your userβs ID in your system (case-sensitive)appId
: Your RapidoReach App ID (alphanumeric)appKey
: Your RapidoReach App Key (aka API key)
Rules:
- UID format:
internalUserId-appId-checksum
- Checksum: full 32-char hex MD5 of the string:
"internalUserId-appId-appKey"
(with literal hyphens, no spaces) - Use App Key for checksum. Do NOT use App Secret/Transaction Key for UID.
- URL-encode the final UID when putting it into the
userId
query parameter.
Example inputs
internalUserId=User123
appId=1sJ57hgit
appKey=838ab4b72d221a585af8b4be7a540234
Checksum input string
"User123-1sJ57hgit-838ab4b72d221a585af8b4be7a540234"
Resulting UID
User123-1sJ57hgit-<md5("User123-1sJ57hgit-838ab4b72d221a585af8b4be7a540234")>
Embed URL
https://www.rapidoreach.com/ofw/?userId=<urlencoded UID>
Examplesβ
Below are consistent examples across common languages.
JavaScript (Node)β
import crypto from 'crypto';
function makeUid(internalUserId, appId, appKey) {
const input = `${internalUserId}-${appId}-${appKey}`;
const checksum = crypto.createHash('md5').update(input).digest('hex');
return `${internalUserId}-${appId}-${checksum}`;
}
const uid = makeUid('User123', 'Kkh1Yqa_b92', '3bed4719e45daf6bd1ddc4c72204dcd5');
const url = `https://www.rapidoreach.com/ofw/?userId=${encodeURIComponent(uid)}`;
PHPβ
<?php
function makeRapidoreachUID($internalUserID, $appID, $appKey) {
$checksum = md5($internalUserID . '-' . $appID . '-' . $appKey);
return $internalUserID . '-' . $appID . '-' . $checksum;
}
$uid = makeRapidoreachUID('User123', 'Kkh1Yqa_b92', '3bed4719e45daf6bd1ddc4c72204dcd5');
$iframeURL = 'https://www.rapidoreach.com/ofw/?userId=' . urlencode($uid);
echo $iframeURL;
Pythonβ
import hashlib
def make_uid(internal_user_id: str, app_id: str, app_key: str) -> str:
s = f"{internal_user_id}-{app_id}-{app_key}".encode('utf-8')
checksum = hashlib.md5(s).hexdigest()
return f"{internal_user_id}-{app_id}-{checksum}"
uid = make_uid('User123', '1sJ57hgit', '838ab4b72d221a585af8b4be7a540234')
url = f"https://www.rapidoreach.com/ofw/?userId={uid}"
print(url)
Rubyβ
require 'digest'
def make_uid(internal_user_id, app_id, app_key)
input = "#{internal_user_id}-#{app_id}-#{app_key}"
checksum = Digest::MD5.hexdigest(input)
"#{internal_user_id}-#{app_id}-#{checksum}"
end
uid = make_uid('test_user', '1sJ57hgit', '00000000000000000000000000000000')
C#β
using System;
using System.Security.Cryptography;
using System.Text;
static string MakeUid(string internalUserId, string appId, string appKey)
{
var input = $"{internalUserId}-{appId}-{appKey}";
using var md5 = MD5.Create();
var hash = md5.ComputeHash(Encoding.UTF8.GetBytes(input));
var checksum = BitConverter.ToString(hash).Replace("-", string.Empty).ToLowerInvariant();
return $"{internalUserId}-{appId}-{checksum}";
}
var uid = MakeUid("User123", "Kkh1Yqa_b92", "3bed4719e45daf6bd1ddc4c72204dcd5");
var url = $"https://www.rapidoreach.com/ofw/?userId={Uri.EscapeDataString(uid)}";
Console.WriteLine(url);
Notes
- App ID can be alphanumeric (e.g.,
LkChy1aUZQf
). - App Secret/Transaction Key is used for callbacks and HMAC signing, not for UID.
- Do not pre-URL-encode parts before hashing; only encode the final UID when used as a query parameter.