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

# Products and fields

> Reference for all verification products, product codes, UGX prices, required fields, and selection values in the MasterID catalog.

GET /catalog is the authoritative source for the current product list, required fields, allowed selections, and wallet charges. All listed fields are required for submission. Date fields use the format `YYYY-MM-DD`. There are no file uploads in v1. This page summarises every product and the fields you must supply, with illustrative example bodies for each check.

> [!NOTE]
>
> Bank names for the `bank-account` product are returned in the catalog response. Always fetch the latest allowed selections from GET /catalog before building submission forms.

## Product summary

| Product | Code | Price (UGX) | Required fields |
| - | - | - | - |
| National ID Verification | `nin` | 2,500 | `nin`, `cardNumber`, `surname`, `givenNames`, `dateOfBirth` |
| Individual TIN Verification | `tin` | 1,500 | `tin` |
| Business TIN Verification | `business-tin` | 3,000 | `tin` |
| Business Verification | `business` | 55,000 | `registrationNumber` |
| KCCA Trading Licence Verification | `kcca-license` | 25,000 | `applicationReference` |
| Bank Account Verification | `bank-account` | 5,000 | `bankName` (select), `accountNumber` |
| AML/PEP Screening | `aml` | 5,000 | `surname`, `givenName`, `gender` (select), `dateOfBirth` |
| Business AML Check | `business-aml` | 7,500 | `companyName` |
| CRB Score Check | `crb-score` | 12,000 | `identityType` (select), `identifier`, `reasonCode` (select) |
| CRB Full Report | `crb-report` | 16,000 | `identityType` (select), `identifier`, `reasonCode` (select) |
| Enhanced CRB Report | `crb-enhanced` | 20,000 | `identityType` (select), `identifier`, `reasonCode` (select) |
| Phone Verification | `phone` | 1,200 | `phone` |

## National ID Verification

Verify a Ugandan national ID using the NIN and card details.

| Field | Type | Description |
| - | - | - |
| `nin` | text | National Identification Number |
| `cardNumber` | text | ID card number |
| `surname` | text | Surname |
| `givenNames` | text | Given names |
| `dateOfBirth` | date | Date of birth (`YYYY-MM-DD`) |

```json Example fields theme={null}
{
  "nin": "CM1234567890AB",
  "cardNumber": "1234567890",
  "surname": "Okello",
  "givenNames": "John Patrick",
  "dateOfBirth": "1990-05-15"
}
```

## Individual TIN Verification

Verify a Tax Identification Number for an individual.

| Field | Type | Description |
| - | - | - |
| `tin` | text | Tax Identification Number |

```json Example fields theme={null}
{
  "tin": "1001234567"
}
```

## Business TIN Verification

Verify a Tax Identification Number for a business.

| Field | Type | Description |
| - | - | - |
| `tin` | text | Business Tax Identification Number |

```json Example fields theme={null}
{
  "tin": "2007654321"
}
```

## Business Verification

Verify a business registration.

| Field | Type | Description |
| - | - | - |
| `registrationNumber` | text | Business registration number |

```json Example fields theme={null}
{
  "registrationNumber": "800123456789"
}
```

## KCCA Trading Licence Verification

Verify a KCCA trading licence by application reference.

| Field | Type | Description |
| - | - | - |
| `applicationReference` | text | KCCA application reference |

```json Example fields theme={null}
{
  "applicationReference": "KCCA-2024-123456"
}
```

## Bank Account Verification

Verify a bank account. `bankName` must be a selection value returned by GET /catalog.

| Field | Type | Description |
| - | - | - |
| `bankName` | select | Bank name (allowed values from catalog) |
| `accountNumber` | text | Bank account number |

```json Example fields theme={null}
{
  "bankName": "BANK_NAME_FROM_CATALOG",
  "accountNumber": "0123456789"
}
```

## AML/PEP Screening

Screen an individual against AML and PEP lists.

| Field | Type | Description |
| - | - | - |
| `surname` | text | Surname |
| `givenName` | text | Given name |
| `gender` | select | `MALE` or `FEMALE` |
| `dateOfBirth` | date | Date of birth (`YYYY-MM-DD`) |

```json Example fields theme={null}
{
  "surname": "Mukasa",
  "givenName": "Sarah",
  "gender": "FEMALE",
  "dateOfBirth": "1985-09-20"
}
```

## Business AML Check

Screen a business against AML lists.

| Field | Type | Description |
| - | - | - |
| `companyName` | text | Registered company name |

```json Example fields theme={null}
{
  "companyName": "Acme Uganda Ltd"
}
```

## CRB products

CRB checks require an identity type, an identifier, and a reason code. These apply to CRB Score Check (`crb-score`), CRB Full Report (`crb-report`), and Enhanced CRB Report (`crb-enhanced`).

### identityType values

| Value | Meaning |
| - | - |
| `IDT10` | National ID (NIN) |
| `IDT05` | Passport number |
| `IDT02` | TIN |
| `IDT01` | Business registration number |
| `IDT17` | Work permit number |

### reasonCode values

| Value | Meaning |
| - | - |
| `RP01` | New credit application |
| `RP02` | Review of existing credit |
| `RP03` | Customer report request |
| `RP05` | Stakeholder or guarantor report |

### CRB Score Check

| Field | Type | Description |
| - | - | - |
| `identityType` | select | One of the identityType values |
| `identifier` | text | The identifier matching the selected type |
| `reasonCode` | select | One of the reasonCode values |

```json Example fields theme={null}
{
  "identityType": "IDT10",
  "identifier": "CM1234567890AB",
  "reasonCode": "RP01"
}
```

### CRB Full Report

Same fields as CRB Score Check.

```json Example fields theme={null}
{
  "identityType": "IDT05",
  "identifier": "AB123456",
  "reasonCode": "RP02"
}
```

### Enhanced CRB Report

Same fields as CRB Score Check.

```json Example fields theme={null}
{
  "identityType": "IDT01",
  "identifier": "800123456789",
  "reasonCode": "RP05"
}
```

## Phone Verification

Verify a phone number.

| Field | Type | Description |
| - | - | - |
| `phone` | tel | Phone number to verify |

```json Example fields theme={null}
{
  "phone": "+256712345678"
}
```

## Next steps

* [GET /catalog](https://docs.masterid.co.ug/api-reference/catalog/get-catalog.md): fetch the live product list and current prices.
* [POST /verifications/consent](https://docs.masterid.co.ug/api-reference/verifications/request-consent.md): request consent wording before submitting a check.
* [POST /verifications](https://docs.masterid.co.ug/api-reference/verifications/create-verification.md): submit a verification.


## Related topics

- [GET /catalog](https://docs.masterid.co.ug/api-reference/catalog/get-catalog.md)
- [Quickstart](https://docs.masterid.co.ug/quickstart.md)
- [Run a verification](https://docs.masterid.co.ug/guides/verifications.md)
- [Go-live checklist](https://docs.masterid.co.ug/guides/go-live-checklist.md)
- [POST /verifications/consent](https://docs.masterid.co.ug/api-reference/verifications/request-consent.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.