Skip to main content

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.