openapi: 3.1.0 info: title: Moniepoint POS Push Payment Authentication Mandates 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: Mandates description: Create and manage direct-debit mandates. paths: /api/v1/direct-debit/mandate: post: summary: Monnify Create Direct Debit Mandate operationId: createMandate tags: - Mandates requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateMandateRequest' responses: '200': description: Mandate created (pending activation). content: application/json: schema: $ref: '#/components/schemas/MandateEnvelope' /api/v1/direct-debit/mandate/{mandateCode}: get: summary: Monnify Get Direct Debit Mandate operationId: getMandate tags: - Mandates parameters: - name: mandateCode in: path required: true schema: type: string responses: '200': description: Mandate details. content: application/json: schema: $ref: '#/components/schemas/MandateEnvelope' delete: summary: Monnify Cancel Direct Debit Mandate operationId: cancelMandate tags: - Mandates parameters: - name: mandateCode in: path required: true schema: type: string responses: '200': description: Mandate cancelled. content: application/json: schema: $ref: '#/components/schemas/MandateEnvelope' /api/v1/direct-debit/mandate/activation: post: summary: Monnify Activate Direct Debit Mandate description: Submit the activation code to move a mandate from PENDING to ACTIVATED. operationId: activateMandate tags: - Mandates requestBody: required: true content: application/json: schema: type: object required: - mandateCode - activationCode properties: mandateCode: type: string activationCode: type: string responses: '200': description: Mandate activated. content: application/json: schema: $ref: '#/components/schemas/MandateEnvelope' components: schemas: MandateEnvelope: type: object properties: requestSuccessful: type: boolean responseMessage: type: string responseCode: type: string responseBody: $ref: '#/components/schemas/Mandate' CreateMandateRequest: type: object required: - mandateDescription - mandateAmount - customerName - customerAccountNumber - customerBankCode - startDate - endDate properties: mandateDescription: type: string mandateAmount: type: number customerName: type: string customerEmail: type: string format: email customerPhoneNumber: type: string customerAccountNumber: type: string customerBankCode: type: string startDate: type: string format: date endDate: type: string format: date frequency: type: string enum: - DAILY - WEEKLY - MONTHLY - QUARTERLY - YEARLY - AD_HOC amountType: type: string enum: - FIXED - VARIABLE debitReference: type: string contractCode: type: string Mandate: type: object properties: mandateCode: type: string mandateDescription: type: string mandateAmount: type: number customerName: type: string customerAccountNumber: type: string customerBankCode: type: string status: type: string enum: - PENDING - FAILED - CANCELLED - ACTIVATED - EXPIRED frequency: type: string amountType: type: string startDate: type: string format: date endDate: type: string format: date dateCreated: type: string format: date-time securitySchemes: BasicAuth: type: http scheme: basic description: Basic auth using API client id and client secret from the Moniepoint Business dashboard.