Okra Verification API

Nigerian KYC checks (BVN, NUBAN, TIN, RC).

Documentation

📖
Documentation
https://web.archive.org/web/20240225005139/https://docs.okra.ng/reference/api/Auth
📖
APIReference
https://docs.okra.ng/reference/api/Auth
📖
Documentation
https://web.archive.org/web/20240225025307/https://docs.okra.ng/reference/api/Account
📖
APIReference
https://docs.okra.ng/reference/api/Account
📖
Documentation
https://web.archive.org/web/20240225023518/https://docs.okra.ng/reference/api/Balance
📖
APIReference
https://docs.okra.ng/reference/api/Balance
📖
Documentation
https://web.archive.org/web/20240225015711/https://docs.okra.ng/reference/api/Transactions
📖
APIReference
https://docs.okra.ng/reference/api/Transactions
📖
Documentation
https://web.archive.org/web/20240225022834/https://docs.okra.ng/reference/api/Identity
📖
APIReference
https://docs.okra.ng/reference/api/Identity
📖
Documentation
https://web.archive.org/web/20240418181836/https://docs.okra.ng/reference/api
📖
APIReference
https://docs.okra.ng/reference/api
📖
Documentation
https://web.archive.org/web/20240225023335/https://docs.okra.ng/reference/api/Payments
📖
APIReference
https://docs.okra.ng/reference/api/Payments
📖
Documentation
https://web.archive.org/web/20241209034308/https://docs.okra.ng/reference/api/Banks
📖
APIReference
https://docs.okra.ng/reference/api/Banks
📖
Documentation
https://web.archive.org/web/20240225005456/https://docs.okra.ng/reference/api/Customer
📖
APIReference
https://docs.okra.ng/reference/api/Customer
📖
Documentation
https://web.archive.org/web/20241209040907/https://docs.okra.ng/reference/api/Wallets
📖
APIReference
https://docs.okra.ng/reference/api/Wallets

Specifications

Other Resources

OpenAPI Specification

okra-africa-verification-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Okra API (Historical) Accounts Verification API
  description: RETIRED. Okra was an open finance / open banking infrastructure API for Africa (Nigeria). This OpenAPI documents the historical, now-discontinued REST surface. Okra ceased operations in May 2025 and the host api.okra.ng no longer resolves; the paths and Bearer-secret auth below are CONFIRMED from Okra's official okraHQ/okra-node SDK, but request/response body schemas are MODELED (reconstructed from SDK parameter models and archived documentation) and are illustrative rather than authoritative. Reads and writes alike used POST with a JSON filter body. Account linking happened client-side through the Okra Widget, producing the `record`/`customer` identifiers that data endpoints operate against.
  version: '2.0'
  contact:
    name: Okra (defunct)
    url: https://okra.ng
  x-status: retired
  x-ceased-operations: 2025-05
  x-grounding: Endpoint paths, base URL, and Bearer-secret auth confirmed from github.com/okraHQ/okra-node (archived 2024-02-09). Body schemas modeled.
servers:
- url: https://api.okra.ng/v2
  description: Production (retired - no longer resolves)
- url: https://api.okra.ng/v2/sandbox
  description: Sandbox (retired - no longer resolves)
security:
- okraSecret: []
tags:
- name: Verification
  description: Nigerian KYC checks (BVN, NUBAN, TIN, RC).
paths:
  /products/kyc/bvn-verify:
    post:
      operationId: verifyBvn
      tags:
      - Verification
      summary: Verify a BVN
      requestBody:
        $ref: '#/components/requestBodies/KycFilter'
      responses:
        '200':
          $ref: '#/components/responses/OkraData'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /products/kyc/nuban-verify:
    post:
      operationId: verifyNuban
      tags:
      - Verification
      summary: Verify a NUBAN account number
      requestBody:
        $ref: '#/components/requestBodies/KycFilter'
      responses:
        '200':
          $ref: '#/components/responses/OkraData'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /products/kyc/nuban-name-verify:
    post:
      operationId: verifyNubanName
      tags:
      - Verification
      summary: Verify a NUBAN account name match
      requestBody:
        $ref: '#/components/requestBodies/KycFilter'
      responses:
        '200':
          $ref: '#/components/responses/OkraData'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /products/kyc/tin-verify:
    post:
      operationId: verifyTin
      tags:
      - Verification
      summary: Verify a Tax Identification Number (TIN)
      requestBody:
        $ref: '#/components/requestBodies/KycFilter'
      responses:
        '200':
          $ref: '#/components/responses/OkraData'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /products/kyc/rc-verify:
    post:
      operationId: verifyRc
      tags:
      - Verification
      summary: Verify a company registration (RC) number
      requestBody:
        $ref: '#/components/requestBodies/KycFilter'
      responses:
        '200':
          $ref: '#/components/responses/OkraData'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    Unauthorized:
      description: Missing or invalid Okra Secret.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OkraEnvelope'
    OkraData:
      description: MODELED. Okra responses were JSON envelopes of the form {status, message, data}. The exact `data` shape varied per product and is not reproduced authoritatively here.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OkraEnvelope'
  schemas:
    KycFilter:
      type: object
      description: Modeled. KYC verification input (one of bvn, nuban, tin, rc, etc.).
      properties:
        bvn:
          type: string
        nuban:
          type: string
        bank:
          type: string
        tin:
          type: string
        rc_number:
          type: string
      additionalProperties: true
    OkraEnvelope:
      type: object
      description: Modeled Okra response envelope.
      properties:
        status:
          type: string
          example: success
        message:
          type: string
        data:
          type: object
          additionalProperties: true
      additionalProperties: true
  requestBodies:
    KycFilter:
      description: Modeled KYC verification body.
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KycFilter'
  securitySchemes:
    okraSecret:
      type: http
      scheme: bearer
      description: 'Okra Secret key issued in the Okra dashboard, sent as `Authorization: Bearer <secret>`. Confirmed from okraHQ/okra-node.'