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
api.rdcpass.cd"livemode": true.sandbox.rdcpass.cd"livemode": false.# Production
https://api.rdcpass.cd
# Sandbox
https://sandbox.rdcpass.cdThe 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.
| Service | Sandbox quota (per application, per day) |
|---|---|
| kyc_validation | 1,000 |
| face_recognition | 200 |
| age_verification | 1,000 |
| kyb_verification | 500 |
| aml_screening | 500 |
| credit_score | 200 |
| fraud_report | 100 |
| Login with RDCPASS | 1,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 cost no real money, but they are billed at the published rates against a simulated wallet: every organization starts prepaid with 5,000 USD of test credit, so you can test your billing integration end to end. When the test credit runs out, calls return 402 insufficient_balance (or 402 credit_limit_reached on postpaid) — request a balance increase from the console. Postpaid organizations receive an invoice every 30 days, due within 15 days. While an invoice is overdue, billable calls return 402 invoice_overdue. Errors, idempotent replays and polling are never billed.
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 ID | Name · date of birth | Behaviour |
|---|---|---|
| COD-0000-0000-0001 | Kabeya Mwamba Tshisekedi · 1988-04-12 | verified, certified account (LOA3), data on record for every KYC scope, including documents, addresses and biometrics. AML: low risk, no hits. |
| COD-0000-0000-0003 | Mbuyi Ilunga Nsimba · 1992-11-03 | verified, certified account with Basic KYC only: every additional scope requested appears in scopes_withheld. |
| COD-0000-0000-0002 | Ngalula Kasongo Mujinga · 1995-07-21 | not_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-0017 | Lukusa Mbayo Kalala · 2009-02-14 | verified, aged 17: Age Verification with threshold: 18 returns over_threshold: false. |
| COD-0000-0000-0666 | Test Sanctioned Subject · 1970-01-01 | AML & CTF Screening: risk_level: "high", a sanctions hit on the UN Security Council Consolidated List (match_score 0.97). |
| COD-0000-0000-0777 | Tshiala Mukendi Banza · 1965-09-30 | AML & CTF Screening: risk_level: "medium", pep.is_pep: true (national-level position). |
| COD-0000-0000-0888 | Test Fraud Suspect · 1984-03-15 | Fraud network — confirmed suspect (money laundering, case RDC-FRD-2026-000888, escalated). AML & CTF Screening: risk_level: "high", a watchlists hit with fraud_case. Credit Scoring (cns_test_COD-0000-0000-0888): 602, band C — 150 points below the same file without the case — with fraud_history first. |
| COD-0000-0000-0999 | Test Fraud Victim · 1990-07-08 | Fraud network — confirmed victim of identity usurpation (case RDC-FRD-2026-000999). AML & CTF Screening: low, no hits, fraud_signals.identity_fraud_victim: true. Credit Scoring: 752, band A — never penalised. |
| 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.
Beyond these fixtures, the sandbox holds hundreds of generated citizens and businesses. Browse and download all of them, with every identifier, on Sandbox test data.
Other test fixtures
| Service | Input | Behaviour |
|---|---|---|
| Face Recognition | image.url = https://files.rdcpass.cd/sandbox/faces/match-0001.jpg | match with COD-0000-0000-0001 (similarity 0.96, liveness passed). In 1:N mode, identifies COD-0000-0000-0001. |
| Face Recognition | image.url = https://files.rdcpass.cd/sandbox/faces/no-match.jpg | no_match — no identity data returned. |
| Face Recognition | image.url = https://files.rdcpass.cd/sandbox/faces/two-faces.jpg | 422 multiple_faces_detected. |
| Face Recognition | image.url = https://files.rdcpass.cd/sandbox/faces/liveness-fail.jpg | 422 liveness_failed. |
| Face Recognition | image.url = https://files.rdcpass.cd/sandbox/faces/<RDCPASS-ID>.jpg | A live photo of that identity: every certified test account has an enrolled face (similarity 0.88–0.98). Any other image or URL returns no_match. |
| Face Recognition | image.url = …/faces/no-face.jpg · …/faces/low-quality.jpg | 422 no_face_detected · 422 image_quality_insufficient. |
| KYB Verification | rccm = CD/KIN/RCCM/00-B-00001 | verified, active SARL with data for every KYB scope, including officers and beneficial owners. |
| KYB Verification | rccm = CD/LSH/RCCM/00-B-00002 | inactive — the company is dissolved. |
| KYB Verification | rccm = CD/KIN/RCCM/00-B-00404 | not_found. |
| KYB Verification | rccm = CD/KIN/RCCM/00-B-00888 | verified company named as a suspect in a confirmed money-laundering case (RDC-FRD-2026-000889). AML & CTF Screening by subject.business.identifier: risk_level: "high", fraud-network hit. |
| AML & CTF Screening | subject.full_name = "Eric Badege" | Real hits from the official sanctions lists — UN (CDi.001, DRC regime, with its INTERPOL–UN Special Notice), OFAC SDN, EU and UK — each with source.official: true. risk_level: "high". |
| AML & CTF Screening | subject.full_name = "Eric Badege", date_of_birth = "1990-01-01" | The birth date contradicts the one on the lists (1971): the match score drops below the threshold and no official hit is returned — homonyms are eliminated. |
| AML & CTF Screening | subject.full_name = "Test International Suspect", date_of_birth = "1980-05-02", nationality = "RWA" | Fraud network — a foreign suspect known by name (payment fraud, case RDC-FRD-2026-000900): a watchlists hit matched on name, date of birth and nationality. |
| Credit Scoring | consent.consent_id = cns_test_approved | Valid consent for COD-0000-0000-0001: score 712, band B. |
| Credit Scoring | consent.consent_id = cns_test_expired | 403 consent_required. |
| Credit Scoring | consent.consent_id = cns_test_revoked | 403 consent_required (consent revoked). |
| Credit Scoring | consent.consent_id = cns_test_<RDCPASS-ID> | A valid consent for any certified test identity, so every generated citizen can be scored. |
| Fraud Reporting | type = identity_usurpation | Case created with status: "received", moves to under_review after 1 minute and confirmed after 5 minutes, sending fraud_report.status_changed each time. |
| Fraud Reporting | subject.business = { "name", "registration_number", "country": "ARE" } | A foreign or unregistered company, reported cross-border (any location.country, any ISO currency). money_laundering cases are escalated_to_authorities. |
| Fraud Reporting | subject.identifier = { "type": "passport", "issuing_country": "RWA", … } | A foreign individual: the document is recorded as reported and never resolved against the Congolese register. |
| Fraud Reporting | victims = [{ "identifier": … }, { "anonymous": true }] — with or without subject | Named victims (people or companies, Congolese or foreign) get an identity-fraud alert once the case is confirmed; anonymous victims are counted but never matched. A report with no identified party and no evidence ends dismissed. |
| Login with RDCPASS | GET /v1/oidc/authorize | Opens a sandbox approval page instead of the phone approval: pick a test identity, then approve, deny or simulate a face mismatch. Any https redirect URI, or http://localhost, is accepted. |
Asynchronous jobs and batches complete within seconds in sandbox and deliver the same webhooks as production, so you can test your whole event pipeline.
Fraud reports you file feed the sandbox fraud network like in production: once confirmed (5 minutes), a report naming a suspect is returned by AML & CTF Screening and lowers Credit Scoring for that identity, name or company — for every sandbox organization. Reports never change the documented test identities above (COD-0000-0000-xxxx, RCCM 00-B-00xxx): use …0888, …0999 and 00-B-00888 to see the network’s effect.
Real public data in the sandbox
Identities stay synthetic, but two services use real, openly published data so your tests behave like production:
- AML & CTF Screening checks the official sanctions lists — the UN Security Council Consolidated List, OFAC SDN, the EU consolidated list and the UK consolidated list (about 30,000 entries) — in addition to the documented test identities. Lists are refreshed daily from their publishers. Hits from these lists carry a
sourceobject with the list’s own reference, the sanctions programmes and, when the UN publishes one, the link to the INTERPOL–UN Security Council Special Notice. - Credit Scoring credit files are synthetic but calibrated to published statistics for the DRC (World Bank Global Findex and World Development Indicators): the share of files with mobile money, bank, phone and utility data, and income levels, follow national figures. The documented consents and scores above never change.
Sources: United Nations Security Council; U.S. Treasury (OFAC); © European Union; contains public sector information licensed under the Open Government Licence v3.0 (UK); The World Bank (CC BY 4.0).
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.