> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dojah.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Dojah

> Dojah is the identity, KYC, AML and fraud-detection API for Africa — verify anyone, stop fraud, and onboard verified users with one integration.

<div
  className="dj-home"
  dangerouslySetInnerHTML={{ __html: `
<style>
/* Mona Sans (self-hosted variable font — matches the docs) */
@font-face{
font-family:"Mona Sans";
src:url("https://mintcdn.com/dojah/LZxS1bz_9Y9K9GSQ/fonts/MonaSansVF.woff2?fit=max&auto=format&n=LZxS1bz_9Y9K9GSQ&q=85&s=8c1090dff72aad06bf77e48e9867ca30") format("woff2-variations"),
  url("https://mintcdn.com/dojah/LZxS1bz_9Y9K9GSQ/fonts/MonaSansVF.woff2?fit=max&auto=format&n=LZxS1bz_9Y9K9GSQ&q=85&s=8c1090dff72aad06bf77e48e9867ca30") format("woff2");
font-weight:200 900;font-style:normal;font-display:swap;
}
@font-face{
font-family:"Mona Sans";
src:url("https://mintcdn.com/dojah/LZxS1bz_9Y9K9GSQ/fonts/MonaSansVF-Italic.woff2?fit=max&auto=format&n=LZxS1bz_9Y9K9GSQ&q=85&s=1f8c56810fea0744629199982f5c7a78") format("woff2-variations"),
  url("https://mintcdn.com/dojah/LZxS1bz_9Y9K9GSQ/fonts/MonaSansVF-Italic.woff2?fit=max&auto=format&n=LZxS1bz_9Y9K9GSQ&q=85&s=1f8c56810fea0744629199982f5c7a78") format("woff2");
font-weight:200 900;font-style:italic;font-display:swap;
}
:root{
--paper:#EDF2FB;
--paper-2:#F5F8FD;
--card:#FFFFFF;
--ink:#0B1E3B;
--body:#48526A;
--muted:#7E879C;
--clay:#3F7CDB;
--clay-deep:#2C5AA8;
--ochre:#FB9700;
--ochre-deep:#C77700;
--forest:#2C7C6A;
--forest-soft:#DDEDE6;
--rose:#E6F0FD;
--sky:#DCE9FB;
--line:#D8E2F0;
--edge:#0B1E3B;
--radius:20px;
--radius-sm:12px;
}
/* ---- dark theme (mapped to Mintlify's .dark on <html>) ---- */
html.dark{
--paper:#0A1020;
--paper-2:#0F1728;
--card:#141D33;
--ink:#EAF0FB;
--body:#A7B2C9;
--muted:#7B87A1;
--clay:#5B93E8;
--clay-deep:#9CC0F5;
--ochre:#FBB43C;
--ochre-deep:#FBB43C;
--forest:#43B394;
--forest-soft:rgba(67,179,148,.16);
--rose:#182541;
--sky:#16223E;
--line:#26314B;
--edge:#EAF0FB;
}
html.dark .dj-home .grain{opacity:0}
html.dark .dj-home header.nav{background:rgba(10,16,32,.82)}
html.dark .dj-home header.nav.scrolled{background:rgba(10,16,32,.94);border-color:var(--line)}
html.dark .dj-home .way .ill{background:#E7EFFB !important}
.dj-home .theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;
background:transparent;color:var(--muted);border:none;border-radius:7px;cursor:pointer;padding:0;
transition:background .15s,color .15s}
.dj-home .theme-toggle:hover{background:var(--paper-2);color:var(--ink)}
.dj-home .theme-toggle svg{width:15px;height:15px}
.dj-home .theme-toggle .moon{display:block}.dj-home .theme-toggle .sun{display:none}
html.dark .dj-home .theme-toggle .moon{display:none}
html.dark .dj-home .theme-toggle .sun{display:block}

/* ===== Mintlify integration (home page only) ===== */
#navbar.is-custom{display:none !important}
#content-area{padding:0 !important}
#content-area .mdx-content,#content{max-width:none !important;margin:0 !important;padding:0 !important}

.dj-home *{box-sizing:border-box;margin:0;padding:0}
.dj-home{
font-family:'Mona Sans',ui-sans-serif,system-ui,-apple-system,sans-serif;
color:var(--body);background:var(--paper);line-height:1.62;overflow-x:clip;overflow-y:visible;
min-height:100vh;
}
html{scroll-behavior:smooth}
.dj-home .grain{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.5;mix-blend-mode:multiply;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.14'/%3E%3C/svg%3E");}
.dj-home h1,.dj-home h2,.dj-home h3,.dj-home h4,.dj-home .display{font-family:'Mona Sans',ui-sans-serif,system-ui,sans-serif;color:var(--ink);letter-spacing:-.01em;line-height:1.05;font-optical-sizing:auto}
.dj-home a{color:inherit;text-decoration:none}
.dj-home img,.dj-home svg{display:block;max-width:100%}
.dj-home .wrap{max-width:1160px;margin:0 auto;padding:0 26px}
.dj-home em.acc{font-style:italic;color:var(--clay)}

.dj-home .kicker{display:inline-flex;align-items:center;gap:11px;font-family:'Mona Sans';font-size:12.5px;font-weight:700;
letter-spacing:.16em;text-transform:uppercase;color:var(--clay-deep)}
.dj-home .kicker::before{content:"";width:26px;height:2px;background:var(--clay);border-radius:2px}
.dj-home .kicker.on-dark{color:var(--ochre)}
.dj-home .kicker.on-dark::before{background:var(--ochre)}

.dj-home .btn{display:inline-flex;align-items:center;gap:9px;font-family:'Mona Sans';font-weight:600;font-size:15px;
padding:11px 20px;border-radius:10px;cursor:pointer;border:1px solid transparent;
transition:background .15s, color .15s, border-color .15s, transform .05s;white-space:nowrap}
.dj-home .btn svg{width:17px;height:17px}
.dj-home .btn:active{transform:translateY(1px)}
.dj-home .btn-primary{background:var(--clay);color:#fff}
.dj-home .btn-primary:hover{background:var(--clay-deep)}
.dj-home .btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.dj-home .btn-ghost:hover{background:var(--paper-2);border-color:var(--muted)}
.dj-home .btn-arrow svg{transition:transform .18s}
.dj-home .btn-arrow:hover svg{transform:translateX(3px)}

.dj-home .announce{background:var(--ink);color:#D6E1F2;font-size:13.5px;font-weight:500;text-align:center;padding:9px 16px}
.dj-home .announce b{color:#fff}
.dj-home .announce .star{color:var(--ochre);font-weight:700;margin:0 7px}

.dj-home header.nav{position:sticky;top:0;z-index:100;background:rgba(237,242,251,.86);backdrop-filter:blur(10px);
border-bottom:1.5px solid transparent;transition:border-color .25s, background .25s}
.dj-home header.nav.scrolled{border-color:var(--line);background:rgba(237,242,251,.96)}
.dj-home .nav-inner{display:flex;align-items:center;gap:26px;height:72px;position:relative}
.dj-home .logo{display:flex;align-items:center;gap:11px;font-family:'Mona Sans';font-weight:700;font-size:22px;color:var(--ink)}
.dj-home .logo .logo-img{height:30px;width:auto;display:block}
.dj-home .logo .mark{width:36px;height:36px;border-radius:11px;background:var(--clay);border:1.5px solid var(--edge);
display:grid;place-items:center;box-shadow:2px 2px 0 var(--edge);transform:rotate(-4deg)}
.dj-home .logo .mark svg{width:20px;height:20px}
.dj-home .logo .tag{font-family:'Mona Sans';font-size:11.5px;font-weight:700;color:var(--clay-deep);background:var(--rose);
padding:3px 9px;border-radius:7px;border:1.2px solid var(--line);letter-spacing:.02em}
.dj-home .nav-links{display:flex;gap:2px;position:absolute;left:50%;transform:translateX(-50%)}
.dj-home .nav-links a{font-size:15px;font-weight:500;color:var(--body);padding:9px 13px;border-radius:9px;transition:color .15s,background .15s}
.dj-home .nav-links a:hover{color:var(--ink);background:var(--rose)}
.dj-home .nav-cta{margin-left:auto;display:flex;align-items:center;gap:12px}
.dj-home .menu-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;
background:transparent;color:var(--body);border:1px solid var(--line);border-radius:10px;
cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.dj-home .menu-btn:hover{background:var(--paper-2);color:var(--ink);border-color:var(--muted)}
.dj-home .menu-btn svg{width:20px;height:20px}
.dj-home .mobile-menu{display:none;flex-direction:column;gap:5px;padding:14px 26px 22px;
background:var(--paper);border-bottom:1.5px solid var(--line)}
.dj-home .mobile-menu.open{display:flex}
.dj-home .mobile-menu a{color:var(--ink);font-weight:600;padding:11px 12px;border-radius:10px}
.dj-home .mobile-menu a:hover{background:var(--rose)}
.dj-home .mobile-menu .btn{justify-content:center;margin-top:6px}

.dj-home .hero{position:relative;padding:96px 0 30px;overflow:hidden}
.dj-home .hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:36px;align-items:center;position:relative;z-index:2}
.dj-home .hero h1{font-size:clamp(42px,6vw,72px);font-weight:600;color:var(--ink);margin:20px 0 0}
.dj-home .hero h1 .u{position:relative;white-space:nowrap}
.dj-home .hero h1 .u svg{position:absolute;left:-2%;bottom:-.24em;width:104%;height:.3em;overflow:visible}
.dj-home .hero p.lead{font-size:19px;color:var(--body);margin:26px 0 30px;max-width:500px}
.dj-home .hero p.lead b{color:var(--ink);font-weight:600}
.dj-home .hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.dj-home .hero-meta{display:flex;gap:30px;margin-top:36px;flex-wrap:wrap}
.dj-home .hero-meta .m b{font-family:'Mona Sans';font-size:30px;color:var(--clay);font-weight:600;display:block;line-height:1}
.dj-home .hero-meta .m span{font-size:13px;color:var(--muted);margin-top:3px;display:block}
.dj-home .hero-art{position:relative}
.dj-home .hero-art > svg{width:100%;height:auto}
.dj-home .hero-art .doodle{position:absolute;z-index:1}

.dj-home .trust{margin-top:88px;position:relative;z-index:2;text-align:center}
.dj-home .trust p{font-family:'Mona Sans';font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:16px}
.dj-home .trust-row{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.dj-home .tag-item{display:inline-flex;align-items:center;gap:9px;background:var(--card);border:1.5px solid var(--line);
border-radius:11px;padding:9px 16px;font-weight:600;font-size:14px;color:var(--ink)}
.dj-home .tag-item svg{width:16px;height:16px;color:var(--clay)}
.dj-home .tag-item:nth-child(odd){transform:rotate(-1deg)}
.dj-home .tag-item:nth-child(even){transform:rotate(1deg)}

.dj-home .sec{padding:80px 0;position:relative}
.dj-home .sec-head{max-width:600px;margin-bottom:44px}
.dj-home .sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.dj-home .sec-head h2{font-size:clamp(30px,4vw,48px);font-weight:600;margin:15px 0 12px}
.dj-home .sec-head p{font-size:17.5px;color:var(--body)}
.dj-home .sec-index{font-family:'Mona Sans';font-size:15px;font-weight:600;color:var(--muted);letter-spacing:.02em}

.dj-home .ways-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;flex-wrap:wrap}
.dj-home .ways-head .sec-head{margin-bottom:0}
.dj-home .ways{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.dj-home .way{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 20px 22px;
transition:border-color .15s, box-shadow .15s, transform .1s;position:relative}
.dj-home .way:hover{border-color:var(--clay);box-shadow:0 12px 32px rgba(11,30,59,.10);transform:translateY(-3px)}
.dj-home .way .ill{height:112px;margin-bottom:16px;border-radius:14px;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}
.dj-home .way h3{font-size:19px;font-weight:600;margin-bottom:7px;color:var(--ink)}
.dj-home .way p{font-size:14px;color:var(--body);line-height:1.5}
.dj-home .way .lvl{position:absolute;top:32px;right:32px;font-family:'Mona Sans';font-size:10.5px;font-weight:700;
letter-spacing:.05em;text-transform:uppercase;color:var(--clay-deep);background:var(--card);padding:4px 10px;border-radius:100px;
border:1px solid var(--line);z-index:1}
.dj-home .way a.more{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:16px;font-size:13.5px;font-weight:700;color:var(--clay)}
.dj-home .way a.more svg{width:14px;height:14px;transition:transform .18s}
.dj-home .way:hover a.more svg{transform:translateX(3px)}

.dj-home .usecases{background:var(--paper-2);border-top:1.5px solid var(--line);border-bottom:1.5px solid var(--line)}
.dj-home .uc-tabs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:34px}
.dj-home .uc-tab{display:inline-flex;align-items:center;gap:9px;padding:10px 20px;border-radius:100px;background:var(--card);
border:1px solid var(--line);cursor:pointer;font-family:'Mona Sans';font-weight:600;font-size:14.5px;color:var(--ink);
transition:background .15s, border-color .15s, color .15s}
.dj-home .uc-tab .ic{width:19px;height:19px}
.dj-home .uc-tab:hover{background:var(--paper-2);border-color:var(--muted)}
.dj-home .uc-panel{display:none;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:36px;
box-shadow:0 20px 50px rgba(11,30,59,.10)}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dj-home .uc-info h3{font-size:28px;font-weight:600;margin-bottom:12px}
.dj-home .uc-info p{color:var(--body);font-size:16px;margin-bottom:20px}
.dj-home .uc-info .tags{display:flex;gap:8px;flex-wrap:wrap}
.dj-home .uc-info .tags span{font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:9px;background:var(--rose);
color:var(--clay-deep);border:1.2px solid var(--line)}
.dj-home .uc-link{display:inline-flex;align-items:center;gap:8px;margin-top:24px;align-self:flex-start;font-weight:600;font-size:14.5px;
color:#fff;background:var(--clay);padding:10px 18px;border-radius:100px;transition:background .15s}
.dj-home .uc-link:hover{background:var(--clay-deep)}
.dj-home .flow{display:flex;flex-direction:column;gap:11px}
.dj-home .flow-step{display:flex;align-items:center;gap:15px;background:var(--card);border:1px solid var(--line);
border-radius:14px;padding:13px 17px;transition:border-color .15s, box-shadow .15s, transform .05s}
.dj-home .flow-step:hover{border-color:var(--clay);box-shadow:0 6px 18px rgba(11,30,59,.09)}
.dj-home .flow-step:active{transform:translateY(1px)}
.dj-home .flow-step .num{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#FFFFFF;
font-family:'Mona Sans';font-weight:600;font-size:17px;flex-shrink:0;background:var(--clay)}
.dj-home .flow-step .t b{display:block;font-family:'Mona Sans';font-weight:600;font-size:16px;color:var(--ink)}
.dj-home .flow-step .t span{font-size:13px;color:var(--muted)}
.dj-home .flow-step .chip{margin-left:auto;font-size:11px;font-weight:700;color:var(--forest);background:var(--forest-soft);
padding:4px 11px;border-radius:100px;border:1.2px solid #bfe0d6;white-space:nowrap}

.dj-home .dev{display:grid;grid-template-columns:1.02fr .98fr;gap:44px;align-items:start}
.dj-home .dev-tools{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.dj-home .tool{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;
transition:border-color .15s, box-shadow .15s, transform .1s}
.dj-home .tool:hover{border-color:var(--clay);box-shadow:0 12px 32px rgba(11,30,59,.10);transform:translateY(-3px)}
.dj-home .tool .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:15px;background:var(--sky);color:var(--clay)}
.dj-home .tool .ic svg{width:22px;height:22px}
.dj-home .tool h4{font-size:17px;font-weight:600;margin-bottom:6px;color:var(--ink)}
.dj-home .tool p{font-size:13.5px;color:var(--body);line-height:1.5;margin-bottom:14px}
.dj-home .tool .snip{align-self:flex-start;max-width:100%;font-family:ui-monospace,'SF Mono','Cascadia Code',Menlo,monospace;font-size:11.5px;
color:var(--clay-deep);background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin-bottom:16px;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dj-home .tool .go{margin-top:auto;font-size:13px;font-weight:700;color:var(--clay);display:inline-flex;align-items:center;gap:6px}
.dj-home .tool .go svg{width:14px;height:14px;transition:transform .18s}
.dj-home .tool:hover .go svg{transform:translateX(3px)}
.dj-home .code-card{background:#161C29;border:1.5px solid var(--edge);border-radius:18px;box-shadow:6px 6px 0 var(--edge);
overflow:hidden;position:sticky;top:92px;transform:rotate(-.5deg)}
.dj-home .code-top{display:flex;align-items:center;gap:13px;padding:13px 16px;border-bottom:1.5px solid rgba(255,255,255,.09)}
.dj-home .dots{display:flex;gap:7px}
.dj-home .dots i{width:12px;height:12px;border-radius:50%;display:block;border:1px solid rgba(0,0,0,.3)}
.dj-home .code-langs{display:flex;gap:3px;margin-left:5px}
.dj-home .code-langs label{background:transparent;border:none;color:#a99f8c;font-family:'Mona Sans';font-size:12.5px;font-weight:600;
padding:6px 11px;border-radius:8px;cursor:pointer;transition:all .14s}
.dj-home .code-langs label:hover{color:#d8cdba}
.dj-home .copy{margin-left:auto;background:rgba(255,255,255,.09);border:none;color:#d8cdba;font-size:12px;font-weight:600;
padding:6px 12px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:background .14s}
.dj-home .copy:hover{background:rgba(255,255,255,.17)}
.dj-home .copy svg{width:14px;height:14px}
.dj-home .code-body{padding:19px 21px;font-family:ui-monospace,'SF Mono','Cascadia Code',Menlo,monospace;font-size:13px;
line-height:1.75;overflow-x:auto;color:#d8cdba}
.dj-home .code-body pre{display:none;white-space:pre}
.dj-home .tk-key{color:#e0a23a}.dj-home .tk-fn{color:#6fc9b3}.dj-home .tk-str{color:#e8a87c}.dj-home .tk-var{color:#9db8d6}.dj-home .tk-com{color:#7d7565;font-style:italic}.dj-home .tk-num{color:#e07a5f}
.dj-home .resp{margin-top:15px;background:rgba(44,124,106,.16);border:1.5px solid rgba(44,124,106,.4);border-radius:11px;
padding:11px 13px;display:flex;align-items:center;gap:10px}
.dj-home .resp .badge{background:var(--forest);color:#eafff8;font-weight:800;font-size:11px;padding:3px 9px;border-radius:100px}
.dj-home .resp span{color:#a9d8cc;font-size:12.5px;font-family:ui-monospace,monospace}

/* CSS-only industry tabs */
.dj-home .uc-radio{position:absolute;width:0;height:0;opacity:0;pointer-events:none}
.dj-home #uc-r-fintech:checked ~ .uc-tabs label[for="uc-r-fintech"],
.dj-home #uc-r-lending:checked ~ .uc-tabs label[for="uc-r-lending"],
.dj-home #uc-r-crypto:checked ~ .uc-tabs label[for="uc-r-crypto"],
.dj-home #uc-r-betting:checked ~ .uc-tabs label[for="uc-r-betting"]{background:var(--clay);color:#FFFFFF;border-color:transparent}
.dj-home #uc-r-fintech:checked ~ .uc-panels #uc-fintech,
.dj-home #uc-r-lending:checked ~ .uc-panels #uc-lending,
.dj-home #uc-r-crypto:checked ~ .uc-panels #uc-crypto,
.dj-home #uc-r-betting:checked ~ .uc-panels #uc-betting{display:grid;grid-template-columns:.95fr 1.15fr;gap:36px;align-items:center;animation:fade .35s ease}

/* CSS-only code language switcher */
.dj-home .code-radio{position:absolute;width:0;height:0;opacity:0;pointer-events:none}
.dj-home #lang-curl:checked ~ .code-body pre[data-lang="curl"],
.dj-home #lang-node:checked ~ .code-body pre[data-lang="node"],
.dj-home #lang-python:checked ~ .code-body pre[data-lang="python"]{display:block}
.dj-home #lang-curl:checked ~ .code-top label[for="lang-curl"],
.dj-home #lang-node:checked ~ .code-top label[for="lang-node"],
.dj-home #lang-python:checked ~ .code-top label[for="lang-python"]{background:rgba(63,124,219,.24);color:#f4c9b3}

.dj-home .guides{background:#0B1C56;color:#D6E1F2;border:none;border-radius:26px;padding:52px;
box-shadow:0 24px 54px rgba(11,28,86,.30);position:relative;overflow:hidden}
.dj-home .guides h2{color:#fff}
.dj-home .guides .sec-head p{color:#b9b0a0}
.dj-home .guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;position:relative;z-index:2}
.dj-home .guide{display:flex;align-items:center;gap:15px;background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.14);
border-radius:14px;padding:17px 19px;transition:background .16s, transform .16s}
.dj-home .guide:hover{background:rgba(255,255,255,.1);transform:translate(-2px,-2px)}
.dj-home .guide .gi{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;border:1.4px solid rgba(255,255,255,.2)}
.dj-home .guide .gi svg{width:21px;height:21px}
.dj-home .guide b{display:block;font-family:'Mona Sans';font-weight:600;font-size:16px;color:#fff}
.dj-home .guide span{font-size:13px;color:#b3aa9a}
.dj-home .guide .arw{margin-left:auto;color:#8f8676;transition:transform .18s,color .18s}
.dj-home .guide:hover .arw{transform:translateX(4px);color:#6ea8ff}
.dj-home .guides-more{display:inline-flex;align-items:center;gap:8px;margin-top:28px;font-family:'Mona Sans';font-weight:600;font-size:14.5px;
color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);padding:11px 22px;border-radius:10px;
transition:background .15s,border-color .15s}
.dj-home .guides-more:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.42)}
.dj-home .guides-more svg{width:15px;height:15px;transition:transform .18s}
.dj-home .guides-more:hover svg{transform:translateX(3px)}

.dj-home .cta-band{padding:36px 0 92px}
.dj-home .cta-inner{background:linear-gradient(135deg,#033971 0%,#3F7CDB 100%);border:none;border-radius:26px;padding:76px 56px;
display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;overflow:hidden;
box-shadow:0 28px 60px rgba(11,30,59,.24)}
.dj-home .cta-inner::before{content:"";position:absolute;top:-70%;left:50%;transform:translateX(-50%);width:85%;height:200%;pointer-events:none;
background:radial-gradient(circle,rgba(255,255,255,.20),transparent 60%)}
.dj-home .cta-inner > div{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.dj-home .cta-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);padding:7px 15px;border-radius:100px;margin-bottom:20px}
.dj-home .cta-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:#89f436;box-shadow:0 0 0 3px rgba(137,244,54,.28)}
.dj-home .cta-inner h2{color:#FFFFFF;font-size:clamp(32px,4.4vw,50px);font-weight:600;max-width:16ch;line-height:1.06}
.dj-home .cta-inner p{color:#E7EEFC;font-size:17.5px;margin:18px auto 30px;max-width:500px}
.dj-home .cta-inner .btn-white{background:#fff;color:#2C5AA8;border-color:#fff}
.dj-home .cta-inner .btn-white:hover{background:var(--paper);border-color:var(--paper)}
.dj-home .cta-inner .btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.dj-home .cta-inner .btn-line:hover{background:rgba(255,255,255,.14);border-color:#fff}
.dj-home .cta-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

.dj-home footer{background:#0B1C56;color:#a9a091;padding:60px 0 32px}
.dj-home .foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px;padding-bottom:42px;border-bottom:1.5px solid rgba(255,255,255,.1)}
.dj-home .foot-brand .logo{color:#fff}
.dj-home .foot-brand p{margin-top:15px;font-size:14px;max-width:270px;color:#9a9182}
.dj-home .foot-col h5{color:#fff;font-family:'Mona Sans';font-size:15px;font-weight:600;margin-bottom:14px}
.dj-home .foot-col a{display:block;font-size:14px;padding:5px 0;color:#a9a091;transition:color .14s}
.dj-home .foot-col a:hover{color:#3F7CDB}
.dj-home .foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;font-size:13px;color:#8b8273;flex-wrap:wrap;gap:14px}
.dj-home .foot-social{display:flex;gap:9px}
.dj-home .foot-social a{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.06);display:grid;place-items:center;
border:1.4px solid rgba(255,255,255,.12);transition:background .14s}
.dj-home .foot-social a:hover{background:rgba(255,255,255,.14)}
.dj-home .foot-social svg{width:18px;height:18px}

.dj-home .reveal{opacity:0;transform:translateY(22px);transition:opacity .55s ease, transform .55s ease}
.dj-home .reveal.in{opacity:1;transform:none}

@media(max-width:940px){
.dj-home .nav-links{display:none}.dj-home .nav-cta .btn-ghost{display:none}.dj-home .menu-btn{display:flex}
.dj-home .hero-grid{grid-template-columns:1fr;gap:22px}.dj-home .hero-art{width:100%;max-width:440px;margin:0 auto}
.dj-home .ways{grid-template-columns:1fr 1fr}.dj-home .dev{grid-template-columns:1fr}
.dj-home .code-card{position:relative;top:0}
.dj-home #uc-r-fintech:checked ~ .uc-panels #uc-fintech,
.dj-home #uc-r-lending:checked ~ .uc-panels #uc-lending,
.dj-home #uc-r-crypto:checked ~ .uc-panels #uc-crypto,
.dj-home #uc-r-betting:checked ~ .uc-panels #uc-betting{grid-template-columns:1fr}
.dj-home .cta-inner{padding:52px 26px}
.dj-home .guides{padding:40px 26px}.dj-home .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
.dj-home .ways{grid-template-columns:1fr}.dj-home .dev-tools{grid-template-columns:1fr}.dj-home .guide-grid{grid-template-columns:1fr}
.dj-home .foot-grid{grid-template-columns:1fr}.dj-home .sec{padding:56px 0}.dj-home .hero-meta{gap:20px}
.dj-home .nav-cta .btn-primary{display:none}.dj-home .logo .tag{display:none}
.dj-home .trust-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dj-home .trust-row .tag-item{justify-content:center;transform:none;font-size:13px;padding:10px 10px}
.dj-home .trust-row .tag-item svg{display:none}
.dj-home .trust-row .tag-item:last-child{grid-column:1 / -1;justify-self:center}
}
</style>

<div class="grain"></div>

<header class="nav" id="nav">
<div class="wrap nav-inner">
<a href="https://dojah.io" class="logo">
  <img class="logo-img" src="/assets/dojah-logo.svg" alt="Dojah" width="90" height="40" />
</a>
<nav class="nav-links">
  <a href="#ways">Ways to verify</a>
  <a href="#usecases">Solutions</a>
  <a href="#dev">Developer tools</a>
  <a href="#guides">Guides</a>
</nav>
<div class="nav-cta">
  <button type="button" class="theme-toggle" id="themeToggle" aria-label="Toggle dark mode" title="Toggle theme">
    <svg class="moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.8A9 9 0 1 1 11.2 3 7 7 0 0 0 21 12.8Z"/></svg>
    <svg class="sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4.2"/><path d="M12 2v2.4M12 19.6V22M4.9 4.9l1.7 1.7M17.4 17.4l1.7 1.7M2 12h2.4M19.6 12H22M4.9 19.1l1.7-1.7M17.4 6.6l1.7-1.7"/></svg>
  </button>
  <a href="https://app.dojah.io/signin" target="_blank" rel="noopener" class="btn btn-ghost">Sign in</a>
  <a href="https://dojah.io/contact-sales" target="_blank" rel="noopener" class="btn btn-primary btn-arrow">Contact sales <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
  <button type="button" class="menu-btn" id="menuBtn" aria-label="Menu" aria-controls="mobileMenu" aria-expanded="false">
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M3 6h18M3 12h18M3 18h18"/></svg>
  </button>
</div>
</div>
<div class="mobile-menu" id="mobileMenu">
<a href="#ways">Ways to verify</a>
<a href="#usecases">Solutions</a>
<a href="#dev">Developer tools</a>
<a href="#guides">Guides</a>
<a href="https://app.dojah.io/signin" target="_blank" rel="noopener" class="btn btn-ghost">Sign in</a>
<a href="https://dojah.io/contact-sales" target="_blank" rel="noopener" class="btn btn-primary">Contact sales</a>
</div>
</header>

<section class="hero">
<div class="wrap hero-grid">
<div class="hero-copy">
  <h1>Stop fraud <span class="u">before it starts<svg viewBox="0 0 320 24" preserveAspectRatio="none" fill="none"><path d="M4 15c40-9 92-11 150-9 60 2 110 6 164-3" stroke="#3F7CDB" stroke-width="6" stroke-linecap="round"/></svg></span>.</h1>
  <p class="lead">Government-backed KYC, biometric liveness, AML screening and fraud detection — all in <b>one platform</b>. Verify a customer in seconds with an API call, a drop-in widget, or a no-code flow.</p>
  <div class="hero-cta">
    <a href="https://dojah.io/?get-started=true" target="_blank" rel="noopener" class="btn btn-primary btn-arrow">Get API keys <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
    <a href="/api-reference/get-started/introduction" class="btn btn-ghost">Read the docs</a>
  </div>
  <div class="hero-meta">
    <div class="m"><b>120+</b><span>ID checks &amp; data sources</span></div>
    <div class="m"><b>&lt;3s</b><span>average verification</span></div>
    <div class="m"><b>5</b><span>official SDK clients</span></div>
  </div>
</div>
<div class="hero-art">
  <svg viewBox="0 0 520 470" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Hand-drawn identity verification illustration" style="overflow:visible">
    <defs><style>.st{stroke:#0B1E3B;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}</style></defs>
    <path class="st" d="M40 60c4-8 10-8 14 0M47 52v16" stroke-width="2.6"/>
    <path class="st" d="M470 300c6 4 6 12 0 16" />
    <path d="M56 380c8-6 18-6 26 0" class="st" fill="none"/>
    <g transform="rotate(-3 210 240)">
      <rect x="46" y="118" width="330" height="212" rx="18" fill="#FFFFFF" class="st"/>
      <rect x="46" y="118" width="330" height="52" rx="18" fill="#0B1E3B"/>
      <rect x="46" y="150" width="330" height="20" fill="#0B1E3B"/>
      <text x="72" y="151" font-family="Mona Sans,sans-serif" font-size="17" font-weight="600" fill="#FFFFFF">DOJAH VERIFIED ID</text>
      <rect x="72" y="196" width="86" height="100" rx="10" fill="#EDF2FB" class="st"/>
      <circle cx="115" cy="228" r="16" fill="#3F7CDB" class="st"/>
      <path d="M92 288c3-18 12-27 23-27s20 9 23 27" fill="#FB9700" class="st"/>
      <path class="st" d="M176 210h150M176 236h120M176 262h134" stroke-width="2.2"/>
      <rect x="176" y="286" width="118" height="26" rx="8" fill="#DDEDE6" class="st"/>
      <path d="M186 299l6 6 11-13" stroke="#2C7C6A" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
      <text x="210" y="304" font-family="Mona Sans" font-size="12" font-weight="700" fill="#2C7C6A">BVN · NIN</text>
    </g>
    <g transform="rotate(-13 400 130)" opacity="0.92">
      <circle cx="400" cy="130" r="56" fill="none" stroke="#3F7CDB" stroke-width="4.5"/>
      <circle cx="400" cy="130" r="46" fill="none" stroke="#3F7CDB" stroke-width="2" stroke-dasharray="2 5"/>
      <path d="M383 130l11 11 24-25" stroke="#3F7CDB" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
      <text x="400" y="100" font-family="Mona Sans,sans-serif" font-size="13" font-weight="700" fill="#3F7CDB" text-anchor="middle" letter-spacing="2">VERIFIED</text>
      <text x="400" y="170" font-family="Mona Sans,sans-serif" font-size="9" font-weight="600" fill="#3F7CDB" text-anchor="middle" letter-spacing="1">DOJAH · KYC</text>
    </g>
    <g transform="rotate(5 400 370)">
      <rect x="316" y="292" width="168" height="164" rx="22" fill="#161C29" class="st"/>
      <rect x="334" y="312" width="132" height="104" rx="12" fill="#22293a" class="st" stroke="#3a4256"/>
      <circle cx="400" cy="352" r="26" fill="none" stroke="#6fc9b3" stroke-width="3"/>
      <circle cx="391" cy="347" r="2.6" fill="#6fc9b3"/><circle cx="409" cy="347" r="2.6" fill="#6fc9b3"/>
      <path d="M390 360c3 5 17 5 20 0" stroke="#6fc9b3" stroke-width="2.6" stroke-linecap="round" fill="none"/>
      <path d="M340 322v-6a5 5 0 0 1 5-5h8M460 322v-6a5 5 0 0 0-5-5h-8M340 406v6a5 5 0 0 0 5 5h8M460 406v6a5 5 0 0 0-5 5h-8" stroke="#FB9700" stroke-width="2.8" stroke-linecap="round" fill="none"/>
      <rect x="346" y="428" width="76" height="16" rx="8" fill="#2C7C6A"/>
      <text x="356" y="440" font-family="Mona Sans" font-size="10" font-weight="800" fill="#eafff8">LIVENESS ✓</text>
    </g>
    <path d="M300 300 C 330 340, 320 300, 350 300" stroke="#3F7CDB" stroke-width="2.4" stroke-dasharray="1 7" stroke-linecap="round" fill="none"/>
    <g transform="rotate(-6 96 372)">
      <rect x="24" y="346" width="150" height="52" rx="12" fill="#FFFFFF" class="st"/>
      <circle cx="50" cy="372" r="13" fill="#FB9700" class="st"/>
      <path d="M45 372l4 4 7-8" stroke="#0B1E3B" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
      <path class="st" d="M72 366h82M72 380h56" stroke-width="2.2"/>
    </g>
  </svg>
</div>
</div>

<div class="wrap trust">
<p>Powering verification across regulated industries</p>
<div class="trust-row">
  <span class="tag-item">Fintech &amp; Neobanks</span>
  <span class="tag-item">Lending &amp; Credit</span>
  <span class="tag-item">Crypto &amp; Web3</span>
  <span class="tag-item">Betting &amp; Gaming</span>
  <span class="tag-item">Insurance</span>
</div>
</div>
</section>

<section class="sec" id="ways">
<div class="wrap">
<div class="ways-head reveal">
  <div class="sec-head" style="max-width:520px">
    <h2>Pick how you want to verify</h2>
    <p>Start on the dashboard today, graduate to the API when you're ready. Every path runs the same verification engine underneath.</p>
  </div>
  <a href="/api-reference/get-started/introduction" class="btn btn-ghost btn-arrow">Compare all four <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
</div>
<div class="ways">
  <div class="way reveal">
    <span class="lvl">No code</span>
    <div class="ill" style="background:var(--sky)">
      <svg width="130" height="96" viewBox="0 0 130 96" fill="none"><g stroke="#0B1E3B" stroke-width="2.2" stroke-linejoin="round"><rect x="22" y="18" width="86" height="60" rx="7" fill="#FFFFFF"/><path d="M22 34h86"/></g><circle cx="31" cy="26" r="2.4" fill="#3F7CDB"/><circle cx="39" cy="26" r="2.4" fill="#FB9700"/><rect x="32" y="44" width="30" height="24" rx="4" fill="#DCE9FB" stroke="#0B1E3B" stroke-width="1.8"/><rect x="68" y="44" width="30" height="10" rx="3" fill="#DDEDE6" stroke="#0B1E3B" stroke-width="1.8"/><rect x="68" y="58" width="20" height="8" rx="3" fill="#EDF2FB" stroke="#0B1E3B" stroke-width="1.8"/><circle cx="47" cy="54" r="6" fill="#3F7CDB"/></svg>
    </div>
    <h3>Dashboard</h3>
    <p>Run one-off KYC, AML and document checks by hand — no engineering needed.</p>
    <a href="/dashboard-guide/verify/individual" class="more">Open dashboard <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
  </div>
  <div class="way reveal">
    <span class="lvl">No code</span>
    <div class="ill" style="background:var(--forest-soft)">
      <svg width="130" height="96" viewBox="0 0 130 96" fill="none"><g stroke="#0B1E3B" stroke-width="2.2" stroke-linejoin="round"><rect x="18" y="22" width="42" height="52" rx="7" fill="#FFFFFF"/></g><rect x="26" y="32" width="26" height="6" rx="3" fill="#DDEDE6"/><rect x="26" y="44" width="26" height="6" rx="3" fill="#DDEDE6"/><rect x="26" y="56" width="17" height="6" rx="3" fill="#2C7C6A"/><path d="M64 48h16" stroke="#2C7C6A" stroke-width="2.4" stroke-dasharray="2 4" stroke-linecap="round"/><path d="M76 43l6 5-6 5" stroke="#2C7C6A" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" fill="none"/><rect x="86" y="22" width="26" height="26" rx="7" fill="#2C7C6A" stroke="#0B1E3B" stroke-width="2.2"/><path d="M92 35l4 4 7-8" stroke="#FFFFFF" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" fill="none"/><rect x="86" y="54" width="26" height="20" rx="6" fill="#DDEDE6" stroke="#0B1E3B" stroke-width="2.2"/></svg>
    </div>
    <h3>EasyOnboard</h3>
    <p>Design multi-step onboarding flows in a visual editor and share a link.</p>
    <a href="/dashboard-guide/workflows/easyonboard" class="more">Build a flow <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
  </div>
  <div class="way reveal">
    <span class="lvl">Low code</span>
    <div class="ill" style="background:var(--rose)">
      <svg width="130" height="96" viewBox="0 0 130 96" fill="none"><rect x="44" y="14" width="42" height="68" rx="9" fill="#FFFFFF" stroke="#0B1E3B" stroke-width="2.2"/><rect x="51" y="24" width="28" height="22" rx="4" fill="#E6F0FD" stroke="#0B1E3B" stroke-width="1.6"/><circle cx="65" cy="33" r="6" fill="#3F7CDB"/><rect x="51" y="52" width="28" height="6" rx="3" fill="#E6F0FD"/><rect x="51" y="62" width="19" height="6" rx="3" fill="#E6F0FD"/><rect x="55" y="72" width="20" height="4" rx="2" fill="#3F7CDB"/><path d="M98 34l6 6-6 6M32 34l-6 6 6 6" stroke="#3F7CDB" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg>
    </div>
    <h3>Widget</h3>
    <p>Drop a hosted, prebuilt verification component into web or mobile in minutes.</p>
    <a href="/api-reference/widget-sdks/web-javascript" class="more">Embed widget <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
  </div>
  <div class="way reveal">
    <span class="lvl">Full control</span>
    <div class="ill" style="background:#E3EAF6">
      <svg width="130" height="96" viewBox="0 0 130 96" fill="none"><rect x="20" y="20" width="90" height="56" rx="8" fill="#161C29" stroke="#0B1E3B" stroke-width="2.2"/><path d="M20 34h90" stroke="#3a4256" stroke-width="1.8"/><circle cx="28" cy="27" r="2.4" fill="#3F7CDB"/><circle cx="36" cy="27" r="2.4" fill="#FB9700"/><circle cx="44" cy="27" r="2.4" fill="#2C7C6A"/><rect x="28" y="42" width="10" height="4" rx="2" fill="#e0a23a"/><rect x="41" y="42" width="26" height="4" rx="2" fill="#6fc9b3"/><rect x="28" y="52" width="34" height="4" rx="2" fill="#9db8d6"/><rect x="34" y="62" width="24" height="4" rx="2" fill="#e8a87c"/><rect x="61" y="62" width="14" height="4" rx="2" fill="#7d7565"/></svg>
    </div>
    <h3>API &amp; SDKs</h3>
    <p>Call verification endpoints directly and compose your own flows end to end.</p>
    <a href="/api-reference/get-started/introduction" class="more">See the API <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
  </div>
</div>
</div>
</section>

<section class="sec usecases" id="usecases">
<div class="wrap">
<div class="sec-head center reveal">
  <h2>Verification stacks built for <em class="acc">your</em> industry</h2>
  <p>Every vertical carries different risk. Compose the exact chain you need — here are the ones teams reach for most.</p>
</div>

<div class="uc-switch">
  <input class="uc-radio" type="radio" name="uc" id="uc-r-fintech" checked />
  <input class="uc-radio" type="radio" name="uc" id="uc-r-lending" />
  <input class="uc-radio" type="radio" name="uc" id="uc-r-crypto" />
  <input class="uc-radio" type="radio" name="uc" id="uc-r-betting" />

  <div class="uc-tabs reveal">
    <label class="uc-tab" for="uc-r-fintech">Fintech &amp; Neobanks</label>
    <label class="uc-tab" for="uc-r-lending">Lending &amp; Credit</label>
    <label class="uc-tab" for="uc-r-crypto">Crypto &amp; Web3</label>
    <label class="uc-tab" for="uc-r-betting">Betting &amp; Gaming</label>
  </div>

  <div class="uc-panels">
    <div class="uc-panel" id="uc-fintech">
      <div class="uc-info">
        <h3>Fintech &amp; Neobanks</h3>
        <p>Onboard account holders in seconds and keep watching for risk. Confirm identity against government sources, prove the person is real, then screen and monitor continuously.</p>
        <div class="tags"><span>Account opening</span><span>Tiered KYC</span><span>Ongoing monitoring</span></div>
        <a class="uc-link" href="/use-cases/fintech">Explore Fintech &amp; Neobanks</a>
      </div>
      <div class="flow">
        <a class="flow-step" href="/api-reference/individual-verification/nigeria/lookup-bvn"><span class="num">1</span><div class="t"><b>BVN / NIN lookup</b><span>Match customer details to bank &amp; national ID records</span></div><span class="chip">Identity</span></a>
        <a class="flow-step" href="/api-reference/biometrics-liveness/liveness-check"><span class="num">2</span><div class="t"><b>Liveness check</b><span>Selfie biometrics confirm a real, present person</span></div><span class="chip">Biometric</span></a>
        <a class="flow-step" href="/api-reference/aml-background/aml-screening"><span class="num">3</span><div class="t"><b>AML screening</b><span>Sanctions, PEP &amp; adverse-media scan</span></div><span class="chip">Compliance</span></a>
        <a class="flow-step" href="/dashboard-guide/verify/individual/aml-screening"><span class="num">4</span><div class="t"><b>Ongoing monitoring</b><span>Re-screen automatically as watchlists change</span></div><span class="chip">Continuous</span></a>
      </div>
    </div>
    <div class="uc-panel" id="uc-lending">
      <div class="uc-info">
        <h3>Lending &amp; Credit</h3>
        <p>Know exactly who you're lending to before money moves. Verify identity, prove liveness, pull credit signals, then screen for financial-crime risk.</p>
        <div class="tags"><span>Loan origination</span><span>Affordability</span><span>Default risk</span></div>
        <a class="uc-link" href="/use-cases/lending">Explore Lending &amp; Credit</a>
      </div>
      <div class="flow">
        <a class="flow-step" href="/api-reference/individual-verification/nigeria/validate-bvn"><span class="num">1</span><div class="t"><b>BVN verification</b><span>Confirm the applicant owns the account</span></div><span class="chip">Identity</span></a>
        <a class="flow-step" href="/api-reference/biometrics-liveness/liveness-check"><span class="num">2</span><div class="t"><b>Liveness check</b><span>Block stolen-ID and deepfake applications</span></div><span class="chip">Biometric</span></a>
        <a class="flow-step" href="/api-reference/financial-credit/credit-score"><span class="num">3</span><div class="t"><b>Credit check</b><span>Pull bureau history &amp; affordability signals</span></div><span class="chip">Credit</span></a>
        <a class="flow-step" href="/api-reference/aml-background/aml-screening"><span class="num">4</span><div class="t"><b>AML screening</b><span>Sanctions &amp; PEP checks before disbursement</span></div><span class="chip">Compliance</span></a>
      </div>
    </div>
    <div class="uc-panel" id="uc-crypto">
      <div class="uc-info">
        <h3>Crypto &amp; Web3</h3>
        <p>Meet exchange-grade compliance without the friction. Verify a government ID, prove liveness, screen against sanctions and score the connection for risk.</p>
        <div class="tags"><span>Exchange onboarding</span><span>Travel Rule</span><span>Geo &amp; IP risk</span></div>
        <a class="uc-link" href="/use-cases/crypto">Explore Crypto &amp; Web3</a>
      </div>
      <div class="flow">
        <a class="flow-step" href="/api-reference/document-analysis/document-analysis"><span class="num">1</span><div class="t"><b>Government ID</b><span>Capture &amp; authenticate passport / national ID</span></div><span class="chip">Identity</span></a>
        <a class="flow-step" href="/api-reference/biometrics-liveness/liveness-check"><span class="num">2</span><div class="t"><b>Liveness check</b><span>Bind the ID to a real human face</span></div><span class="chip">Biometric</span></a>
        <a class="flow-step" href="/api-reference/aml-background/aml-screening"><span class="num">3</span><div class="t"><b>Sanctions screening</b><span>Global watchlists &amp; PEP exposure</span></div><span class="chip">Compliance</span></a>
        <a class="flow-step" href="/api-reference/fraud-risk/ip-screening"><span class="num">4</span><div class="t"><b>IP &amp; device risk</b><span>Flag VPNs, proxies &amp; high-risk geographies</span></div><span class="chip">Fraud</span></a>
      </div>
    </div>
    <div class="uc-panel" id="uc-betting">
      <div class="uc-info">
        <h3>Betting &amp; Gaming</h3>
        <p>Confirm age and identity at sign-up, keep bad actors out, and enforce your own exclusion lists — all in the same verification call.</p>
        <div class="tags"><span>Age verification</span><span>Self-exclusion</span><span>Bonus abuse</span></div>
        <a class="uc-link" href="/use-cases/betting">Explore Betting &amp; Gaming</a>
      </div>
      <div class="flow">
        <a class="flow-step" href="/api-reference/individual-verification/nigeria/lookup-nin"><span class="num">1</span><div class="t"><b>NIN / BVN lookup</b><span>Verify identity &amp; confirm the player is of age</span></div><span class="chip">Identity</span></a>
        <a class="flow-step" href="/api-reference/biometrics-liveness/liveness-check"><span class="num">2</span><div class="t"><b>Liveness check</b><span>One person, one account — stop multi-accounting</span></div><span class="chip">Biometric</span></a>
        <a class="flow-step" href="/api-reference/fraud-risk/user-screening"><span class="num">3</span><div class="t"><b>Custom lists</b><span>Screen against your self-exclusion &amp; block lists</span></div><span class="chip">Custom</span></a>
        <a class="flow-step" href="/api-reference/fraud-risk/ip-screening"><span class="num">4</span><div class="t"><b>IP risk</b><span>Detect location spoofing &amp; restricted regions</span></div><span class="chip">Fraud</span></a>
      </div>
    </div>
  </div>
</div>
</div>
</section>

<section class="sec" id="dev">
<div class="wrap dev">
<div>
  <div class="sec-head reveal" style="margin-bottom:30px">
    <h2>Everything you need to ship</h2>
    <p>Clear references, official clients and a full sandbox — so your first successful verification happens today, not next sprint.</p>
  </div>
  <div class="dev-tools">
    <a href="/api-reference/get-started/introduction" class="tool reveal"><div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 6l-5 6 5 6M16 6l5 6-5 6"/></svg></div><h4>API Reference</h4><p>Every endpoint, parameter and response, with live examples.</p><span class="snip">GET /api/v1/kyc/bvn</span><span class="go">Browse endpoints <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
    <a href="/api-reference/get-started/authentication" class="tool reveal"><div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="10" width="16" height="11" rx="2"/><path d="M8 10V7a4 4 0 0 1 8 0v3"/></svg></div><h4>Authentication</h4><p>Secure requests with API keys &amp; app IDs in minutes.</p><span class="snip">Authorization: &lt;secret_key&gt;</span><span class="go">Set up auth <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
    <a href="/api-reference/widget-sdks/choosing-an-sdk" class="tool reveal"><div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3l8 4.5v9L12 21l-8-4.5v-9L12 3z"/><path d="M12 12l8-4.5M12 12v9M12 12L4 7.5"/></svg></div><h4>SDKs</h4><p>Web, React, Flutter &amp; native mobile libraries.</p><span class="snip">npm i react-dojah</span><span class="go">Choose an SDK <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
    <a href="/api-reference/core-concepts/webhooks-signatures" class="tool reveal"><div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12a8 8 0 0 1 8-8M20 12a8 8 0 0 1-8 8"/><path d="M12 4l3 3-3 3M12 20l-3-3 3-3"/></svg></div><h4>Webhooks</h4><p>Real-time events the moment a check completes.</p><span class="snip">event: kyc.completed</span><span class="go">Configure webhooks <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
    <a href="/api-reference/get-started/sandbox-test-data" class="tool reveal"><div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16v12H4z"/><path d="M8 20h8M9 16v4M15 16v4"/><path d="M8 8l2 2-2 2"/></svg></div><h4>Sandbox</h4><p>Test the full flow with mock data before you go live.</p><span class="snip">https://sandbox.dojah.io</span><span class="go">Try the sandbox <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
    <a href="/api-reference/api-clients/python" class="tool reveal"><div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c2.5 2.7 3.8 5.9 4 9-.2 3.1-1.5 6.3-4 9-2.5-2.7-3.8-5.9-4-9 .2-3.1 1.5-6.3 4-9z"/></svg></div><h4>Official clients</h4><p>PHP, Python, Go, Java &amp; TypeScript, maintained by us.</p><span class="snip">pip install dojah</span><span class="go">Get a client <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
</div>
</div>

<div class="code-card reveal">
  <input class="code-radio" type="radio" name="lang" id="lang-curl" checked />
  <input class="code-radio" type="radio" name="lang" id="lang-node" />
  <input class="code-radio" type="radio" name="lang" id="lang-python" />
  <div class="code-top">
    <div class="dots"><i style="background:#3F7CDB"></i><i style="background:#FB9700"></i><i style="background:#2C7C6A"></i></div>
    <div class="code-langs">
      <label for="lang-curl">cURL</label>
      <label for="lang-node">Node</label>
      <label for="lang-python">Python</label>
    </div>
    <span class="copy"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/></svg>Copy</span>
  </div>
  <div class="code-body">
<pre data-lang="curl"><span class="tk-com"># Verify a customer's BVN + liveness</span>
curl <span class="tk-str">https://api.dojah.io/api/v1/kyc/bvn</span> \\
-H <span class="tk-str">"Authorization: &lt;secret_key&gt;"</span> \\
-H <span class="tk-str">"AppId: &lt;app_id&gt;"</span> \\
-d <span class="tk-str">'{ "bvn": "22345678901" }'</span></pre>
<pre data-lang="node"><span class="tk-key">import</span> { Dojah } <span class="tk-key">from</span> <span class="tk-str">'dojah-node'</span>;

<span class="tk-key">const</span> <span class="tk-var">dojah</span> = <span class="tk-key">new</span> <span class="tk-fn">Dojah</span>({ appId, secretKey });

<span class="tk-key">const</span> <span class="tk-var">result</span> = <span class="tk-key">await</span> dojah.kyc.<span class="tk-fn">bvn</span>({
bvn: <span class="tk-str">'22345678901'</span>,
liveness: <span class="tk-num">true</span>,
});</pre>
<pre data-lang="python"><span class="tk-key">from</span> dojah <span class="tk-key">import</span> Dojah

<span class="tk-var">dojah</span> = <span class="tk-fn">Dojah</span>(app_id, secret_key)

<span class="tk-var">result</span> = dojah.kyc.<span class="tk-fn">bvn</span>(
bvn=<span class="tk-str">'22345678901'</span>,
liveness=<span class="tk-num">True</span>,
)</pre>
    <div class="resp"><span class="badge">200 OK</span><span>{ "verified": true, "match": 0.98 }</span></div>
  </div>
</div>
</div>
</section>

<section class="sec" style="padding-top:8px">
<div class="wrap">
<div class="guides" id="guides">
  <div class="sec-head reveal" style="position:relative;z-index:2">
    <h2>Jump straight to the answer</h2>
    <p>Short, task-focused walkthroughs for the things teams do most.</p>
  </div>
  <div class="guide-grid">
    <a href="/dashboard-guide/verify/individual/aml-screening" class="guide"><span class="gi" style="background:rgba(63,124,219,.24)"><svg viewBox="0 0 24 24" fill="none" stroke="#e8a87c" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2l8 4v6c0 5-3.5 8-8 10-4.5-2-8-5-8-10V6z"/><path d="M9 12l2 2 4-4"/></svg></span><div><b>Run AML screening</b><span>Screen a customer against watchlists</span></div><span class="arw"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
    <a href="/dashboard-guide/account/settings/team" class="guide"><span class="gi" style="background:rgba(44,124,106,.26)"><svg viewBox="0 0 24 24" fill="none" stroke="#6fc9b3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="8" r="3.5"/><path d="M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6"/><path d="M16 4a3.5 3.5 0 0 1 0 7M18 20c0-2.5-1-4.6-2.6-5.6"/></svg></span><div><b>Manage your team</b><span>Invite members &amp; set roles</span></div><span class="arw"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
    <a href="/dashboard-guide/getting-started/fund-your-wallet#top-up-your-wallet" class="guide"><span class="gi" style="background:rgba(251,151,0,.26)"><svg viewBox="0 0 24 24" fill="none" stroke="#FB9700" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="6" width="18" height="12" rx="2"/><circle cx="12" cy="12" r="2.5"/><path d="M6 12h.01M18 12h.01"/></svg></span><div><b>Fund your wallet</b><span>Top up to run live checks</span></div><span class="arw"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
    <a href="/dashboard-guide/integrations/developers/api-tokens" class="guide"><span class="gi" style="background:rgba(220,231,236,.2)"><svg viewBox="0 0 24 24" fill="none" stroke="#9db8d6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="10" width="16" height="11" rx="2"/><path d="M8 10V7a4 4 0 0 1 8 0v3"/><path d="M12 14v3"/></svg></span><div><b>Retrieve API keys</b><span>Find your app ID &amp; secret</span></div><span class="arw"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></span></a>
  </div>
  <div style="text-align:center;position:relative;z-index:2">
    <a href="/get-started" class="guides-more">Browse all guides <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
  </div>
</div>
</div>
</section>

<section class="cta-band" id="cta">
<div class="wrap">
<div class="cta-inner reveal">
  <div>
    <h2>Your first verification is <em style="font-style:italic;color:#fff">minutes</em> away</h2>
    <p>Create a free account, grab your sandbox keys, and run a real check today. Talk to us when you're ready to go live.</p>
    <div class="cta-cta">
      <a href="https://dojah.io/?get-started=true" target="_blank" rel="noopener" class="btn btn-white btn-arrow">Get API keys <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
      <a href="/api-reference/get-started/introduction" class="btn btn-line">Read the docs</a>
    </div>
  </div>
</div>
</div>
</section>

<footer>
<div class="wrap">
<div class="foot-grid">
  <div class="foot-brand">
    <a href="https://dojah.io" class="logo"><img class="logo-img" src="/assets/dojah-logo.svg" alt="Dojah" width="90" height="40" style="filter:brightness(0) invert(1)" /></a>
    <p>Government-backed identity verification, KYC, AML and fraud detection built for African markets.</p>
  </div>
  <div class="foot-col"><h5>Product</h5><a href="/dashboard-guide/verify/individual">Dashboard</a><a href="/dashboard-guide/workflows/easyonboard">EasyOnboard</a><a href="/api-reference/widget-sdks/web-javascript">Widget</a><a href="/api-reference/get-started/introduction">API &amp; SDKs</a></div>
  <div class="foot-col"><h5>Developers</h5><a href="/api-reference/get-started/introduction">API Reference</a><a href="/api-reference/get-started/authentication">Authentication</a><a href="/api-reference/webhook-management/subscribe">Webhooks</a><a href="/api-reference/get-started/sandbox-test-data">Sandbox</a></div>
  <div class="foot-col"><h5>Company</h5><a href="https://dojah.io/about-us">About</a><a href="/get-started">Guides</a><a href="/support">Support</a><a href="https://dojah.io/privacy-policy">Privacy &amp; Terms</a></div>
</div>
<div class="foot-bottom">
  <span>© 2026 Dojah. All rights reserved.</span>
  <div class="foot-social">
    <a href="https://twitter.com/DojahInc" target="_blank" rel="noopener" aria-label="X"><svg viewBox="0 0 24 24" fill="#a9a091"><path d="M18 3h3l-7 8 8 10h-6l-5-6-5 6H3l7-9L2 3h6l4 5 6-5z"/></svg></a>
    <a href="https://www.linkedin.com/company/dojah" target="_blank" rel="noopener" aria-label="LinkedIn"><svg viewBox="0 0 24 24" fill="#a9a091"><path d="M6.5 8.5A2 2 0 1 0 6.5 4.5a2 2 0 0 0 0 4zM4.5 10h4v10h-4zM11 10h3.8v1.4c.5-.9 1.8-1.8 3.5-1.8 3.2 0 4.2 2 4.2 5v5.4h-4v-4.8c0-1.2-.5-2.2-1.7-2.2s-1.9 1-1.9 2.2V20H11z"/></svg></a>
    <a href="https://www.youtube.com/@DOJAHINC" target="_blank" rel="noopener" aria-label="YouTube"><svg viewBox="0 0 24 24" fill="#a9a091"><path d="M23 12s0-3.2-.4-4.7a2.5 2.5 0 0 0-1.8-1.8C19.3 5 12 5 12 5s-7.3 0-8.8.5A2.5 2.5 0 0 0 1.4 7.3C1 8.8 1 12 1 12s0 3.2.4 4.7a2.5 2.5 0 0 0 1.8 1.8C4.7 19 12 19 12 19s7.3 0 8.8-.5a2.5 2.5 0 0 0 1.8-1.8C23 15.2 23 12 23 12zM9.8 15.3V8.7l6.2 3.3-6.2 3.3z"/></svg></a>
  </div>
</div>
</div>
</footer>
` }}
/>
