Monnify Invoices API

Create static and dynamic invoices that generate hosted payment pages and unique reserved accounts. Supports invoice listing, status lookup, and cancellation. Backs Monnify's invoicing dashboard and embedded invoicing in business-management apps. Endpoints under /api/v1/invoice.

Monnify Invoices 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 Invoices, Billing, Static, and Dynamic. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

monnify-invoices-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Monnify Invoices API
  description: >
    Create static and dynamic invoices that generate hosted payment pages
    and unique reserved accounts. Static invoices have a fixed amount and
    description; dynamic invoices let the customer pay any amount within a
    configured range.
  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: Invoices
    description: Create, list, and manage invoices.
paths:
  /api/v1/invoice/create:
    post:
      summary: Monnify Create Invoice
      operationId: createInvoice
      tags: [Invoices]
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/CreateInvoiceRequest' }
      responses:
        '200':
          description: Invoice created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceEnvelope'
  /api/v1/invoice/{invoiceReference}/details:
    get:
      summary: Monnify Get Invoice Details
      operationId: getInvoice
      tags: [Invoices]
      parameters:
        - name: invoiceReference
          in: path
          required: true
          schema: { type: string }
      responses:
        '200':
          description: Invoice details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceEnvelope'
  /api/v1/invoice/all:
    get:
      summary: Monnify List Invoices
      operationId: listInvoices
      tags: [Invoices]
      responses:
        '200':
          description: Invoice list.
          content:
            application/json:
              schema:
                type: object
                properties:
                  requestSuccessful: { type: boolean }
                  responseMessage: { type: string }
                  responseCode: { type: string }
                  responseBody:
                    type: array
                    items: { $ref: '#/components/schemas/Invoice' }
  /api/v1/invoice/{invoiceReference}/cancel:
    delete:
      summary: Monnify Cancel Invoice
      operationId: cancelInvoice
      tags: [Invoices]
      parameters:
        - name: invoiceReference
          in: path
          required: true
          schema: { type: string }
      responses:
        '200':
          description: Invoice cancelled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceEnvelope'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    CreateInvoiceRequest:
      type: object
      required: [amount, invoiceReference, description, currencyCode, contractCode, customerEmail, customerName, expiryDate]
      properties:
        amount: { type: number }
        invoiceReference: { type: string }
        description: { type: string }
        currencyCode: { type: string, default: NGN }
        contractCode: { type: string }
        customerEmail: { type: string, format: email }
        customerName: { type: string }
        expiryDate: { type: string, format: date-time }
        paymentMethods:
          type: array
          items: { type: string, enum: [CARD, ACCOUNT_TRANSFER] }
        redirectUrl: { type: string, format: uri }
        incomeSplitConfig:
          type: array
          items:
            type: object
            properties:
              subAccountCode: { type: string }
              feePercentage: { type: number }
              splitPercentage: { type: number }
              feeBearer: { type: boolean }
    Invoice:
      type: object
      properties:
        invoiceReference: { type: string }
        amount: { type: number }
        currencyCode: { type: string }
        customerEmail: { type: string }
        customerName: { type: string }
        checkoutUrl: { type: string, format: uri }
        accountNumber: { type: string }
        accountName: { type: string }
        bankCode: { type: string }
        bankName: { type: string }
        status: { type: string, enum: [PENDING, PAID, OVERPAID, PARTIALLY_PAID, EXPIRED, CANCELLED] }
        expiryDate: { type: string, format: date-time }
        dateCreated: { type: string, format: date-time }
    InvoiceEnvelope:
      type: object
      properties:
        requestSuccessful: { type: boolean }
        responseMessage: { type: string }
        responseCode: { type: string }
        responseBody: { $ref: '#/components/schemas/Invoice' }