Monnify Wallets API

Create wallets and sub-wallets, query main and disbursement balances, list transactions, and pull statements. Used to fund disbursement operations and to model end-user wallets for business-management products. Endpoints under /api/v1/disbursements/wallet-balance and /api/v1/disbursements/wallet.

Monnify Wallets API is one of 14 APIs that Moniepoint publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Wallets, Balance, Statements, and Sub-Wallets. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

monnify-wallets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Monnify Wallets API
  description: >
    Create wallets and sub-wallets, query main and disbursement balances,
    list transactions, and pull statements. Used to fund disbursement
    operations and to model end-user wallets in business-management
    products.
  version: '1.0'
  contact:
    name: Monnify Developer Support
    url: https://developers.monnify.com
servers:
  - url: https://api.monnify.com
    description: Production
  - url: https://sandbox.monnify.com
    description: Sandbox
security:
  - BearerAuth: []
tags:
  - name: Wallets
    description: Manage wallets and sub-wallets.
paths:
  /api/v1/disbursements/wallet:
    post:
      summary: Monnify Create Wallet
      operationId: createWallet
      tags: [Wallets]
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [walletReference, walletName, customerEmail, bvnDetails]
              properties:
                walletReference: { type: string }
                walletName: { type: string }
                customerName: { type: string }
                customerEmail: { type: string, format: email }
                bvnDetails:
                  type: object
                  properties:
                    bvn: { type: string }
                    bvnDateOfBirth: { type: string, format: date }
      responses:
        '200':
          description: Wallet created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletEnvelope'
    get:
      summary: Monnify List Wallets
      operationId: listWallets
      tags: [Wallets]
      parameters:
        - name: customerEmail
          in: query
          schema: { type: string, format: email }
      responses:
        '200':
          description: Wallet list.
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestSuccessful: { type: boolean }
                  responseMessage: { type: string }
                  responseCode: { type: string }
                  responseBody:
                    type: array
                    items: { $ref: '#/components/schemas/Wallet' }
  /api/v1/disbursements/wallet-balance:
    get:
      summary: Monnify Get Wallet Balance
      operationId: getWalletBalance
      tags: [Wallets]
      parameters:
        - name: accountNumber
          in: query
          required: true
          schema: { type: string }
      responses:
        '200':
          description: Available and ledger balance.
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestSuccessful: { type: boolean }
                  responseMessage: { type: string }
                  responseCode: { type: string }
                  responseBody:
                    type: object
                    properties:
                      availableBalance: { type: number }
                      ledgerBalance: { type: number }
  /api/v1/disbursements/wallet/transactions:
    get:
      summary: Monnify List Wallet Transactions
      operationId: listWalletTransactions
      tags: [Wallets]
      parameters:
        - name: walletReference
          in: query
          required: true
          schema: { type: string }
        - name: pageNo
          in: query
          schema: { type: integer, default: 0 }
        - name: pageSize
          in: query
          schema: { type: integer, default: 20 }
      responses:
        '200':
          description: Wallet transaction page.
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestSuccessful: { type: boolean }
                  responseMessage: { type: string }
                  responseCode: { type: string }
                  responseBody:
                    type: object
                    properties:
                      content:
                        type: array
                        items: { $ref: '#/components/schemas/WalletTransaction' }
                      totalElements: { type: integer }
                      totalPages: { type: integer }
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    Wallet:
      type: object
      properties:
        walletReference: { type: string }
        walletName: { type: string }
        accountNumber: { type: string }
        accountName: { type: string }
        bankCode: { type: string }
        bankName: { type: string }
        customerName: { type: string }
        customerEmail: { type: string }
        dateCreated: { type: string, format: date-time }
    WalletTransaction:
      type: object
      properties:
        transactionReference: { type: string }
        amount: { type: number }
        type: { type: string, enum: [CREDIT, DEBIT] }
        narration: { type: string }
        balanceAfter: { type: number }
        dateCreated: { type: string, format: date-time }
    WalletEnvelope:
      type: object
      properties:
        requestSuccessful: { type: boolean }
        responseMessage: { type: string }
        responseCode: { type: string }
        responseBody: { $ref: '#/components/schemas/Wallet' }