Identity & KYCLive

Onboard in tiers. Raise limits as people verify.

Tiered onboarding, limits that rise automatically, graded identity records.

Illustrative
Why it matters

What it changes for you.

Asking for every document on day one loses most of the people you wanted. Asking for nothing leaves you carrying risk you can't see. The answer most money apps land on is tiers: let people start small on a phone number, and raise what they can do as they prove more.

Bridge keeps that ladder for you. Each customer sits on a tier with its own limits. Add a BVN, an NIN or a verified bank account, and the tier rises automatically, with the new limits in force from that moment.

Underneath, every identity fact is stored with how well it is known: who asserted it, how it was checked and when. You never have to guess whether a date of birth was typed in or checked against a register.

How it works

Step by step.

  1. Start on a phone number

    A one-time code puts the customer on tier 1, with small limits you set, so they can try your product the same day.

  2. Collect facts when they matter

    Ask for a BVN when they want to send to a bank, an NIN when they want higher limits. Each check is recorded with its result.

  3. Tiers rise on their own

    Escalation rules move a customer up as soon as the facts a tier needs are verified. Limits change in the same step.

  4. Every fact carries its grade

    Declared, checked against a source, or confirmed by a document: the grade travels with the fact wherever you read it.

  5. Limits are enforced on every call

    Transfers, withdrawals and balances are checked against the customer's tier before anything posts.

What you can switch on

Built in, not bolted on.

Tiers you define

Name your tiers, set each one's limits and the facts it needs. Change them without a release.

BVN, NIN and account checks

Look up a BVN or NIN and confirm a bank account belongs to the person, with the result stored against the fact.

Graded identity records

Each fact says how it is known, so a declared address and a verified one are never confused.

Community vouching

People without documents can build standing from attestations by others, scored on several independent signals.

Reads you can justify

Your teams see the facts they need for the job, and every read of a sensitive value is recorded.

Tier changes as events

A customer moving up or down a tier reaches you as a signed webhook, so your app can unlock features at once.

  • Onboarding in tiers, with limits that rise as customers verify
  • BVN, NIN and bank-account checks
  • Every identity fact carries its assurance grade
  • Community vouching
Use cases

How businesses use it.

Illustrative businesses, not customers. Figures are made up to show the flow.

A savings app for traders in Onitsha · Fintechs & neobanks

Same-day sign-up for a savings app

Traders download the app at the market but give up when asked for three documents before they can save ₦500. The app needs them saving first and verifying later.

  1. Sign-up asks only for a phone number; the trader is on tier 1 straight away
  2. Small deposits and transfers to other users work within tier 1 limits
  3. When the trader wants to send to a bank, the app asks for a BVN
  4. The BVN checks out and the tier rises in the same session

Traders start the day they download, and the app collects documents only when a trader wants something that needs them.

Illustrative

A microfinance bank's agent network in Kano · Banks, MFBs & PSBs

Limits that match the customer in front of you

Agents open accounts for customers who often have a phone number and little else. The bank must keep those accounts within regulatory limits without turning people away.

  1. The agent opens a tier 1 account on a phone number
  2. The customer can deposit and withdraw within tier 1 limits
  3. When they return with their NIN, the agent adds it and the account moves up
  4. Any attempt above the tier's limit is refused before it posts

The bank opens accounts for people it would otherwise turn away, and stays inside its limits on every transaction.

Illustrative

A digital lender in Lagos · Lenders & BNPL

Lending decisions on facts you can trust

The lender's credit team keeps finding that declared employers and salaries were never checked. Applications look complete, but nobody can say which facts are real.

  1. The application form stores each answer as a declared fact
  2. Salary is confirmed from account inflows and graded as checked
  3. The scorecard only counts facts graded as checked or better
  4. Underwriters see the grade beside every fact they rely on

The credit team decides on what is known, not on what was typed, and can show why.

Illustrative
For developers

Create an account holder.

Endpoints in the Identity & KYC API reference, with every parameter and response.

State changes arrive as signed webhooks. How webhooks work

POST /accountholder

