Moniepoint Transactions API

Initialize, charge, query, and list collection transactions.

Operations 7

POST /api/v1/merchant/transactions/init-transaction Monnify Initialize Transaction #
POST /api/v1/merchant/bank-transfer/init-payment Monnify Pay With Bank Transfer #
POST /api/v1/merchant/cards/charge Monnify Charge Card #
POST /api/v1/merchant/cards/otp/authorize Monnify Authorize OTP #
POST /api/v1/merchant/cards/charge-card-token Monnify Charge Tokenized Card #
GET /api/v2/merchant/transactions/query Monnify Get Transaction Status #
GET /api/v1/transactions/search Monnify Search Transactions #

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-transactions-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-transactions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Monnify Collections Transactions API
  description: 'Accept money from customers in Nigeria via Monnify Checkout, server-to- server card capture with 3-D Secure / OTP, charge stored card tokens, complete bank-transfer payments, and look up transaction status.

    '
  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: Transactions
  description: Initialize, charge, query, and list collection transactions.
paths:
  /api/v1/merchant/transactions/init-transaction:
    post:
      summary: Monnify Initialize Transaction
      description: Create a pending transaction and return a checkoutUrl plus paymentReference.
      operationId: initializeTransaction
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitializeTransactionRequest'
      responses:
        '200':
          description: Transaction initialized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionEnvelope'
  /api/v1/merchant/bank-transfer/init-payment:
    post:
      summary: Monnify Pay With Bank Transfer
      description: Generate a one-time NUBAN to complete an initialized transaction by bank transfer.
      operationId: payWithBankTransfer
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayWithTransferRequest'
      responses:
        '200':
          description: Bank-transfer instructions returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionEnvelope'
  /api/v1/merchant/cards/charge:
    post:
      summary: Monnify Charge Card
      description: Server-to-server card capture; returns secure-3D / OTP next step when required.
      operationId: chargeCard
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeCardRequest'
      responses:
        '200':
          description: Card charge processed or pending authorization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionEnvelope'
  /api/v1/merchant/cards/otp/authorize:
    post:
      summary: Monnify Authorize OTP
      description: Submit the OTP returned by the cardholder to complete a card charge.
      operationId: authorizeOtp
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizeOtpRequest'
      responses:
        '200':
          description: Card charge authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionEnvelope'
  /api/v1/merchant/cards/charge-card-token:
    post:
      summary: Monnify Charge Tokenized Card
      description: Charge a stored card token previously returned on a successful card collection.
      operationId: chargeCardToken
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeCardTokenRequest'
      responses:
        '200':
          description: Tokenized card charged.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionEnvelope'
  /api/v2/merchant/transactions/query:
    get:
      summary: Monnify Get Transaction Status
      description: Query a transaction by paymentReference or transactionReference.
      operationId: getTransactionStatus
      tags:
      - Transactions
      parameters:
      - name: paymentReference
        in: query
        schema:
          type: string
      - name: transactionReference
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Transaction details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionEnvelope'
  /api/v1/transactions/search:
    get:
      summary: Monnify Search Transactions
      description: Paginated search across collection transactions by date range, status, and reference.
      operationId: searchTransactions
      tags:
      - Transactions
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          default: 0
      - name: size
        in: query
        schema:
          type: integer
          default: 20
      - name: from
        in: query
        schema:
          type: string
          format: date
      - name: to
        in: query
        schema:
          type: string
          format: date
      - name: paymentStatus
        in: query
        schema:
          type: string
          enum:
          - PAID
          - OVERPAID
          - PARTIALLY_PAID
          - PENDING
          - FAILED
          - EXPIRED
      responses:
        '200':
          description: Paginated transaction page.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionPageEnvelope'
components:
  schemas:
    TransactionPageEnvelope:
      type: object
      properties:
        requestSuccessful:
          type: boolean
        responseMessage:
          type: string
        responseCode:
          type: string
        responseBody:
          type: object
          properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/Transaction'
            number:
              type: integer
            size:
              type: integer
            totalElements:
              type: integer
            totalPages:
              type: integer
    AuthorizeOtpRequest:
      type: object
      required:
      - transactionReference
      - collectionChannel
      - tokenId
      - token
      properties:
        transactionReference:
          type: string
        collectionChannel:
          type: string
        tokenId:
          type: string
        token:
          type: string
          description: OTP returned by the cardholder's bank.
    Transaction:
      type: object
      properties:
        transactionReference:
          type: string
        paymentReference:
          type: string
        merchantName:
          type: string
        apiKey:
          type: string
        redirectUrl:
          type: string
        enabledPaymentMethod:
          type: array
          items:
            type: string
        checkoutUrl:
          type: string
          format: uri
        amount:
          type: number
        currencyCode:
          type: string
        paymentStatus:
          type: string
          enum:
          - PAID
          - OVERPAID
          - PARTIALLY_PAID
          - PENDING
          - FAILED
          - EXPIRED
        paidOn:
          type: string
          format: date-time
        paymentMethod:
          type: string
    TransactionEnvelope:
      type: object
      properties:
        requestSuccessful:
          type: boolean
        responseMessage:
          type: string
        responseCode:
          type: string
        responseBody:
          $ref: '#/components/schemas/Transaction'
    ChargeCardTokenRequest:
      type: object
      required:
      - cardToken
      - amount
      - customerName
      - customerEmail
      - paymentReference
      - contractCode
      properties:
        cardToken:
          type: string
        amount:
          type: number
        customerName:
          type: string
        customerEmail:
          type: string
          format: email
        paymentReference:
          type: string
        contractCode:
          type: string
        currencyCode:
          type: string
          default: NGN
    PayWithTransferRequest:
      type: object
      required:
      - transactionReference
      properties:
        transactionReference:
          type: string
        bankCode:
          type: string
    IncomeSplit:
      type: object
      properties:
        subAccountCode:
          type: string
        feePercentage:
          type: number
        splitAmount:
          type: number
        feeBearer:
          type: boolean
    ChargeCardRequest:
      type: object
      required:
      - transactionReference
      - collectionChannel
      - card
      properties:
        transactionReference:
          type: string
        collectionChannel:
          type: string
          example: API_NOTIFICATION
        card:
          type: object
          required:
          - number
          - expiryMonth
          - expiryYear
          - pin
          - cvv
          properties:
            number:
              type: string
            expiryMonth:
              type: string
            expiryYear:
              type: string
            pin:
              type: string
            cvv:
              type: string
    InitializeTransactionRequest:
      type: object
      required:
      - amount
      - customerName
      - customerEmail
      - paymentReference
      - paymentDescription
      - contractCode
      - currencyCode
      properties:
        amount:
          type: number
          example: 1500
        customerName:
          type: string
          example: Jane Customer
        customerEmail:
          type: string
          format: email
        paymentReference:
          type: string
        paymentDescription:
          type: string
        contractCode:
          type: string
        currencyCode:
          type: string
          example: NGN
        redirectUrl:
          type: string
          format: uri
        paymentMethods:
          type: array
          items:
            type: string
            enum:
            - CARD
            - ACCOUNT_TRANSFER
            - USSD
            - PHONE_NUMBER
        incomeSplitConfig:
          type: array
          items:
            $ref: '#/components/schemas/IncomeSplit'
        metaData:
          type: object
          additionalProperties:
            type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT