openapi: 3.1.0 info: title: Moniepoint POS Push Payment Authentication 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: Authentication description: Obtain a Bearer access token for the Monnify API. paths: /api/v1/auth/login: post: summary: Monnify Log In And Issue Access Token description: 'Authenticate with Basic auth using your API key as the username and your secret key as the password. Returns an OAuth-style accessToken and expiresIn (seconds). Cache the token until expiry to avoid re-authenticating on every call. ' operationId: monnifyLogin tags: - Authentication security: - BasicAuth: [] responses: '200': description: Access token issued successfully. content: application/json: schema: $ref: '#/components/schemas/LoginResponse' examples: Default: $ref: '#/components/examples/LoginResponseExample' 4XX: $ref: '#/components/responses/ErrorResponse' components: examples: LoginResponseExample: summary: Successful login value: requestSuccessful: true responseMessage: success responseCode: '0' responseBody: accessToken: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJNS19QUk9EXzAxIn0.x expiresIn: 3600 schemas: LoginResponseBody: type: object properties: accessToken: type: string description: Bearer access token; place in the Authorization header on every subsequent Monnify call. expiresIn: type: integer description: Token lifetime in seconds (typically 3600). Error: type: object properties: requestSuccessful: type: boolean example: false responseMessage: type: string responseCode: type: string responseBody: type: object LoginResponse: type: object properties: requestSuccessful: type: boolean responseMessage: type: string responseCode: type: string responseBody: $ref: '#/components/schemas/LoginResponseBody' responses: ErrorResponse: description: Authentication failed. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: BasicAuth: type: http scheme: basic description: Basic auth using API client id and client secret from the Moniepoint Business dashboard.