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.