> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-en/rest-api/identity-api/identity-api-reference/onboarding/kyc/nigeria/address-verification/address-verify.md).

# Address Verify

Verify the **residential address** of a person in Nigeria using the **electric meter number** and the electricity distribution company (DisCo) that serves the address.

### Endpoint

```
POST /kyc/nga/address
```

### Authentication

| Type    | Location | Name          |
| ------- | -------- | ------------- |
| API Key | Header   | **x-api-key** |

### Request body

**Content-Type:** `application/json`

#### Parameters

| Parameter      | Type   | Required | Description                                                                                                                         |
| -------------- | ------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `meter_number` | string | **Yes**  | Number of the **electric meter** associated with the address.                                                                       |
| `address`      | string | **Yes**  | Address to verify.                                                                                                                  |
| `disco_code`   | string | **Yes**  | Code of the **electricity distribution company** (DisCo) that serves the address. E.g.: `IKEJA`. See the full list of values below. |

List of **accepted DisCo codes** (49 values):

<details>

<summary>Accepted values for disco_code</summary>

`ABUJA`, `BENIN`, `EKO`, `IKEJA`, `IBADAN`, `ENUGU`, `PH`, `JOS`, `KADUNA`, `KANO`, `BH`, `PROTOGY`, `PHISBOND`, `ACCESSPOWER`, `YOLA`, `ABIA`, `ADAMAWA`, `AKWA IBOM`, `ANAMBRA`, `BAUCHI`, `BAYELSA`, `BENUE`, `BORNO`, `CROSS RIVER`, `DELTA`, `EBONYI`, `EDO`, `EKITI`, `GOMBE`, `IMO`, `JIGAWA`, `KATSINA`, `KEBBI`, `KOGI`, `KWARA`, `LAGOS`, `NASSARAWA`, `NIGER`, `OGUN`, `ONDO`, `OSUN`, `OYO`, `PLATEAU`, `RIVERS`, `SOKOTO`, `TARABA`, `YOBE`, `ZAMFARA`, `FCT`

</details>

#### Request example

```json
{
  "meter_number": "04123456789",
  "address": "12 Sample St, Ikeja",
  "disco_code": "IKEJA"
}
```

### Responses

#### `200` Success

#### Response parameters

| Parameter              | Type    | Description                                                                                                                    |
| ---------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `serviceResultCode`    | integer | Code that indicates the **overall result** of the service execution. See [Service Result Code](#service-result-code)           |
| `serviceTime`          | string  | Processing time **(milliseconds)**.                                                                                            |
| `serviceResultLog`     | string  | Descriptive field for the result of the service execution. Includes details when there is an error or exception in the module. |
| `serviceTransactionId` | string  | Transaction identifier associated with the request processed by the API.                                                       |
| `data`                 | object  | Object with the result of the address verification. See table below.                                                           |

#### Response parameters — `data`

**Note:** the object `data` is returned **without field mapping or normalization**.

| Parameter          | Type    | Description                                                                                                 |
| ------------------ | ------- | ----------------------------------------------------------------------------------------------------------- |
| `verified`         | boolean | Indicates whether the address was **verified** against the records of the electricity distribution company. |
| `confidence_level` | number  | **Confidence level** of the match, from 0 to 100.                                                           |
| `disco_code`       | string  | Code of the queried electricity distribution company.                                                       |
| `house_address`    | string  | Address registered with the electricity distribution company.                                               |
| `house_owner`      | string  | **Name of the holder** registered with the electricity distribution company.                                |

#### Service Result Code

The `serviceResultCode` indicates the overall result of the service execution and reflects the **HTTP status code** of the response:

| serviceResultCode | Description                                                                       | HTTP code |
| ----------------- | --------------------------------------------------------------------------------- | --------- |
| 200               | The service execution was successful, the module processed the request correctly. | 200       |

#### Response example

```json
{
  "serviceResultCode": 200,
  "serviceTime": "1800",
  "serviceResultLog": "Success",
  "serviceTransactionId": "f52i346j-45j3-2i4m-i97i-3j792ik33kl",
  "data": {
    "verified": true,
    "confidence_level": 100,
    "disco_code": "IKEJA",
    "house_address": "12 Sample St, Ikeja, Lagos",
    "house_owner": "JOHN PAUL DOE"
  }
}
```

#### `400` Bad Request

Error returned with the service envelope (`serviceResultCode` reflects the HTTP response code):

```json
{
  "serviceResultCode": 400,
  "serviceResultLog": "Sorry, lookup failed. Please check the details and try again",
  "serviceTime": "151",
  "serviceTransactionId": "08ac9699-dc9e-4cdc-81d7-264f71838309"
}
```

#### `502` Bad Gateway

Returned when the service is temporarily unavailable or its response could not be interpreted. The body uses the service envelope with `serviceResultCode: 500`:

```json
{
  "serviceResultCode": 500,
  "serviceResultLog": "Service temporarily unavailable. Please try again later",
  "serviceTime": "3000",
  "serviceTransactionId": "38de2932-0f2h-7gff-14g0-597h04161632"
}
```

#### `504` Gateway Timeout

Timeout **error**, returned with the service envelope:

```json
{
  "serviceResultCode": 504,
  "serviceResultLog": "Request timeout. Please try again",
  "serviceTime": "30000",
  "serviceTransactionId": "48ef3043-1g3i-8hgg-25h1-608i15272743"
}
```

{% hint style="info" %}
Authentication errors (`401`/`403`) are rejected by the **gateway before reaching the service** and **do not** use the envelope `serviceResultCode`. Platform validation errors use the format `application/problem+json`. See [Error handling](/docs.facephi-en/rest-api/identity-api/identity-api-reference/onboarding/kyc/nigeria.md#manejo-de-errores) for details on the three response forms.
{% endhint %}
