Managing Verifications

After submitting verifications, you can retrieve individual results by ID or list past verifications with filters. This is useful for polling async verifications, building audit trails, or reconciling records.

Prerequisites

You'll need an API key. See Quickstart or Authentication if you don't have one yet.

Note: Verification endpoints use an API key in the X-API-Key header โ€” not a Bearer token.


Retrieve a single verification

Fetch the result of a previous verification by its id. This is especially useful for polling async verifications that returned status: pending.

curl https://api.lira.com/api/v1/verify/VERIFICATION_ID \
  -H "X-API-Key: YOUR_API_KEY"

Response

The response includes the full verification result, including type-specific fields. The shape matches the original response from the verification endpoint.

{
  "id": "a1b2c3d4-...-...-...-...",
  "status": "success",
  "verificationType": "ACCOUNT_NUMBER",
  "identifier": "0123456789",
  "country": "NG",
  "verifiedAt": "2026-03-09T10:05:00.000Z",
  "verified": true,
  "accountNumber": "0123456789",
  "accountName": "Jane Doe",
  "bankCode": "044",
  "bankName": "Access Bank"
}

Note: If the verification belongs to a different organization, you will receive a 403 Forbidden response. Each API key is scoped to the organization that created it.


List verifications

Retrieve a paginated list of all verifications for your organization.

curl "https://api.lira.com/api/v1/verify?type=ACCOUNT_NUMBER&status=success&limit=20" \
  -H "X-API-Key: YOUR_API_KEY"

Query parameters

Parameter Type Default Description
type string โ€” Filter by verification type: ACCOUNT_NUMBER, PHONE_NUMBER, BVN, LIPA_NA_MPESA, MPESA_AGENT.
status string โ€” Filter by status: pending, success, failed, error.
limit integer 50 Number of results to return. Maximum 100.
offset integer 0 Pagination offset. Use with limit to page through results.

Response

Returns an array of verification summary records, ordered by creation date (newest first).

[
  {
    "id": "a1b2c3d4-...-...-...-...",
    "organizationId": "x1y2z3-...",
    "type": "ACCOUNT_NUMBER",
    "identifier": "0123456789",
    "status": "success",
    "mode": "sync",
    "source": "provider",
    "createdAt": "2026-03-09T10:05:00.000Z",
    "updatedAt": "2026-03-09T10:05:01.000Z"
  },
  {
    "id": "b2c3d4e5-...-...-...-...",
    "organizationId": "x1y2z3-...",
    "type": "BVN",
    "identifier": "12345678901",
    "status": "success",
    "mode": "sync",
    "source": "cache",
    "createdAt": "2026-03-09T09:30:00.000Z",
    "updatedAt": "2026-03-09T09:30:00.000Z"
  }
]

List response fields

Field Type Description
id string Unique verification ID. Use this with GET /verify/:id to fetch the full result.
organizationId string The organization that owns this verification.
type string Verification type: ACCOUNT_NUMBER, PHONE_NUMBER, BVN, LIPA_NA_MPESA, or MPESA_AGENT.
identifier string The account number, phone number, or BVN that was verified.
status string success, failed, error, or pending.
mode string sync or async.
source string provider if the result came from a live registry query, or cache if served from a previous lookup.
createdAt string ISO 8601 timestamp of when the verification was submitted.
updatedAt string ISO 8601 timestamp of the last status change.

Note: The list endpoint returns summary records. To get the full verification result with type-specific fields (e.g. accountName, firstName, validation), fetch the individual verification by ID.


Polling async verifications

When you submit a verification with "mode": "async", the initial response returns status: pending. You can either wait for the webhook delivery or poll the result:

# Poll until status is no longer "pending"
curl https://api.lira.com/api/v1/verify/VERIFICATION_ID \
  -H "X-API-Key: YOUR_API_KEY"

We recommend using webhooks instead of polling for async verifications. See Async Verification with Webhooks for the full walkthrough.


Common patterns

Filter by type

Retrieve only bank account verifications:

curl "https://api.lira.com/api/v1/verify?type=ACCOUNT_NUMBER" \
  -H "X-API-Key: YOUR_API_KEY"

Filter by status

Retrieve only failed verifications for investigation:

curl "https://api.lira.com/api/v1/verify?status=failed&limit=50" \
  -H "X-API-Key: YOUR_API_KEY"

Paginate through results

# First page
curl "https://api.lira.com/api/v1/verify?limit=20&offset=0" \
  -H "X-API-Key: YOUR_API_KEY"

# Second page
curl "https://api.lira.com/api/v1/verify?limit=20&offset=20" \
  -H "X-API-Key: YOUR_API_KEY"

Error handling

HTTP status Cause Action
200 Verification found Read the response body
403 Verification belongs to a different organization Ensure you are using the correct API key
404 Verification ID not found Check the ID is correct and was returned by a previous verification request

For the full error code reference, see Errors.


Next steps