Identity infrastructure for the products you build.

Most teams spend months building KYC: camera handling, liveness, document parsing and face matching. Veris gives you all of it on one API key, with no face images stored.

Get started

Sandbox ready in minutes · no card · all three products

Talk to us

Pricing, rollout or a security review

Your app Your backend Illustrative simulation · fictional data
Verify your identity
DRIVER'S LICENCESPECIMEN
OBIAMARA1994-05-12DEMO-0482-NG

Scan the front of your ID

Hold steady. We'll capture it automatically.

Hold still
Powered by Veris

Checking your result…

This only takes a moment.

ID photo
Selfie

Matching faces

Comparing your selfie with your ID photo.

You're verified

Welcome aboard, Amara.

Continue
server.jslistening
    ScanResultfrom the SDK, on device
    
              

    1 of 5

    1/5

    Trusted by teams in fintech, insurance, healthcare and e-commerce

    • Fintech
    • Insurance
    • Healthcare
    • E-commerce

    Three building blocks.
    Use one, or all three.

    Each product works on its own. Together they cover a full verification flow, on one key and one subscription. Your app keeps the screens; Veris does the hard parts.

    SDK · on device

    Veris Capture

    A guided selfie with a quality gate and liveness detection. Every session returns one signed result your backend can trust.

    • Android
    • iOS
    • Flutter
    • React Native
    Explore Capture
    SDK · on device

    Veris Scan

    Point the camera at a Nigerian ID or utility bill, or pass in an image. The fields come back as structured data.

    • NIN slip
    • National ID
    • Licence
    • Passport
    • Voter's card
    • Bills
    Explore Scan
    API · your server

    Veris Compare

    Send two face images from your server. Get back a similarity score, a match decision and a recommendation.

    • REST API
    • JSON or multipart
    • JPEG · PNG
    Explore Compare
    Better together

    One key. One bill. One flow.

    Scan hands you the photo from the ID. Capture hands you a live selfie. Compare tells you whether they are the same person. Use the pieces you need and add the rest later.

    // your backend
    const COMPARE_URL = "https://compare.verisinfra.com/v1/compare/base64"
    
    const res = await fetch(COMPARE_URL, {
      method: "POST",
      headers: { Authorization: `Bearer ${VERIS_KEY}` },
      body: JSON.stringify({
        captured_b64, reference_b64,
        use_case: "kyc_onboarding"
      })
    })
    // → { match, confidence, recommendation, … }

    Every paid plan includes all three products; liveness starts on Launch. See plans

    Know it's them
    when it matters most.

    Lenders, marketplaces, engineering teams and compliance leads use Veris differently. Open a use case to see the problem, how Veris fits, and where to start.

    A software engineer integrating an SDK at her desk (fictional, AI-generated)

    Developers

    Call a function, not a six‑month project.

    Android · iOS · Flutter · React NativeOpen
    Open the Developers use case

    Building for Nigeria

    Read the documents your customers actually carry.

    ScanOpen
    Open the Building for Nigeria use case

    Startups

    Start with one product. Add the rest when you need them.

    Capture → Scan → CompareOpen
    Open the Startups use case
    See every use case

    Less data held.
    Less to lose.

    Face and ID images stay on the Capture and Scan run on the deviceCamera frames, the selfie and the photo of the ID are processed on the phone. They are never sent to Veris.. Your server gets a ES256-signed, single-use"status": "SUCCESS","liveness_score": 0.88,"face_hash": "7d2e…c41a"Tied to a one-time nonce from your server. A replayed result is rejected., not a photo, unless your app sends one. Compare reads In memory, then deletedYour backend sends both images to Compare. They are processed in memory and deleted after every request, including requests that fail. and deletes them. Veris keeps your account and usage records, and What Veris keepsYour account, license and usage records. Never face images, video or biometric templates. License keys are stored as hashes..

    Every connection uses TLS 1.2 or later, with HSTS on every Veris domain. Veris supports your compliance work; it does not replace it.

    Your team ships the product.
    We already built the hard part.

    Native SDKs for Android, iOS, Flutter and React Native, and a REST API for Compare. Build against the free sandbox, then swap in a live key. Your code stays the same.

    MainActivity.kt
    // build.gradle (app module)implementation 'com.verisinfra:veris-capture-android:1.3.0'​// MainActivity.kt, in onCreateVerisCapture.init(    context = this,    config  = VerisConfig(        licenseKey = "veris_sandbox_…",        initNonce  = fetchNonceFromBackend(),    ),) { if (it is VerisInitResult.Ready) { /* ready */ } }

    SDK ready. Sandbox keys work straight away: all three products, 50 validations a day.

    • Always a final stateSuccess, failure, cancelled or subscription inactive. Never a silent failure.
    • Never crashes your appThe SDKs don't throw unhandled exceptions into the host app.
    • Lets go of the cameraCamera, CPU and memory are released when a session ends. No camera use in the background.
    • Upgrade without a releasePlan features are read at validation, so a new plan needs no code change.

    Notes from the team

    Visit the blog

    Verify your first user
    today.

    Create an account and start building straight away with all three products. No card, no KYC. Go live free on Spark, cancel any time, and get your first payment back within 14 days if Veris isn't right for you.

    1. 1Create an accountEmail verification only.
    2. 2 Copy your sandbox key 50 validations a day and 10 Compare calls, free.
    3. 3Go livePick a plan, register your app and swap in a live key.

    Good questions,
    straight answers.

    Can't find yours? Write to [email protected] or talk to us. The docs go deeper.

    Does Veris store face images?

    No. Capture and Scan process images on the user's phone and never send them to Veris. Images sent to Compare are processed in memory and deleted after every request, including requests that fail. Veris does not store face images, video or biometric templates.

    Which platforms do the SDKs support?

    Capture and Scan have native SDKs for Android, iOS, Flutter and React Native. Compare is a REST API you call from any backend, in any language.

    Which documents can Veris Scan read?

    The NIN slip, national ID card, driver's licence, international passport (including the MRZ), voter's card, electricity, water and waste bills, and bank statements. AUTO_DETECT works out the type for you. Scan reads the document; it does not judge whether it is genuine.

    Does Veris check NIN or BVN records?

    No. Veris does not look people up in government databases. Scan reads what is printed on the document, Capture confirms a live person is present, and Compare tells you whether two faces match. If you need a database check, use it alongside Veris.

    Is there a free sandbox?

    Yes. Create an account and verify your email; there is no card and no KYC. The sandbox includes all three products, with 50 validations a day and 10 Compare calls in total. Sandbox results are marked as sandbox and are rejected in production.

    Which plan do I need?

    Start free in the sandbox. To go live at low volume, Spark is free. For real users, Launch ($19 a month) adds passive liveness, and Scale ($39) adds active liveness and our help going live. Pro adds stricter liveness and video. You can change plan at any time.

    Can I start with just one product?

    Yes. Every plan includes all three, but you only integrate what you need. You could start with Capture for liveness at sign-up, then add Scan for KYC and Compare when you need to re-verify people.

    How do I go live?

    Choose a plan, register your app's production package name, and swap your sandbox key for a live key. Your integration code stays the same. Each live key is tied to one production app.

    How does pricing work?

    Plans are subscriptions, not a charge per verification. Prices are in US dollars and charged in naira at checkout, at the day's rate. Compare calls come with a monthly allowance. See the pricing page for what each plan includes.

    Can I get a refund?

    Yes. If Veris isn't right for you, you can get your first payment for a paid plan back in full within 14 days. Write to [email protected] from your account email. It applies once per account and doesn't cover Compare overage. You can also cancel any time from the dashboard.

    What happens if a payment fails?

    There is a short grace period while you update your payment. After that, the SDK returns a SubscriptionInactive result instead of crashing, so your app can show its own message.

    01 / 06