Mono DirectPay API

One-time bank-to-bank payments.

Documentation

Specifications

Other Resources

OpenAPI Specification

mono-co-directpay-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Mono Account Information DirectPay API
  description: Specification of the Mono open-banking API. Mono lets businesses link customer bank accounts (Connect) to read transactions, statements, identity, income, and balance, and to collect payments via DirectPay one-time transfers and Direct Debit mandates. All requests are authenticated with the secret application key supplied in the mono-sec-key header. Monetary amounts are expressed in the lowest denomination of the currency (e.g. kobo for NGN).
  termsOfService: https://mono.co/legal
  contact:
    name: Mono Support
    url: https://docs.mono.co
    email: hi@mono.co
  version: '2.0'
servers:
- url: https://api.withmono.com
  description: Mono production API
security:
- monoSecKey: []
tags:
- name: DirectPay
  description: One-time bank-to-bank payments.
paths:
  /v2/payments/initiate:
    post:
      operationId: initiatePayment
      tags:
      - DirectPay
      summary: Initiate DirectPay payment
      description: Initiates a one-time bank-to-bank DirectPay payment and returns a hosted payment link and reference for the customer to authorize.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiatePaymentRequest'
      responses:
        '200':
          description: Payment initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiatePaymentResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/payments/verify/{reference}:
    get:
      operationId: verifyPayment
      tags:
      - DirectPay
      summary: Verify DirectPay payment
      description: Verifies the status of a DirectPay payment by its transaction reference.
      parameters:
      - name: reference
        in: path
        required: true
        description: The payment transaction reference.
        schema:
          type: string
      responses:
        '200':
          description: Payment status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentStatus'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Error:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
    PaymentStatus:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        data:
          type: object
          properties:
            id:
              type: string
            reference:
              type: string
            amount:
              type: integer
            status:
              type: string
              enum:
              - successful
              - failed
              - pending
              - abandoned
            currency:
              type: string
            created_at:
              type: string
              format: date-time
    InitiatePaymentRequest:
      type: object
      required:
      - amount
      - type
      - reference
      properties:
        amount:
          type: integer
          description: Amount in the lowest denomination (e.g. kobo).
        type:
          type: string
          example: onetime-debit
        method:
          type: string
          example: account
        description:
          type: string
        reference:
          type: string
        redirect_url:
          type: string
        customer:
          type: object
          properties:
            email:
              type: string
            phone:
              type: string
            address:
              type: string
            identity:
              type: object
              properties:
                type:
                  type: string
                number:
                  type: string
        meta:
          type: object
    InitiatePaymentResponse:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        data:
          type: object
          properties:
            id:
              type: string
            mono_url:
              type: string
            type:
              type: string
            reference:
              type: string
            customer:
              type: string
  responses:
    Unauthorized:
      description: Missing or invalid mono-sec-key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    monoSecKey:
      type: apiKey
      in: header
      name: mono-sec-key
      description: Secret application key issued in the Mono dashboard.