ZIDRAS FIU API Integration Guide
This guide provides technical integration instructions for developers and system
integrators using the ZIDRAS - Financial Intelligence Unit (FIU) API services. The examples
in this document are illustrative and intended for testing and documentation purposes only.
ZIDRAS API — FIU (Financial Intelligence Unit)
Overview
The FIU (Financial Intelligence Unit) API group is part of the ZIDRAS API platform. It
enables authorized systems to retrieve regulated financial intelligence data, including motor
vehicle registration records, driver licence details, property records, business information,
offence records, and investigation data. This guide uses the UAT environment base URL
shown below.
Base URL
[Link]
Authentication Requirements
All FIU endpoints require bearer token authentication. Include the token in the
Authorization header of every request.
Header
Authorization: Bearer <token>
Tokens are issued by the ZIDRAS authentication service. Please request for the
authentication token to access the API endpoints.
API Endpoints Summary
Endpoint Name Method Path
1 MVR POST /mvr
2 Driver Licence POST /driver-license
3 Property POST /property
4 Investigation POST /investigation
5 Offence POST /offence
6 Business POST /business
1. MVR — Motor Vehicle Registration
Returns motor vehicle registration data for a given plate number.
Method: POST
Path: /mvr
Content-Type: application/json
Authentication: Bearer token
Request Body
Field Type Required Description Example
plateNumber string Yes The vehicle plate number to look up. "M117AAA"
Example Request
{
"plateNumber": "M117AAA"
}
Responses
200 — Success
{
"status": "success",
"data": {
"plateNumber": "M117AAA",
"make": "Toyota",
"model": "Land Cruiser",
"year": 2019,
"color": "White",
"owner": "John Doe",
"registrationDate": "2019-03-15",
"expiryDate": "2025-03-14"
}
}
404 — Not Found
{
"error": {
"code": 404,
"message": "Not Found",
"details": "Data not found",
"timestamp": "2026-06-01T16:07:32Z"
}
}
401 — Unauthorized
{
"status": "error",
"message": "Unauthorized. Invalid or expired token."
}
2. Driver License
Returns driver licence details for a given licence number.
Method: POST
Path: /driver-license
Content-Type: application/json
Authentication: Bearer token
Request Body
Field TypeRequired Description Example
The driver licence number to look
licenseNumber string Yes "Z1000000004"
up.
Example Request
{
"licenseNumber": "Z1000000004"
}
Responses
200 — Success
{
"status": "success",
"data": {
"licenseNumber": "Z1000000004",
"holderName": "Jane Doe",
"dateOfBirth": "1990-06-20",
"issueDate": "2018-01-10",
"expiryDate": "2026-01-09",
"licenseClass": "B",
"status": "Active"
}
}
404 — Not Found
{
"error": {
"code": 404,
"message": "Not Found",
"details": "Data not found",
"timestamp": "2026-06-01T16:07:32Z"
}
}
401 — Unauthorized
{
"status": "error",
"message": "Unauthorized. Invalid or expired token."
}
3. Property
Returns property data for a given Unique Reference Number (URN).
Method: POST
Path: /property
Content-Type: application/json
Authentication: Bearer token
Request Body
Field Type Required Description Example
The Unique Reference Number of the
urn string Yes "URN123456789"
property.
Example Request
{
"urn": "URN123456789"
}
Responses
200 — Success
{
"status": "success",
"data": {
"urn": "URN123456789",
"propertyType": "Residential",
"location": "Zanzibar Town",
"owner": "Ali Hassan",
"registrationDate": "2015-07-22",
"area": "450 sqm",
"status": "Active"
}
}
404 — Not Found
{
"error": {
"code": 404,
"message": "Not Found",
"details": "Data not found",
"timestamp": "2026-06-01T16:07:32Z"
}
}
401 — Unauthorized
{
"status": "error",
"message": "Unauthorized. Invalid or expired token."
}
4. Investigation
Returns investigation records for a given case number.
Method: POST
Path: /investigation
Content-Type: application/json
Authentication: Bearer token
Request Body
Field Type
Required Description Example
The case number used to query "TI-2024/2025-
caseNumber string Yes
investigation data. 08"
Example Request
{
"caseNumber": "TI-2024/2025-08"
}
Responses
200 — Success
{
"status": "success",
"data": {
"caseNumber": "TI-2024/2025-08",
"subject": "Financial Fraud Investigation",
"openedDate": "2024-09-01",
"status": "Ongoing",
"assignedOfficer": "Inspector Mwangi",
"priority": "High"
}
}
404 — Not Found
{
"error": {
"code": 404,
"message": "Not Found",
"details": "Data not found",
"timestamp": "2026-06-01T16:07:32Z"
}
}
401 — Unauthorized
{
"status": "error",
"message": "Unauthorized. Invalid or expired token."
}
5. Offence
Returns offence records for a given ZTN number.
Method: POST
Path: /offence
Content-Type: application/json
Authentication: Bearer token
Request Body
Field TypeRequired Description Example
The ZTN number used to query offence
ztnNumber string Yes "Z052500121"
records.
Example Request
{
"ztnNumber": "Z052500121"
}
Responses
200 — Success
{
"status": "success",
"data": {
"ztnNumber": "Z052500121",
"offences": [
{
"offenceId": "OFF-2023-001",
"description": "Tax Evasion",
"date": "2023-04-10",
"penalty": "TZS 5,000,000",
"status": "Pending"
}
]
}
}
404 — Not Found
{
"error": {
"code": 404,
"message": "Not Found",
"details": "Data not found",
"timestamp": "2026-06-01T16:07:32Z"
}
}
401 — Unauthorized
{
"status": "error",
"message": "Unauthorized. Invalid or expired token."
}
6. Business
Returns business registration and related records for a given ZTN number.
Method: POST
Path: /business
Content-Type: application/json
Authentication: Bearer token
Request Body
Field Type
Required Description Example
The ZTN number used to query business
ztnNumber string Yes "Z052500121"
records.
Example Request
{
"ztnNumber": "Z052500121"
}
Responses
200 — Success
{
"status": "success",
"data": {
"ztnNumber": "Z052500121",
"businessName": "Zanzibar Trading Co. Ltd",
"registrationNumber": "REG-2018-00456",
"registrationDate": "2018-05-14",
"businessType": "Private Limited Company",
"status": "Active",
"owner": "Mohammed Salim",
"address": "Stone Town, Zanzibar"
}
}
404 — Not Found
{
"error": {
"code": 404,
"message": "Not Found",
"details": "Data not found",
"timestamp": "2026-06-01T16:07:32Z"
}
}
401 — Unauthorized
{
"status": "error",
"message": "Unauthorized. Invalid or expired token."
}
HTTP Error Reference
HTTP Status Meaning Description
200 OK The request was successful and data was returned.
401 Unauthorized The bearer token is missing, invalid, or expired.
404 Not Found No record was found for the provided identifier.
500 Server Error An unexpected error occurred on the server side.