Sandbox & environments

RDCPASS runs two fully separate environments. Build and test in the sandbox, with synthetic identities and free usage for all eight services; move to production once your due-diligence dossiers are approved.

Credentials never work across environments

Production and sandbox are separate systems end to end — separate data and separate credentials. A key or certificate issued for one environment is rejected by the other.

Two environments

Production
api.rdcpass.cd
Real citizen and business records from the national digital identity. Requires an approved application, production keys, an mTLS certificate and an IP allowlist. Responses carry "livemode": true.
Sandbox
gateway.staging.rdcpass.cd
Synthetic data only — nothing here touches a real person or business. Keys are issued the moment you create an application. Responses carry "livemode": false.
# Production
https://api.rdcpass.cd

# Sandbox
https://gateway.staging.rdcpass.cd

The request and response formats are identical in both environments: switching is a matter of base URL and keys.

The sandbox plan

Every application gets the free sandbox plan at creation, covering all eight services: KYC Validation, Face Recognition, Age Verification, KYB Verification, AML & CTF Screening, Credit Scoring, Fraud Reporting and Login with RDCPASS. Every scope — including Sensitive and Biometric ones — can be selected in sandbox without subscription or enhanced due diligence, so you can build your full integration before going live. Single, batch and asynchronous requests all work exactly as in production.

ServiceSandbox quota (per application, per day)
kyc_validation1,000
face_recognition200
age_verification1,000
kyb_verification500
aml_screening500
credit_score200
fraud_report100
Login with RDCPASS1,000

Quotas reset daily at 00:00 UTC. These quotas cover single calls; batches have a separate batch quota of 5,000 items and 20 batches per day per service. Beyond the quota, calls return 429 quota_exceeded — see Rate limits & quotas. Sandbox calls are never billed and never return 402.

Test identities

Use these RDCPASS IDs with KYC Validation, Age Verification, AML & CTF Screening, Credit Scoring and Face Recognition (1:1). Each produces a fixed, documented outcome:

RDCPASS IDName · date of birthBehaviour
COD-0000-0000-0001Kabeya Mwamba Tshisekedi · 1988-04-12verified, certified account (LOA3), data on record for every KYC scope, including documents, addresses and biometrics. AML: low risk, no hits.
COD-0000-0000-0003Mbuyi Ilunga Nsimba · 1992-11-03verified, certified account with Basic KYC only: every additional scope requested appears in scopes_withheld.
COD-0000-0000-0002Ngalula Kasongo Mujinga · 1995-07-21not_certified: the account exists but is not yet certified — only account is returned.
COD-0000-0000-0404—not_found: no certified account for this identifier.
COD-0000-0000-0017Lukusa Mbayo Kalala · 2009-02-14verified, aged 17: Age Verification with threshold: 18 returns over_threshold: false.
COD-0000-0000-0666Test Sanctioned Subject · 1970-01-01AML & CTF Screening: risk_level: "high", a sanctions hit on the UN Security Council Consolidated List (match_score 0.97).
COD-0000-0000-0777Tshiala Mukendi Banza · 1965-09-30AML & CTF Screening: risk_level: "medium", pep.is_pep: true (national-level position).
COD-0000-0000—Malformed identifier: returns 400 invalid_identifier.

The same people can also be looked up by document: passport OB0000001 and CENI card 0000000000001 resolve to COD-0000-0000-0001.

Other test fixtures

ServiceInputBehaviour
Face Recognitionimage.url = https://files.rdcpass.cd/sandbox/faces/match-0001.jpgmatch with COD-0000-0000-0001 (similarity 0.96, liveness passed). In 1:N mode, identifies COD-0000-0000-0001.
Face Recognitionimage.url = https://files.rdcpass.cd/sandbox/faces/no-match.jpgno_match — no identity data returned.
Face Recognitionimage.url = https://files.rdcpass.cd/sandbox/faces/two-faces.jpg422 multiple_faces_detected.
Face Recognitionimage.url = https://files.rdcpass.cd/sandbox/faces/liveness-fail.jpg422 liveness_failed.
KYB Verificationrccm = CD/KIN/RCCM/00-B-00001verified, active SARL with data for every KYB scope, including officers and beneficial owners.
KYB Verificationrccm = CD/LSH/RCCM/00-B-00002inactive — the company is dissolved.
KYB Verificationrccm = CD/KIN/RCCM/00-B-00404not_found.
Credit Scoringconsent.consent_id = cns_test_approvedValid consent for COD-0000-0000-0001: score 712, band B.
Credit Scoringconsent.consent_id = cns_test_expired403 consent_required.
Fraud Reportingtype = identity_usurpationCase created with status: "received", moves to under_review after 1 minute and confirmed after 5 minutes, sending fraud_report.status_changed each time.

Asynchronous jobs and batches complete within seconds in sandbox and deliver the same webhooks as production, so you can test your whole event pipeline.

Path to production

When your integration is ready, submit your business and application dossiers from the console. Your sandbox request logs serve as test evidence. Once approved, the same application receives production keys — see Going to production.

Next steps

Questions about your integration? Contact developer support