curl -X POST "https://api.bridgemoni.com/accountholder" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
    "mobileNumber": "+2348012345678",
    "emailAddress": "ada@example.com",
    "username": "ada.obi",
    "password": "a-strong-password",
    "roleName": "Ada Obi",
    "person": {
      "name": {
        "firstName": "first name",
        "lastName": "last name",
        "middleName": "middle name",
        "fullName": "Ada Obi",
        "maidenName": "Ada Obi"
      },
      "birthDate": "2027-03-14",
      "birthCity": "Lagos",
      "birthCountryCode": "NG",
      "genderCode": "MALE",
      "maritalStatus": "SINGLE",
      "nationalityCountryCode": "NG",
      "residentCountryCode": "NG",
      "taxResidences": [
        {
          "...": "nested"
        }
      ]
    },
    "identifiers": [
      {
        "schemeName": "Ada Obi",
        "identificationNumber": "identification number",
        "issuingCountryCode": "NG",
        "verifier": "Ada Obi",
        "profileMatch": true,
        "verificationStatus": "PENDING",
        "verificationMethod": "verification method",
        "verificationDateTime": "2027-03-14T14:30:01"
      }
    ],
    "identifications": [
      {
        "identificationType": "PASSPORT",
        "identificationNumber": "identification number",
        "issuingCountryCode": "NG",
        "issuingAuthority": "Ada Obi",
        "issueDate": "2027-03-14",
        "expiryDate": "2027-03-14",
        "identifier": "identification number",
        "frontImageUrl": "unified resource identifier",
        "backImageUrl": "unified resource identifier"
      }
    ],
    "addresses": [
      {
        "addressType": "POSTAL",
        "streetName": "street name",
        "buildingNumber": "house number",
        "postCode": "101241",
        "town": "Lagos",
        "district": "district code",
        "province": "province",
        "countryCode": "NG",
        "landmark": "landmark"
      }
    ],
    "contacts": [
      {
        "emailAddress": "ada@example.com",
        "msisdn": "+2348012345678",
        "preferredChannel": "SMS",
        "preferredLanguageCode": "language code"
      }
    ],
    "employment": {
      "occupation": "Ada Obi",
      "employmentStatus": "EMPLOYED",
      "occupationCode": "category code",
      "employerName": "Ada Obi"
    },
    "sourceOfFunds": [
      "category"
    ],
    "expectedActivity": {
      "monthlyVolume": 250000.0,
      "currencyCode": "NGN",
      "purpose": "March payroll"
    },
    "sanction": {
      "politicallyExposureStatus": true,
      "sanctionMatchStatus": true,
      "sanctionSources": [
        "Ada Obi"
      ],
      "adverseMediaFound": true,
      "lastScreenDateTime": "2027-03-14T14:30:01",
      "nextScreenDateTime": "2027-03-14T14:30:01"
    },
    "risk": {
      "level": "category",
      "score": 1,
      "cddLevel": "category",
      "riskFactors": [
        {
          "...": "nested"
        }
      ],
      "accessedDateTime": "2027-03-14T14:30:01",
      "reviewDate": "2027-03-14"
    },
    "verification": {
      "assuranceLevel": 1,
      "verificationDateTime": "2027-03-14T14:30:01"
    },
    "consents": [
      {
        "purpose": "Ada Obi",
        "granted": true,
        "grantDateTime": "2027-03-14T14:30:01",
        "legalBasis": "Ada Obi"
      }
    ],
    "tier": 1,
    "business": {
      "legalName": "Ada Obi",
      "tradingName": "Ada Obi",
      "registrationNumber": "identification number",
      "registrationCountryCode": "NG",
      "registrationAuthority": "Ada Obi",
      "businessType": "category",
      "registrationType": "category",
      "industry": "category",
      "registrationDate": "2027-03-14",
      "website": "unified resource identifier",
      "taxResidences": [
        {
          "...": "nested"
        }
      ],
      "addresses": [
        {
          "...": "nested"
        }
      ],
      "contacts": [
        {
          "...": "nested"
        }
      ],
      "beneficiaryOwners": [
        {
          "...": "nested"
        }
      ],
      "expectedActivity": {
        "monthlyVolume": 250000.0,
        "currencyCode": "NGN",
        "purpose": "March payroll"
      },
      "sanction": {
        "politicallyExposureStatus": true,
        "sanctionMatchStatus": true,
        "sanctionSources": [
          "Ada Obi"
        ],
        "adverseMediaFound": true,
        "lastScreenDateTime": "2027-03-14T14:30:01",
        "nextScreenDateTime": "2027-03-14T14:30:01"
      },
      "risk": {
        "level": "category",
        "score": 1,
        "cddLevel": "category",
        "riskFactors": [
          {
            "...": "nested"
          }
        ],
        "accessedDateTime": "2027-03-14T14:30:01",
        "reviewDate": "2027-03-14"
      },
      "verification": {
        "assuranceLevel": 1,
        "verificationDateTime": "2027-03-14T14:30:01"
      }
    },
    "parentAccountHolder": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
    "childAccountHolders": [
      "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
    ],
    "createWallet": true
  }'

Questions about identity & KYC

Who sets the tiers and limits?

You do. Each tier has its own limits and the facts it needs; the escalation rules move customers between them.

Can a customer move down a tier?

Yes. If a fact is withdrawn or found to be wrong, the rules re-evaluate and the limits follow.

Do you store document images?

Facts are stored with how they were checked. What evidence you keep, and for how long, follows your retention settings.

Is this a credit bureau?

No. It records identity facts and how well they are known. Credit scoring is a separate capability.

Bridge for Business

Tell us what you're building.

We'll come back with what's live for you today, and what's next.