openapi: 3.0.1 info: title: Okra Accounts Auth API description: 'Specification of the Okra open-finance API. Okra connected applications to Nigerian bank accounts to retrieve authentication details, balances, transactions, identity, and income, and to initiate bank-to-bank payments. All product and query endpoints are POST requests authenticated with a Bearer secret key. NOTE: Okra wound down operations in May 2025; endpoints are documented as they were publicly published and may no longer be live.' termsOfService: https://okra.ng/terms contact: name: Okra Support email: support@okra.ng version: '2.0' servers: - url: https://api.okra.ng/v2 description: Production - url: https://api.okra.ng/v2/sandbox description: Sandbox security: - bearerAuth: [] tags: - name: Auth description: Account authentication records and Link. paths: /products/auths: post: operationId: getAuths tags: - Auth summary: Retrieve all auth records description: Returns authentication records (account and NUBAN numbers across current, savings, and domiciliary accounts) for all of your customers, optionally as a PDF. requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/PdfFlagRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthListResponse' '401': $ref: '#/components/responses/Unauthorized' /auth/getById: post: operationId: getAuthById tags: - Auth summary: Retrieve an auth record by id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/IdRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthListResponse' '401': $ref: '#/components/responses/Unauthorized' /auth/getByCustomer: post: operationId: getAuthByCustomer tags: - Auth summary: Retrieve auth records by customer requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthListResponse' '401': $ref: '#/components/responses/Unauthorized' /auth/getByDate: post: operationId: getAuthByDate tags: - Auth summary: Retrieve auth records by date range requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DateRangeRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthListResponse' '401': $ref: '#/components/responses/Unauthorized' /auth/getByBank: post: operationId: getAuthByBank tags: - Auth summary: Retrieve auth records by bank requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BankRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AuthListResponse' '401': $ref: '#/components/responses/Unauthorized' components: schemas: BankRequest: type: object required: - bank properties: bank: type: string description: The Okra bank id. page: type: integer default: 1 limit: type: integer default: 20 AuthListResponse: type: object properties: status: type: string data: type: object properties: auths: type: array items: $ref: '#/components/schemas/Account' pagination: $ref: '#/components/schemas/Pagination' PdfFlagRequest: type: object properties: pdf: type: boolean default: false description: When true, return the records rendered as a PDF. Error: type: object properties: status: type: string example: error message: type: string DateRangeRequest: type: object required: - from - to properties: from: type: string format: date description: Start date (YYYY-MM-DD). to: type: string format: date description: End date (YYYY-MM-DD). page: type: integer default: 1 limit: type: integer default: 20 CustomerRequest: type: object required: - customer properties: customer: type: string description: The Okra customer id. page: type: integer default: 1 limit: type: integer default: 20 Account: type: object properties: id: type: string name: type: string nuban: type: string type: type: string bank: type: string currency: type: string IdRequest: type: object required: - id properties: id: type: string description: The Okra record id. Pagination: type: object properties: totalPages: type: integer currentPage: type: integer nextPage: type: integer previousPage: type: integer total: type: integer responses: Unauthorized: description: Missing or invalid API key. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: bearerAuth: type: http scheme: bearer description: Okra secret API key supplied as a Bearer token.