Introduction
Every endpoint uses the same authentication and returns the same response envelope. Identity and business lookups are GET requests that take the identifier as a query parameter and your credential as a header. Responses are JSON.
Base URL
https://swiftend.com
Authentication
Send your Swiftend serviceid on every request as a header. client-id is accepted as an alias.
serviceid: <your-swiftend-serviceid>
serviceid private. Each successful verification is billed to your wallet.Response format
Every verification returns the same envelope: ResponseInfo (the outcome) and ResponseData (the record, when found).
{
"ResponseInfo": {
"ResponseCode": "00", // "00" = found, "99" = not found
"Parameter": "<what you queried>",
"Source": "...",
"Message": "Result Found",
"Sub_Message": "",
"Timestamp": "10/02/2026 9:15:02 PM"
},
"ResponseData": { /* the record */ }
}
Not found (code 99)
When no record matches the identifier, every service returns the same shape with ResponseData as null.
{
"ResponseInfo": {
"ResponseCode": "99",
"Parameter": "<what you queried>",
"Source": "NIMC",
"Message": "Result Not Found",
"Sub_Message": "",
"Timestamp": "10/02/2026 9:15:02 PM"
},
"ResponseData": null
}
Status / response codes
| Code | Meaning |
|---|---|
| 00 | Result found — ResponseData populated. |
| 99 | Result not found — no record for the identifier. |
| 87 | Access denied — invalid credential, or the service is not enabled for you. |
| — | HTTP 401 missing/invalid credential · 503 temporary, retry. |
NIN Verification
Verify a National Identification Number and return the holder's record (names, DOB, gender, photo, etc.).
| Param | In | Notes |
|---|---|---|
regNo | query | required — the 11-digit NIN |
serviceid | header | required |
Example
curl 'https://swiftend.com/verifynin/?regNo=12345678901' \
--header 'serviceid: <your-swiftend-serviceid>'
200 — found
{
"ResponseInfo": { "ResponseCode": "00", "Message": "Result Found", "Source": "NIMC", "Timestamp": "..." },
"ResponseData": {
"nin": "12345678901", "firstname": "ADA", "surname": "OKAFOR", "middlename": "N",
"birthdate": "1990-01-01", "gender": "f", "telephoneno": "0801...", "photo": "<base64>",
"residence_state": "Lagos", "residence_lga": "Ikeja", "residence_AddressLine1": "..."
}
}
NIN Slip
Same NIN lookup, returning the record used to render a NIN slip.
| Param | In | Notes |
|---|---|---|
regNo | query | required — the 11-digit NIN |
serviceid | header | required |
200 — found
{
"ResponseInfo": { "ResponseCode": "00", "Message": "Result Found", "Source": "NIMC" },
"ResponseData": {
"nin": "12345678901", "firstname": "ADA", "middlename": "N", "surname": "OKAFOR",
"birthdate": "1990-01-01", "photo": "<base64>",
"residence_state": "Lagos", "residence_lga": "Ikeja", "residence_AddressLine1": "..."
}
}
BVN Verification
Verify a Bank Verification Number and return the holder's record.
| Param | In | Notes |
|---|---|---|
bvn | query | required — the 11-digit BVN |
serviceid | header | required |
200 — found
{
"ResponseInfo": { "ResponseCode": "00", "Message": "Result Found" },
"ResponseData": {
"BVN": "22345678901", "firstName": "ADA", "middleName": "N", "lastName": "OKAFOR",
"dateOfBirth": "01-Jan-1990", "gender": "Female", "maritalStatus": "...",
"lgaOfOrigin": "...", "lgaOfResidence": "...", "enrollmentBank": "...",
"enrollmentBranch": "...", "levelOfAccount": "...", "email": "...", "image": "<base64>"
}
}
Phone Verification
Look up the identity behind a phone number, optionally matching against a name. Sent as a POST with a JSON body.
| Body key | Notes |
|---|---|
idstring | required — the phone number |
firstname | optional — for name matching |
lastname | optional — for name matching |
| Param | In | Notes |
|---|---|---|
serviceid | header | required |
Example
curl 'https://swiftend.com/verifyphone/' \
--header 'serviceid: <your-swiftend-serviceid>' \
--header 'Content-Type: application/json' \
--data '{ "idstring": "08000000000", "firstname": "", "lastname": "" }'
200 — found
{
"ResponseInfo": { "ResponseCode": "00", "Message": "Result Found", "Source": "NIMC" },
"ResponseData": {
"telephoneno": "08000000000", "gender": "f", "year_of_birth": "1990",
"state": "Lagos", "lga": "Ikeja",
"residence_state": "Lagos", "residence_Town": "Ikeja", "residencestatus": "...",
"self_origin_state": "Anambra", "self_origin_lga": "...", "self_origin_place": "..."
}
}
Bank Account
Resolve a Nigerian bank account number to its account name.
| Param | In | Notes |
|---|---|---|
accountId | query | required — the 10-digit account number |
bankCode | query | required — the bank's CBN code |
serviceid | header | required |
200 — found
{
"ResponseInfo": { "ResponseCode": "00", "Message": "Result Found", "Source": "NIBSS" },
"ResponseData": {
"AccountName": "ADA N OKAFOR", "Account": "0123456789",
"FirstName": "ADA", "MiddleName": "N", "LastName": "OKAFOR"
}
}
Driver's Licence
Verify a Nigerian driver's licence number.
| Param | In | Notes |
|---|---|---|
id | query | required — the licence number |
serviceid | header | required |
200 — found
{
"ResponseInfo": { "ResponseCode": "00", "Message": "Result Found", "Source": "FRSC" },
"ResponseData": {
"licenseNo": "ABC12345AA", "firstName": "ADA", "middleName": "N", "lastName": "OKAFOR",
"gender": "Female", "birthDate": "1990-01-01",
"issuedDate": "2021-01-01", "expiryDate": "2026-01-01",
"stateOfIssue": "Lagos", "photo": "<base64>"
}
}
CAC / Company
Verify a company registered with the Corporate Affairs Commission — by RC number or by name.
| Param | In | Notes |
|---|---|---|
rcNo | query | the RC / registration number |
company | query | company name (alternative to rcNo) |
type | query | registration type (e.g. RC / BN / IT) |
serviceid | header | required |
200 — found
{
"ResponseInfo": { "ResponseCode": "00", "Message": "Result Found", "Source": "CAC" },
"ResponseData": {
"Company": "HARMONY LOGISTICS LIMITED", "RegistrationNo": "RC1234567",
"RegistrationDate": "2018-05-10", "TypeofEntity": "RC", "Status": "ACTIVE",
"Address": "12 Marina Road", "City": "Lagos", "State": "Lagos", "LGA": "Lagos Island",
"Email": "info@harmony-logistics.example", "Shareholders": [ /* ... */ ]
}
}
Business Name Search
Search the Corporate Affairs Commission register by business name or registration number.
| Param | In | Notes |
|---|---|---|
regno | query | required — business name or registration number |
serviceid | header | required |
200 — found
{
"ResponseInfo": { "ResponseCode": "00", "Message": "Result Found", "Source": "Business Name search" },
"ResponseData": {
"Company": "HARMONY LOGISTICS LIMITED", "RegistrationNo": "RC1234567",
"Type": "RC", "Status": "ACTIVE", "State": "Lagos", "LGA": "Lagos Island",
"Objectives": "...", "Secretary": "...", "Shareholder": "..."
}
}
Address Verification
Submit a physical address for field verification. This is asynchronous — the result is delivered to your callbackURL when the visit completes.
| Param | In | Notes |
|---|---|---|
FullAddress | query | required — the address to verify |
State, lga | query | required — location |
FirstName, LastName, PhoneNo | query | the resident |
BVN | query | optional — resident's BVN |
callbackURL | query | required — where the result is posted |
JobID | query | your reference for the job |
serviceid | header | required |
200 — job accepted
{
"ResponseInfo": { "ResponseCode": "00", "Message": "Address verification in progress" },
"ResponseData": { "JobID": "JOB-2026-000123", "Status": "PENDING" }
}
Callback (posted to your callbackURL when the visit completes)
{
"JobID": "JOB-2026-000123", "Status": "VERIFIED",
"FullAddress": "12 Marina Road, Lagos", "State": "Lagos", "LGA": "Lagos Island",
"Cordinate": "6.4541,3.3947", "Verifier": "...", "ContactPerson": "...",
"Desc_Landmark": "...", "CustomerPhoto": "<base64>", "Comment": "..."
}
NINAuth Enterprise Registration
Register an enterprise and return its NINAuth Enterprise ID (client_id, e.g. ENT…, created as awaiting_approval). Sent as multipart/form-data.
| Field | Type | Notes |
|---|---|---|
data | text (JSON) | required — name, email, phone_number, address, website, industry, company_type, and exactly 2 directors |
logo | file | required — png/jpg, ≤ 5 MB |
cac_memart, cac_certificate, ndpa_certificate, data_protection_policy | file | required — pdf/png/jpg, ≤ 5 MB each |
regulatory_licence | file | Finance only — with regulatory_licence_type + regulatory_licence_number in data |
serviceid | header | required |
industry / company_type values from Industry & Company Types. Full request shape is in the Postman collection.Industry & Company Types
Returns the valid industry and company_type values — use the text values exactly as returned.
200 — Enterprise ID returned
{
"status": 200, "success": true, "message": "success",
"data": {
"client_id": "ENT87D5E1DD26B2",
"name": "Harmony Logistics Limited",
"status": "awaiting_approval",
"created_at": "2026-10-02T08:15:02.000000Z"
}
}
Webhooks
Some results are produced asynchronously. When you supply a callbackURL on the request, Swiftend sends an HTTP POST to it when the job completes — today this applies to Address Verification.
Payload
The body is the standard response envelope. ResponseInfo.Parameter carries your JobID, and ResponseData.Status the final verdict.
{
"ResponseInfo": {
"ResponseCode": "00",
"Parameter": "JOB-2026-000123",
"Source": "Swiftend AVS",
"Message": "Address Verified",
"Timestamp": "10/03/2026 9:15:02 PM"
},
"ResponseData": {
"Status": "VERIFIED",
"FullAddress": "12 Marina Road, Lagos", "State": "Lagos", "LGA": "Lagos Island",
"Cordinate": "6.4541,3.3947",
"FirstName": "ADA", "LastName": "OKAFOR", "PhoneNo": "0801...", "Alias": "...",
"Verifier": "...", "ContactPerson": "...", "Desc_Landmark": "...", "Comment": "...",
"CustomerPhoto": "<base64>", "AddressPhoto1": "<base64>"
}
}
Handling
| Guideline | Notes |
|---|---|
| Acknowledge | Respond with HTTP 2xx promptly so the delivery is marked complete. |
| Correlate | Match ResponseInfo.Parameter (the JobID) to a job you submitted before acting on it. |
| Status | Moves from PENDING (at submission) to the final verdict, e.g. VERIFIED. |
| Endpoint | Your callbackURL must be publicly reachable over HTTPS and accept a POST. |
JobID you originated.