Moniepoint Push Payments API

Initiate push payments to a registered POS terminal.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

moniepoint-push-payments-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Moniepoint POS Push Payment Authentication Push Payments API
  description: 'Push payment-request flow for Moniepoint POS terminals. ISV partners push an authenticated payment request to a registered terminal serial number; the merchant taps to accept and the terminal completes a card or bank-transfer collection routed through Moniepoint''s acquiring rails. API client credentials (client id and client secret) are issued from the Moniepoint Business dashboard.

    '
  version: '1.0'
  contact:
    name: Moniepoint POS Developer Support
    url: https://teamapt.atlassian.net/wiki/spaces/EI
servers:
- url: https://pos.moniepoint.com
  description: Production
security:
- BasicAuth: []
tags:
- name: Push Payments
  description: Initiate push payments to a registered POS terminal.
paths:
  /api/v1/push-payment/request:
    post:
      summary: Moniepoint Push Payment Request
      description: 'Push a payment request to a specific Moniepoint POS terminal. The terminal prompts the cashier to confirm and present the card or transfer instructions to the customer.

        '
      operationId: pushPaymentRequest
      tags:
      - Push Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushPaymentRequest'
      responses:
        '200':
          description: Push accepted; terminal awaiting customer action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushPaymentEnvelope'
  /api/v1/push-payment/status/{reference}:
    get:
      summary: Moniepoint Push Payment Status
      operationId: pushPaymentStatus
      tags:
      - Push Payments
      parameters:
      - name: reference
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Payment status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushPaymentEnvelope'
components:
  schemas:
    PushPayment:
      type: object
      properties:
        terminalSerialNumber:
          type: string
        reference:
          type: string
        amount:
          type: number
        currency:
          type: string
        status:
          type: string
          enum:
          - PENDING
          - ACCEPTED
          - COMPLETED
          - DECLINED
          - EXPIRED
          - FAILED
        responseCode:
          type: string
        responseMessage:
          type: string
        paymentMethod:
          type: string
          enum:
          - CARD
          - TRANSFER
        dateCreated:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
    PushPaymentRequest:
      type: object
      required:
      - terminalSerialNumber
      - amount
      - reference
      - currency
      properties:
        terminalSerialNumber:
          type: string
        amount:
          type: number
        reference:
          type: string
          description: Unique ISV reference.
        currency:
          type: string
          default: NGN
        description:
          type: string
        callbackUrl:
          type: string
          format: uri
        expiresIn:
          type: integer
          description: Seconds before the terminal cancels the request.
    PushPaymentEnvelope:
      type: object
      properties:
        requestSuccessful:
          type: boolean
        responseMessage:
          type: string
        responseCode:
          type: string
        responseBody:
          $ref: '#/components/schemas/PushPayment'
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: Basic auth using API client id and client secret from the Moniepoint Business dashboard.