Moniepoint Single Transfers API

Initiate, authorize, and query single transfers.

Operations 5

POST /api/v2/disbursements/single Monnify Initiate Single Transfer #
POST /api/v2/disbursements/single/validate-otp Monnify Authorize Single Transfer OTP #
POST /api/v2/disbursements/single/resend-otp Monnify Resend Transfer OTP #
GET /api/v2/disbursements/single/summary Monnify Get Single Transfer Status #
GET /api/v2/disbursements/single/transactions Monnify List Single Transfers #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/moniepoint-single-transfers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

moniepoint-single-transfers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Monnify Disbursements Single Transfers API
  description: 'Initiate single and bulk NIP transfers to Nigerian bank accounts. As of April 2026 the disbursement flow requires Name Inquiry first then a Disbursement Request that carries the verified beneficiary account name. A sender-information object has been supported on initiation since October 2025. Two-factor authorization with OTP applies to single transfers.

    '
  version: '2.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: Single Transfers
  description: Initiate, authorize, and query single transfers.
paths:
  /api/v2/disbursements/single:
    post:
      summary: Monnify Initiate Single Transfer
      description: Initiate a single-bank-account payout. Requires beneficiary account name verified by Name Inquiry.
      operationId: initiateSingleTransfer
      tags:
      - Single Transfers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SingleTransferRequest'
      responses:
        '200':
          description: Transfer initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferEnvelope'
  /api/v2/disbursements/single/validate-otp:
    post:
      summary: Monnify Authorize Single Transfer OTP
      description: Submit the OTP returned to the merchant to authorize a pending transfer.
      operationId: authorizeSingleTransferOtp
      tags:
      - Single Transfers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizeTransferRequest'
      responses:
        '200':
          description: Transfer authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferEnvelope'
  /api/v2/disbursements/single/resend-otp:
    post:
      summary: Monnify Resend Transfer OTP
      operationId: resendTransferOtp
      tags:
      - Single Transfers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - reference
              properties:
                reference:
                  type: string
      responses:
        '200':
          description: OTP resent.
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestSuccessful:
                    type: boolean
                  responseMessage:
                    type: string
                  responseCode:
                    type: string
                  responseBody:
                    type: object
  /api/v2/disbursements/single/summary:
    get:
      summary: Monnify Get Single Transfer Status
      description: Look up the current status of a single transfer.
      operationId: getSingleTransferStatus
      tags:
      - Single Transfers
      parameters:
      - name: reference
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Transfer status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferEnvelope'
  /api/v2/disbursements/single/transactions:
    get:
      summary: Monnify List Single Transfers
      operationId: listSingleTransfers
      tags:
      - Single Transfers
      parameters:
      - name: pageNo
        in: query
        schema:
          type: integer
          default: 0
      - name: pageSize
        in: query
        schema:
          type: integer
          default: 10
      responses:
        '200':
          description: Single transfers page.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferPageEnvelope'
components:
  schemas:
    TransferPageEnvelope:
      type: object
      properties:
        requestSuccessful:
          type: boolean
        responseMessage:
          type: string
        responseCode:
          type: string
        responseBody:
          type: object
          properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/Transfer'
            number:
              type: integer
            size:
              type: integer
            totalElements:
              type: integer
            totalPages:
              type: integer
    SingleTransferRequest:
      type: object
      required:
      - amount
      - reference
      - narration
      - destinationBankCode
      - destinationAccountNumber
      - currency
      - sourceAccountNumber
      properties:
        amount:
          type: number
        reference:
          type: string
          description: Unique merchant reference.
        narration:
          type: string
          maxLength: 100
        destinationBankCode:
          type: string
        destinationAccountNumber:
          type: string
        destinationAccountName:
          type: string
          description: Required as of March 2026 — must match the Name Inquiry result.
        currency:
          type: string
          example: NGN
        sourceAccountNumber:
          type: string
          description: Merchant wallet account number.
        async:
          type: boolean
        senderInformation:
          $ref: '#/components/schemas/SenderInformation'
    Transfer:
      type: object
      properties:
        reference:
          type: string
        amount:
          type: number
        destinationAccountName:
          type: string
        destinationAccountNumber:
          type: string
        destinationBankCode:
          type: string
        currency:
          type: string
        status:
          type: string
          enum:
          - SUCCESS
          - FAILED
          - REVERSED
          - PENDING
          - OTP_EMAIL_DISPATCH
          - PENDING_AUTHORIZATION
        narration:
          type: string
        fee:
          type: number
        dateCreated:
          type: string
          format: date-time
    SenderInformation:
      type: object
      description: Optional sender details (added October 2025).
      properties:
        fullName:
          type: string
        phoneNumber:
          type: string
        email:
          type: string
          format: email
        senderRef:
          type: string
    AuthorizeTransferRequest:
      type: object
      required:
      - reference
      - authorizationCode
      properties:
        reference:
          type: string
        authorizationCode:
          type: string
    TransferEnvelope:
      type: object
      properties:
        requestSuccessful:
          type: boolean
        responseMessage:
          type: string
        responseCode:
          type: string
        responseBody:
          $ref: '#/components/schemas/Transfer'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT