openapi: 3.0.3
info:
  title: 'Zay Links'
  description: ''
  version: 1.0.0
servers:
  -
    url: 'https://zaylinks.com'
paths:
  /api/authenticate:
    post:
      summary: 'Authenticate the user and issue a token.'
      operationId: authenticateTheUserAndIssueAToken
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Authentication successful.'
                  access_token: your_access_token_here
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Authentication successful.'
                  access_token:
                    type: string
                    example: your_access_token_here
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'The credentials you supplied do not match our record.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'The credentials you supplied do not match our record.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    client_id: 'The client id field is required.'
                    secret_key: 'The secret key field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      client_id:
                        type: string
                        example: 'The client id field is required.'
                      secret_key:
                        type: string
                        example: 'The secret key field is required.'
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                client_id:
                  type: string
                  description: ''
                  example: sunt
                  nullable: false
                secret_key:
                  type: string
                  description: ''
                  example: est
                  nullable: false
              required:
                - client_id
                - secret_key
      security: []
  /api/v1/airtime-networks:
    get:
      summary: 'Airtime Networks'
      operationId: airtimeNetworks
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      name: 9mobile
                      serviceID: 9mobile
                    -
                      name: Airtel
                      serviceID: airtel
                    -
                      name: Glo
                      serviceID: glo
                    -
                      name: Mtn
                      serviceID: mtn
                    -
                      name: Smile
                      serviceID: smile
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        name: 9mobile
                        serviceID: 9mobile
                      -
                        name: Airtel
                        serviceID: airtel
                      -
                        name: Glo
                        serviceID: glo
                      -
                        name: Mtn
                        serviceID: mtn
                      -
                        name: Smile
                        serviceID: smile
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: 9mobile
                        serviceID:
                          type: string
                          example: 9mobile
      tags:
        - Airtime
  /api/v1/airtime:
    post:
      summary: 'Vend Airtime VTU'
      operationId: vendAirtimeVTU
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: completed
                    type: object
                    example:
                      status: completed
                      message: 'Transaction successful'
                      data:
                        type: 'Airtime Purchase'
                        service: Mtn
                        serviceID: mtn
                        amount: '100'
                        amount_payable: '100.00'
                        recipient:
                          mobile: '08161144693'
                        reference: 20241106161127AQ7CZ0LNVHQB
                        message: 'Airtime Purchase of Mtn ₦100 for 08161144693 was successful. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: completed
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Airtime Purchase'
                          service:
                            type: string
                            example: Mtn
                          serviceID:
                            type: string
                            example: mtn
                          amount:
                            type: string
                            example: '100'
                          amount_payable:
                            type: string
                            example: '100.00'
                          recipient:
                            type: object
                            properties:
                              mobile:
                                type: string
                                example: '08161144693'
                          reference:
                            type: string
                            example: 20241106161127AQ7CZ0LNVHQB
                          message:
                            type: string
                            example: 'Airtime Purchase of Mtn ₦100 for 08161144693 was successful. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                  -
                    description: pending
                    type: object
                    example:
                      status: pending
                      message: 'Transaction pending'
                      data:
                        type: 'Airtime Purchase'
                        service: Mtn
                        serviceID: mtn
                        amount: '100'
                        amount_payable: '100.00'
                        recipient:
                          mobile: '08161144693'
                        reference: 20241106161127AQ7CZ0LNVHQB
                        message: 'Airtime Purchase of Mtn ₦100 for 08161144693 was is currently being processed. Please check back after a while. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: pending
                      message:
                        type: string
                        example: 'Transaction pending'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Airtime Purchase'
                          service:
                            type: string
                            example: Mtn
                          serviceID:
                            type: string
                            example: mtn
                          amount:
                            type: string
                            example: '100'
                          amount_payable:
                            type: string
                            example: '100.00'
                          recipient:
                            type: object
                            properties:
                              mobile:
                                type: string
                                example: '08161144693'
                          reference:
                            type: string
                            example: 20241106161127AQ7CZ0LNVHQB
                          message:
                            type: string
                            example: 'Airtime Purchase of Mtn ₦100 for 08161144693 was is currently being processed. Please check back after a while. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                  -
                    description: failed
                    type: object
                    example:
                      status: failed
                      message: 'Transaction failed'
                      data:
                        type: 'Airtime Purchase'
                        service: Mtn
                        serviceID: mtn
                        amount: '100'
                        amount_payable: '100.00'
                        recipient:
                          mobile: '08161144693'
                        reference: 20241106161127AQ7CZ0LNVHQB
                        message: 'Airtime Purchase of Mtn ₦100 for 08161144693 failed. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: failed
                      message:
                        type: string
                        example: 'Transaction failed'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Airtime Purchase'
                          service:
                            type: string
                            example: Mtn
                          serviceID:
                            type: string
                            example: mtn
                          amount:
                            type: string
                            example: '100'
                          amount_payable:
                            type: string
                            example: '100.00'
                          recipient:
                            type: object
                            properties:
                              mobile:
                                type: string
                                example: '08161144693'
                          reference:
                            type: string
                            example: 20241106161127AQ7CZ0LNVHQB
                          message:
                            type: string
                            example: 'Airtime Purchase of Mtn ₦100 for 08161144693 failed. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Mtn Vending service currently unavailable.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Mtn Vending service currently unavailable.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    amount: 'The amount field is required.'
                    recipient: 'The recipient field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      amount:
                        type: string
                        example: 'The amount field is required.'
                      recipient:
                        type: string
                        example: 'The recipient field is required.'
      tags:
        - Airtime
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the airtime network.'
                  example: mtn
                  nullable: false
                amount:
                  type: integer
                  description: 'The amount to be purchased.'
                  example: 100
                  nullable: false
                recipient:
                  type: numeric
                  description: 'The phone number of the recipient.'
                  example: '0123456789'
                  nullable: false
              required:
                - serviceID
                - amount
                - recipient
  /api/v1/a2cash-networks:
    get:
      summary: 'Airtime To Cash Networks'
      operationId: airtimeToCashNetworks
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      name: 9mobile
                      serviceID: 9mobile-a2c
                    -
                      name: Airtel
                      serviceID: airtel-a2c
                    -
                      name: Glo
                      serviceID: glo-a2c
                    -
                      name: Mtn
                      serviceID: mtn-a2c
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        name: 9mobile
                        serviceID: 9mobile-a2c
                      -
                        name: Airtel
                        serviceID: airtel-a2c
                      -
                        name: Glo
                        serviceID: glo-a2c
                      -
                        name: Mtn
                        serviceID: mtn-a2c
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: 9mobile
                        serviceID:
                          type: string
                          example: 9mobile-a2c
      tags:
        - 'Airtime To Cash'
  /api/v1/airtime-to-cash/request-otp:
    post:
      summary: 'Send / Request OTP'
      operationId: sendRequestOTP
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'A verification otp has been resent sent to 08161144693'
                  identifier: FPIGMV8U6R6U5W11N7MQPB1ZJGPRAKY7Z13304A242ECE43
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'A verification otp has been resent sent to 08161144693'
                  identifier:
                    type: string
                    example: FPIGMV8U6R6U5W11N7MQPB1ZJGPRAKY7Z13304A242ECE43
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    sender_number: 'The sender number field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      sender_number:
                        type: string
                        example: 'The sender number field is required.'
      tags:
        - 'Airtime To Cash'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the airtime network.'
                  example: mtn-a2c
                  nullable: false
                sender_number:
                  type: numeric
                  description: 'The phone number of the sender.'
                  example: '0123456789'
                  nullable: false
              required:
                - serviceID
                - sender_number
  /api/v1/airtime-to-cash/verify-otp:
    post:
      summary: 'Verify OTP'
      operationId: verifyOTP
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Otp Validated Successfully for 08161144693'
                  tariffPlan: Pulse
                  tariffType: Prepaid
                  sessionId: MV355OUH8T89I0KSVE4IPJVLV3DAANCINRW2DJ7UYL4ZWY1LWFDN1JD7
                  airtimeBalance: '158.31'
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Otp Validated Successfully for 08161144693'
                  tariffPlan:
                    type: string
                    example: Pulse
                  tariffType:
                    type: string
                    example: Prepaid
                  sessionId:
                    type: string
                    example: MV355OUH8T89I0KSVE4IPJVLV3DAANCINRW2DJ7UYL4ZWY1LWFDN1JD7
                  airtimeBalance:
                    type: string
                    example: '158.31'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Wrong phone number or verification code.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Wrong phone number or verification code.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    identifier: 'The identifier field is required.'
                    otp: 'The otp field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      identifier:
                        type: string
                        example: 'The identifier field is required.'
                      otp:
                        type: string
                        example: 'The otp field is required.'
      tags:
        - 'Airtime To Cash'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the airtime network.'
                  example: mtn-a2c
                  nullable: false
                identifier:
                  type: string
                  description: ''
                  example: sed
                  nullable: false
                otp:
                  type: numeric
                  description: 'The otp sent to the sender number.'
                  example: '565722'
                  nullable: false
                identifer:
                  type: string
                  description: 'The identifier returned in the previous endpoint.'
                  example: FPIGMV8U6R6U5W11N7MQPB1ZJGPRAKY7Z13304A2
                  nullable: false
              required:
                - serviceID
                - identifier
                - otp
                - identifer
  /api/v1/airtime-to-cash/send-airtime:
    post:
      summary: 'Send Airtime'
      operationId: sendAirtime
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: completed
                    type: object
                    example:
                      status: completed
                      message: 'Transaction successful'
                      data:
                        type: 'Airtime To Cash'
                        service: Mtn
                        serviceID: mtn-a2c
                        amount: '245'
                        phoneNumber: '08161144693'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Airtime To Cash Funding of Mtn ₦100 from 08161144693 was successful. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: completed
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Airtime To Cash'
                          service:
                            type: string
                            example: Mtn
                          serviceID:
                            type: string
                            example: mtn-a2c
                          amount:
                            type: string
                            example: '245'
                          phoneNumber:
                            type: string
                            example: '08161144693'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Airtime To Cash Funding of Mtn ₦100 from 08161144693 was successful. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                  -
                    description: pending
                    type: object
                    example:
                      status: pending
                      message: 'Transaction pending'
                      data:
                        type: 'Airtime To Cash'
                        service: Mtn
                        serviceID: mtn-a2c
                        amount: '245'
                        phoneNumber: '08161144693'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Airtime To Cash Funding of Mtn ₦100 from 08161144693 is currently being processed. Please check back after a while.. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: pending
                      message:
                        type: string
                        example: 'Transaction pending'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Airtime To Cash'
                          service:
                            type: string
                            example: Mtn
                          serviceID:
                            type: string
                            example: mtn-a2c
                          amount:
                            type: string
                            example: '245'
                          phoneNumber:
                            type: string
                            example: '08161144693'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Airtime To Cash Funding of Mtn ₦100 from 08161144693 is currently being processed. Please check back after a while.. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                  -
                    description: failed
                    type: object
                    example:
                      status: failed
                      message: 'Transaction failed'
                      data:
                        type: 'Airtime To Cash'
                        service: Mtn
                        serviceID: mtn-a2c
                        amount: '245'
                        phoneNumber: '08161144693'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Airtime To Cash Funding of Mtn ₦100 from 08161144693 failed. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: failed
                      message:
                        type: string
                        example: 'Transaction failed'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Airtime To Cash'
                          service:
                            type: string
                            example: Mtn
                          serviceID:
                            type: string
                            example: mtn-a2c
                          amount:
                            type: string
                            example: '245'
                          phoneNumber:
                            type: string
                            example: '08161144693'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Airtime To Cash Funding of Mtn ₦100 from 08161144693 failed. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Wrong phone number or verification code.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Wrong phone number or verification code.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    sender_number: 'The sender number field is required.'
                    amount: 'The amount field is required.'
                    airtime_share_pin: 'The airtime share pin field is required.'
                    sessionId: 'The session id field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      sender_number:
                        type: string
                        example: 'The sender number field is required.'
                      amount:
                        type: string
                        example: 'The amount field is required.'
                      airtime_share_pin:
                        type: string
                        example: 'The airtime share pin field is required.'
                      sessionId:
                        type: string
                        example: 'The session id field is required.'
      tags:
        - 'Airtime To Cash'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the airtime network.'
                  example: mtn-a2c
                  nullable: false
                sender_number:
                  type: numeric
                  description: 'The phone number of the sender.'
                  example: '0123456789'
                  nullable: false
                amount:
                  type: numeric
                  description: 'The airtime value to share.'
                  example: '500'
                  nullable: false
                airtime_share_pin:
                  type: numeric
                  description: 'The share pin of the sender number.'
                  example: '1234'
                  nullable: false
                sessionId:
                  type: string
                  description: 'The sessionId returned in the previous endpoint.'
                  example: FPIGMV8U6R6U5W11N7MQPB1ZJGPRAKY7Z13304A2
                  nullable: false
              required:
                - serviceID
                - sender_number
                - amount
                - airtime_share_pin
                - sessionId
  /api/v1/cable-services:
    get:
      summary: 'Cable Services'
      operationId: cableServices
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      name: Dstv
                      serviceID: dstv
                    -
                      name: Gotv
                      serviceID: gotv
                    -
                      name: Showmax
                      serviceID: showmax
                    -
                      name: Startimes
                      serviceID: startimes
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        name: Dstv
                        serviceID: dstv
                      -
                        name: Gotv
                        serviceID: gotv
                      -
                        name: Showmax
                        serviceID: showmax
                      -
                        name: Startimes
                        serviceID: startimes
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: Dstv
                        serviceID:
                          type: string
                          example: dstv
      tags:
        - Cable
  /api/v1/cable-plans:
    post:
      summary: 'Cable Plans'
      operationId: cablePlans
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      planName: 'Dstv Padi'
                      planId: 1
                      cableType: Dstv
                      serviceID: dstv
                      price: '1850'
                      status: active
                    -
                      planName: 'Dstv Yanga'
                      planId: 2
                      cableType: Dstv
                      serviceID: dstv
                      price: '2565'
                      status: active
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        planName: 'Dstv Padi'
                        planId: 1
                        cableType: Dstv
                        serviceID: dstv
                        price: '1850'
                        status: active
                      -
                        planName: 'Dstv Yanga'
                        planId: 2
                        cableType: Dstv
                        serviceID: dstv
                        price: '2565'
                        status: active
                    items:
                      type: object
                      properties:
                        planName:
                          type: string
                          example: 'Dstv Padi'
                        planId:
                          type: integer
                          example: 1
                        cableType:
                          type: string
                          example: Dstv
                        serviceID:
                          type: string
                          example: dstv
                        price:
                          type: string
                          example: '1850'
                        status:
                          type: string
                          example: active
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
      tags:
        - Cable
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the cable.'
                  example: dstv
                  nullable: false
              required:
                - serviceID
  /api/v1/verify-smart-card-number:
    post:
      summary: 'Verify Smart Card Number'
      operationId: verifySmartCardNumber
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  customerName: Testermetri
                  currentBouquet: 'DStv  Compact N7900 + ExtraView Access N2,500'
                properties:
                  status:
                    type: string
                    example: success
                  customerName:
                    type: string
                    example: Testermetri
                  currentBouquet:
                    type: string
                    example: 'DStv  Compact N7900 + ExtraView Access N2,500'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Please check the Smartcard Number and Try Again'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Please check the Smartcard Number and Try Again'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    smartCardNumber: 'The smart card number field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      smartCardNumber:
                        type: string
                        example: 'The smart card number field is required.'
      tags:
        - Cable
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the electricity.'
                  example: dstv
                  nullable: false
                smartCardNumber:
                  type: numeric
                  description: 'The meter number.'
                  example: '0123456789'
                  nullable: false
              required:
                - serviceID
                - smartCardNumber
  /api/v1/cable:
    post:
      summary: 'Vend Cable'
      operationId: vendCable
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: completed
                    type: object
                    example:
                      status: completed
                      message: 'Transaction successful'
                      data:
                        type: 'Cable Purchase'
                        service: Dstv
                        serviceID: dstv
                        plan:
                          planName: 'Dstv Padi'
                          planId: 1
                          serviceID: dstv
                        recipient:
                          smart_card_number: '1212121212'
                          name: Testermetri
                          previousBouquet: 'DStv  Compact N7900 + ExtraView Access N2,500'
                        subscription_type: renew
                        quantity: '1'
                        amount: 1850
                        amount_payable: 1850
                        phone_number: '08161144693'
                        reference: 20241108144552JGAYIWTU7NTY
                        message: 'Cable Purchase of Dstv Dstv Padi for 1212121212 (Testermetri) was successful. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: completed
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Cable Purchase'
                          service:
                            type: string
                            example: Dstv
                          serviceID:
                            type: string
                            example: dstv
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: 'Dstv Padi'
                              planId:
                                type: integer
                                example: 1
                              serviceID:
                                type: string
                                example: dstv
                          recipient:
                            type: object
                            properties:
                              smart_card_number:
                                type: string
                                example: '1212121212'
                              name:
                                type: string
                                example: Testermetri
                              previousBouquet:
                                type: string
                                example: 'DStv  Compact N7900 + ExtraView Access N2,500'
                          subscription_type:
                            type: string
                            example: renew
                          quantity:
                            type: string
                            example: '1'
                          amount:
                            type: integer
                            example: 1850
                          amount_payable:
                            type: integer
                            example: 1850
                          phone_number:
                            type: string
                            example: '08161144693'
                          reference:
                            type: string
                            example: 20241108144552JGAYIWTU7NTY
                          message:
                            type: string
                            example: 'Cable Purchase of Dstv Dstv Padi for 1212121212 (Testermetri) was successful. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                  -
                    description: pending
                    type: object
                    example:
                      status: pending
                      message: 'Transaction pending'
                      data:
                        type: 'Cable Purchase'
                        service: Dstv
                        serviceID: dstv
                        plan:
                          planName: 'Dstv Padi'
                          planId: 1
                          serviceID: dstv
                        recipient:
                          smart_card_number: '1212121212'
                          name: Testermetri
                          previousBouquet: 'DStv  Compact N7900 + ExtraView Access N2,500'
                        subscription_type: renew
                        quantity: '1'
                        amount: 1850
                        amount_payable: 1850
                        phone_number: '08161144693'
                        reference: 20241108144552JGAYIWTU7NTY
                        message: 'Cable Purchase of Dstv Dstv Padi for 1212121212 (Testermetri) is currently being processed. Please check back after a while.. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: pending
                      message:
                        type: string
                        example: 'Transaction pending'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Cable Purchase'
                          service:
                            type: string
                            example: Dstv
                          serviceID:
                            type: string
                            example: dstv
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: 'Dstv Padi'
                              planId:
                                type: integer
                                example: 1
                              serviceID:
                                type: string
                                example: dstv
                          recipient:
                            type: object
                            properties:
                              smart_card_number:
                                type: string
                                example: '1212121212'
                              name:
                                type: string
                                example: Testermetri
                              previousBouquet:
                                type: string
                                example: 'DStv  Compact N7900 + ExtraView Access N2,500'
                          subscription_type:
                            type: string
                            example: renew
                          quantity:
                            type: string
                            example: '1'
                          amount:
                            type: integer
                            example: 1850
                          amount_payable:
                            type: integer
                            example: 1850
                          phone_number:
                            type: string
                            example: '08161144693'
                          reference:
                            type: string
                            example: 20241108144552JGAYIWTU7NTY
                          message:
                            type: string
                            example: 'Cable Purchase of Dstv Dstv Padi for 1212121212 (Testermetri) is currently being processed. Please check back after a while.. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                  -
                    description: failed
                    type: object
                    example:
                      status: failed
                      message: 'Transaction failed'
                      data:
                        type: 'Cable Purchase'
                        service: Dstv
                        serviceID: dstv
                        plan:
                          planName: 'Dstv Padi'
                          planId: 1
                          serviceID: dstv
                        recipient:
                          smart_card_number: '1212121212'
                          name: Testermetri
                          previousBouquet: 'DStv  Compact N7900 + ExtraView Access N2,500'
                        subscription_type: renew
                        quantity: '1'
                        amount: 1850
                        amount_payable: 1850
                        phone_number: '08161144693'
                        reference: 20241108144552JGAYIWTU7NTY
                        message: 'Cable Purchase of Dstv Dstv Padi for 1212121212 (Testermetri) failed. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: failed
                      message:
                        type: string
                        example: 'Transaction failed'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Cable Purchase'
                          service:
                            type: string
                            example: Dstv
                          serviceID:
                            type: string
                            example: dstv
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: 'Dstv Padi'
                              planId:
                                type: integer
                                example: 1
                              serviceID:
                                type: string
                                example: dstv
                          recipient:
                            type: object
                            properties:
                              smart_card_number:
                                type: string
                                example: '1212121212'
                              name:
                                type: string
                                example: Testermetri
                              previousBouquet:
                                type: string
                                example: 'DStv  Compact N7900 + ExtraView Access N2,500'
                          subscription_type:
                            type: string
                            example: renew
                          quantity:
                            type: string
                            example: '1'
                          amount:
                            type: integer
                            example: 1850
                          amount_payable:
                            type: integer
                            example: 1850
                          phone_number:
                            type: string
                            example: '08161144693'
                          reference:
                            type: string
                            example: 20241108144552JGAYIWTU7NTY
                          message:
                            type: string
                            example: 'Cable Purchase of Dstv Dstv Padi for 1212121212 (Testermetri) failed. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'DSTV Vending service currently unavailable.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'DSTV Vending service currently unavailable.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    planId: 'The plan id field is required.'
                    smartCardNumber: 'The smart card number field is required.'
                    subscriptionType: 'The subscription type field is required.'
                    quantity: 'The quantity field is required.'
                    phoneNumber: 'The phone number field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      planId:
                        type: string
                        example: 'The plan id field is required.'
                      smartCardNumber:
                        type: string
                        example: 'The smart card number field is required.'
                      subscriptionType:
                        type: string
                        example: 'The subscription type field is required.'
                      quantity:
                        type: string
                        example: 'The quantity field is required.'
                      phoneNumber:
                        type: string
                        example: 'The phone number field is required.'
      tags:
        - Cable
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the data network.'
                  example: dstv
                  nullable: false
                planId:
                  type: integer
                  description: 'The id of the data plan.'
                  example: 2
                  nullable: false
                smartCardNumber:
                  type: integer
                  description: 'The smart card number.'
                  example: 123456789
                  nullable: false
                subscriptionType:
                  type: string
                  description: 'The subscription type.'
                  example: 'renew, change'
                  nullable: false
                quantity:
                  type: integer
                  description: 'The quantity to purchase.'
                  example: 1
                  nullable: false
                phoneNumber:
                  type: numeric
                  description: 'The phone number of the recipient.'
                  example: '0123456789'
                  nullable: false
              required:
                - serviceID
                - planId
                - smartCardNumber
                - subscriptionType
                - quantity
                - phoneNumber
  /api/v1/data-networks:
    get:
      summary: 'Data Networks'
      operationId: dataNetworks
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      name: 9mobile
                      serviceID: 9mobile-data
                    -
                      name: Airtel
                      serviceID: airtel-data
                    -
                      name: Glo
                      serviceID: glo-data
                    -
                      name: Mtn
                      serviceID: mtn-data
                    -
                      name: Smile
                      serviceID: smile-data
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        name: 9mobile
                        serviceID: 9mobile-data
                      -
                        name: Airtel
                        serviceID: airtel-data
                      -
                        name: Glo
                        serviceID: glo-data
                      -
                        name: Mtn
                        serviceID: mtn-data
                      -
                        name: Smile
                        serviceID: smile-data
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: 9mobile
                        serviceID:
                          type: string
                          example: 9mobile-data
      tags:
        - Data
  /api/v1/data-types:
    post:
      summary: 'Data Types'
      operationId: dataTypes
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      service: Mtn
                      serviceID: mtn-data
                      dataTypeId: 1
                      name: SME
                    -
                      service: Mtn
                      serviceID: mtn-data
                      dataTypeId: 2
                      name: 'Corporate Gifting (CG)'
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        service: Mtn
                        serviceID: mtn-data
                        dataTypeId: 1
                        name: SME
                      -
                        service: Mtn
                        serviceID: mtn-data
                        dataTypeId: 2
                        name: 'Corporate Gifting (CG)'
                    items:
                      type: object
                      properties:
                        service:
                          type: string
                          example: Mtn
                        serviceID:
                          type: string
                          example: mtn-data
                        dataTypeId:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: SME
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
      tags:
        - Data
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the data network.'
                  example: mtn-data
                  nullable: false
              required:
                - serviceID
  /api/v1/data-plans:
    post:
      summary: 'Data Plans'
      operationId: dataPlans
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      planName: 1GB
                      planId: 1
                      validity: '1 month'
                      network: Mtn
                      serviceID: mtn-data
                      dataType: 'Data Share'
                      dataTypeId: 1
                      price: '255'
                      status: active
                    -
                      planName: 2GB
                      planId: 15
                      validity: '1 month'
                      network: Mtn
                      serviceID: mtn-data
                      dataType: 'Data Share'
                      dataTypeId: 1
                      price: '510'
                      status: active
                    -
                      planName: 3GB
                      planId: 16
                      validity: '1 month'
                      network: Mtn
                      serviceID: mtn-data
                      dataType: 'Data Share'
                      dataTypeId: 1
                      price: '765'
                      status: active
                    -
                      planName: 5GB
                      planId: 17
                      validity: '1 month'
                      network: Mtn
                      serviceID: mtn-data
                      dataType: 'Data Share'
                      dataTypeId: 1
                      price: '1275'
                      status: active
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        planName: 1GB
                        planId: 1
                        validity: '1 month'
                        network: Mtn
                        serviceID: mtn-data
                        dataType: 'Data Share'
                        dataTypeId: 1
                        price: '255'
                        status: active
                      -
                        planName: 2GB
                        planId: 15
                        validity: '1 month'
                        network: Mtn
                        serviceID: mtn-data
                        dataType: 'Data Share'
                        dataTypeId: 1
                        price: '510'
                        status: active
                      -
                        planName: 3GB
                        planId: 16
                        validity: '1 month'
                        network: Mtn
                        serviceID: mtn-data
                        dataType: 'Data Share'
                        dataTypeId: 1
                        price: '765'
                        status: active
                      -
                        planName: 5GB
                        planId: 17
                        validity: '1 month'
                        network: Mtn
                        serviceID: mtn-data
                        dataType: 'Data Share'
                        dataTypeId: 1
                        price: '1275'
                        status: active
                    items:
                      type: object
                      properties:
                        planName:
                          type: string
                          example: 1GB
                        planId:
                          type: integer
                          example: 1
                        validity:
                          type: string
                          example: '1 month'
                        network:
                          type: string
                          example: Mtn
                        serviceID:
                          type: string
                          example: mtn-data
                        dataType:
                          type: string
                          example: 'Data Share'
                        dataTypeId:
                          type: integer
                          example: 1
                        price:
                          type: string
                          example: '255'
                        status:
                          type: string
                          example: active
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    data_type: 'The data type field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      data_type:
                        type: string
                        example: 'The data type field is required.'
      tags:
        - Data
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the data network.'
                  example: mtn-data
                  nullable: false
                dataTypeId:
                  type: integer
                  description: 'The id of the Data type.'
                  example: 2
                  nullable: false
              required:
                - serviceID
                - dataTypeId
  /api/v1/data:
    post:
      summary: 'Vend Data'
      operationId: vendData
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: completed
                    type: object
                    example:
                      status: completed
                      message: 'Transaction successful'
                      data:
                        type: 'Data Purchase'
                        service: Mtn
                        serviceID: mtn-data
                        plan:
                          planName: '1GB [Data Share] 1 month'
                          planId: 1
                          validity: '1 month'
                          network: Mtn
                          serviceID: mtn-data
                          dataType: 'Data Share'
                          dataTypeId: 1
                        amount: '245'
                        amount_payable: '245'
                        recipient:
                          mobile: '08161144693'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Data Purchase of Mtn 1GB for 08161144693 was successful. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: completed
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Data Purchase'
                          service:
                            type: string
                            example: Mtn
                          serviceID:
                            type: string
                            example: mtn-data
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: '1GB [Data Share] 1 month'
                              planId:
                                type: integer
                                example: 1
                              validity:
                                type: string
                                example: '1 month'
                              network:
                                type: string
                                example: Mtn
                              serviceID:
                                type: string
                                example: mtn-data
                              dataType:
                                type: string
                                example: 'Data Share'
                              dataTypeId:
                                type: integer
                                example: 1
                          amount:
                            type: string
                            example: '245'
                          amount_payable:
                            type: string
                            example: '245'
                          recipient:
                            type: object
                            properties:
                              mobile:
                                type: string
                                example: '08161144693'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Data Purchase of Mtn 1GB for 08161144693 was successful. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                  -
                    description: pending
                    type: object
                    example:
                      status: pending
                      message: 'Transaction pending'
                      data:
                        type: 'Data Purchase'
                        service: Mtn
                        serviceID: mtn-data
                        plan:
                          planName: '1GB [Data Share] 1 month'
                          planId: 1
                          validity: '1 month'
                          network: Mtn
                          serviceID: mtn-data
                          dataType: 'Data Share'
                          dataTypeId: 1
                        amount: '245'
                        amount_payable: '245'
                        recipient:
                          mobile: '08161144693'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Data Purchase of Mtn 1GB for 08161144693 is currently being processed. Please check back after a while.. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: pending
                      message:
                        type: string
                        example: 'Transaction pending'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Data Purchase'
                          service:
                            type: string
                            example: Mtn
                          serviceID:
                            type: string
                            example: mtn-data
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: '1GB [Data Share] 1 month'
                              planId:
                                type: integer
                                example: 1
                              validity:
                                type: string
                                example: '1 month'
                              network:
                                type: string
                                example: Mtn
                              serviceID:
                                type: string
                                example: mtn-data
                              dataType:
                                type: string
                                example: 'Data Share'
                              dataTypeId:
                                type: integer
                                example: 1
                          amount:
                            type: string
                            example: '245'
                          amount_payable:
                            type: string
                            example: '245'
                          recipient:
                            type: object
                            properties:
                              mobile:
                                type: string
                                example: '08161144693'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Data Purchase of Mtn 1GB for 08161144693 is currently being processed. Please check back after a while.. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                  -
                    description: failed
                    type: object
                    example:
                      status: failed
                      message: 'Transaction failed'
                      data:
                        type: 'Data Purchase'
                        service: Mtn
                        serviceID: mtn-data
                        plan:
                          planName: '1GB [Data Share] 1 month'
                          planId: 1
                          validity: '1 month'
                          network: Mtn
                          serviceID: mtn-data
                          dataType: 'Data Share'
                          dataTypeId: 1
                        amount: '245'
                        amount_payable: '245'
                        recipient:
                          mobile: '08161144693'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Data Purchase of Mtn 1GB for 08161144693 failed. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                    properties:
                      status:
                        type: string
                        example: failed
                      message:
                        type: string
                        example: 'Transaction failed'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Data Purchase'
                          service:
                            type: string
                            example: Mtn
                          serviceID:
                            type: string
                            example: mtn-data
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: '1GB [Data Share] 1 month'
                              planId:
                                type: integer
                                example: 1
                              validity:
                                type: string
                                example: '1 month'
                              network:
                                type: string
                                example: Mtn
                              serviceID:
                                type: string
                                example: mtn-data
                              dataType:
                                type: string
                                example: 'Data Share'
                              dataTypeId:
                                type: integer
                                example: 1
                          amount:
                            type: string
                            example: '245'
                          amount_payable:
                            type: string
                            example: '245'
                          recipient:
                            type: object
                            properties:
                              mobile:
                                type: string
                                example: '08161144693'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Data Purchase of Mtn 1GB for 08161144693 failed. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Mtn Vending service currently unavailable.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Mtn Vending service currently unavailable.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    dataTypeId: 'The data type id field is required.'
                    planId: 'The plan id field is required.'
                    recipient: 'The recipient field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      dataTypeId:
                        type: string
                        example: 'The data type id field is required.'
                      planId:
                        type: string
                        example: 'The plan id field is required.'
                      recipient:
                        type: string
                        example: 'The recipient field is required.'
      tags:
        - Data
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the data network.'
                  example: mtn-data
                  nullable: false
                dataTypeId:
                  type: integer
                  description: 'The id of the Data type.'
                  example: 2
                  nullable: false
                planId:
                  type: integer
                  description: 'The id of the data plan.'
                  example: 2
                  nullable: false
                recipient:
                  type: numeric
                  description: 'The phone number of the recipient.'
                  example: '0123456789'
                  nullable: false
              required:
                - serviceID
                - dataTypeId
                - planId
                - recipient
  /api/v1/education-services:
    get:
      summary: 'Education Services'
      operationId: educationServices
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      name: 'WAEC Registration Pin'
                      serviceID: waec-registration
                    -
                      name: 'WAEC Result Checker Pin'
                      serviceID: waec
                    -
                      name: 'Jamb Pin'
                      serviceID: jamb
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        name: 'WAEC Registration Pin'
                        serviceID: waec-registration
                      -
                        name: 'WAEC Result Checker Pin'
                        serviceID: waec
                      -
                        name: 'Jamb Pin'
                        serviceID: jamb
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: 'WAEC Registration Pin'
                        serviceID:
                          type: string
                          example: waec-registration
      tags:
        - Education
  /api/v1/education-plans:
    post:
      summary: 'Education Plans'
      operationId: educationPlans
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      planName: WASSCE/GCE
                      planId: 4
                      educationType: 'WAEC Result Checker Pin'
                      serviceID: waec
                      price: '900'
                      status: active
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        planName: WASSCE/GCE
                        planId: 4
                        educationType: 'WAEC Result Checker Pin'
                        serviceID: waec
                        price: '900'
                        status: active
                    items:
                      type: object
                      properties:
                        planName:
                          type: string
                          example: WASSCE/GCE
                        planId:
                          type: integer
                          example: 4
                        educationType:
                          type: string
                          example: 'WAEC Result Checker Pin'
                        serviceID:
                          type: string
                          example: waec
                        price:
                          type: string
                          example: '900'
                        status:
                          type: string
                          example: active
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
      tags:
        - Education
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the education.'
                  example: waec
                  nullable: false
              required:
                - serviceID
  /api/v1/verify-jamb-profile-id:
    post:
      summary: 'Verify Jamb Profile Id'
      operationId: verifyJambProfileId
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      planName: WASSCE/GCE
                      planId: 4
                      educationType: 'WAEC Result Checker Pin'
                      serviceID: waec
                      price: '900'
                      status: active
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        planName: WASSCE/GCE
                        planId: 4
                        educationType: 'WAEC Result Checker Pin'
                        serviceID: waec
                        price: '900'
                        status: active
                    items:
                      type: object
                      properties:
                        planName:
                          type: string
                          example: WASSCE/GCE
                        planId:
                          type: integer
                          example: 4
                        educationType:
                          type: string
                          example: 'WAEC Result Checker Pin'
                        serviceID:
                          type: string
                          example: waec
                        price:
                          type: string
                          example: '900'
                        status:
                          type: string
                          example: active
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    planId: 'The plan id field is required.'
                    profile_id: 'The profile id field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      planId:
                        type: string
                        example: 'The plan id field is required.'
                      profile_id:
                        type: string
                        example: 'The profile id field is required.'
      tags:
        - Education
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the education.'
                  example: waec
                  nullable: false
                planId:
                  type: string
                  description: 'The <code>id</code> of an existing record in the education_plans table.'
                  example: aut
                  nullable: false
                profile_id:
                  type: string
                  description: ''
                  example: velit
                  nullable: false
              required:
                - serviceID
                - planId
                - profile_id
  /api/v1/education:
    post:
      summary: 'Vend Education'
      operationId: vendEducation
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: 'JAMB Pin completed'
                    type: object
                    example:
                      status: completed
                      message: 'Transaction successful'
                      data:
                        type: 'Education Purchase'
                        service: 'Jamb Pin'
                        serviceID: jamb
                        plan:
                          planName: UTME
                          planId: 1
                        quantity: '1'
                        amount: 4700
                        amount_payable: 4700
                        phoneNumber: '012'
                        recipient:
                          profile_id: '0123456789'
                          name: 'Capital James'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Education Pin Purchase of Jamb Pin UTME was successful. Pin: 3678251321392432'
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                        pin:
                          -
                            pin: '3678251321392432'
                    properties:
                      status:
                        type: string
                        example: completed
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Education Purchase'
                          service:
                            type: string
                            example: 'Jamb Pin'
                          serviceID:
                            type: string
                            example: jamb
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: UTME
                              planId:
                                type: integer
                                example: 1
                          quantity:
                            type: string
                            example: '1'
                          amount:
                            type: integer
                            example: 4700
                          amount_payable:
                            type: integer
                            example: 4700
                          phoneNumber:
                            type: string
                            example: '012'
                          recipient:
                            type: object
                            properties:
                              profile_id:
                                type: string
                                example: '0123456789'
                              name:
                                type: string
                                example: 'Capital James'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Education Pin Purchase of Jamb Pin UTME was successful. Pin: 3678251321392432'
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                          pin:
                            type: array
                            example:
                              -
                                pin: '3678251321392432'
                            items:
                              type: object
                              properties:
                                pin:
                                  type: string
                                  example: '3678251321392432'
                  -
                    description: 'WAEC Registration completed'
                    type: object
                    example:
                      status: completed
                      message: 'Transaction successful'
                      data:
                        type: 'Education Purchase'
                        service: 'WAEC Registration Pin'
                        serviceID: waec-registration
                        plan:
                          planName: 'WASSCE for Private Candidates - Second Series (2020)'
                          planId: 3
                        quantity: '2'
                        amount: 28900
                        amount_payable: 28900
                        phoneNumber: '012'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Education Pin Purchase of WAEC Registration Pin WASSCE for Private Candidates - Second Series (2020) was successful. Pin: 0100070365657400875'
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                        pin:
                          -
                            pin: '0100070365657400875'
                    properties:
                      status:
                        type: string
                        example: completed
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Education Purchase'
                          service:
                            type: string
                            example: 'WAEC Registration Pin'
                          serviceID:
                            type: string
                            example: waec-registration
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: 'WASSCE for Private Candidates - Second Series (2020)'
                              planId:
                                type: integer
                                example: 3
                          quantity:
                            type: string
                            example: '2'
                          amount:
                            type: integer
                            example: 28900
                          amount_payable:
                            type: integer
                            example: 28900
                          phoneNumber:
                            type: string
                            example: '012'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Education Pin Purchase of WAEC Registration Pin WASSCE for Private Candidates - Second Series (2020) was successful. Pin: 0100070365657400875'
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                          pin:
                            type: array
                            example:
                              -
                                pin: '0100070365657400875'
                            items:
                              type: object
                              properties:
                                pin:
                                  type: string
                                  example: '0100070365657400875'
                  -
                    description: 'WAEC Result Checker Pin completed'
                    type: object
                    example:
                      status: completed
                      message: 'Transaction successful'
                      data:
                        type: 'Education Purchase'
                        service: 'WAEC Result Checker Pin'
                        serviceID: waec
                        plan:
                          planName: WASSCE/GCE
                          planId: 4
                        quantity: '2'
                        amount: 1800
                        amount_payable: 1800
                        phoneNumber: '012'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: "Education Pin Purchase of WAEC Result Checker Pin WASSCE/GCE was successful. (1) Serial No: WRN182135587, Pin: 373820665258\n(2) Serial No: WRN182135588, Pin: 373827897584\n(3) Serial No: WRN182135589, Pin: 373833873043\n"
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                        pin:
                          -
                            serial_no: WRN182135587
                            pin: '373820665258'
                          -
                            serial_no: WRN182135588
                            pin: '373827897584'
                          -
                            serial_no: WRN182135589
                            pin: '373833873043'
                    properties:
                      status:
                        type: string
                        example: completed
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Education Purchase'
                          service:
                            type: string
                            example: 'WAEC Result Checker Pin'
                          serviceID:
                            type: string
                            example: waec
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: WASSCE/GCE
                              planId:
                                type: integer
                                example: 4
                          quantity:
                            type: string
                            example: '2'
                          amount:
                            type: integer
                            example: 1800
                          amount_payable:
                            type: integer
                            example: 1800
                          phoneNumber:
                            type: string
                            example: '012'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: "Education Pin Purchase of WAEC Result Checker Pin WASSCE/GCE was successful. (1) Serial No: WRN182135587, Pin: 373820665258\n(2) Serial No: WRN182135588, Pin: 373827897584\n(3) Serial No: WRN182135589, Pin: 373833873043\n"
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                          pin:
                            type: array
                            example:
                              -
                                serial_no: WRN182135587
                                pin: '373820665258'
                              -
                                serial_no: WRN182135588
                                pin: '373827897584'
                              -
                                serial_no: WRN182135589
                                pin: '373833873043'
                            items:
                              type: object
                              properties:
                                serial_no:
                                  type: string
                                  example: WRN182135587
                                pin:
                                  type: string
                                  example: '373820665258'
                  -
                    description: pending
                    type: object
                    example:
                      status: pending
                      message: 'Transaction successful'
                      data:
                        type: 'Education Purchase'
                        service: 'WAEC Registration Pin'
                        serviceID: waec-registration
                        plan:
                          planName: 'WASSCE for Private Candidates - Second Series (2020)'
                          planId: 3
                        quantity: '2'
                        amount: 28900
                        amount_payable: 28900
                        phoneNumber: '012'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Education Pin Purchase of WAEC Registration Pin WASSCE for Private Candidates - Second Series (2020) is currently being processed. Please check back after a while.'
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                        pin: null
                    properties:
                      status:
                        type: string
                        example: pending
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Education Purchase'
                          service:
                            type: string
                            example: 'WAEC Registration Pin'
                          serviceID:
                            type: string
                            example: waec-registration
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: 'WASSCE for Private Candidates - Second Series (2020)'
                              planId:
                                type: integer
                                example: 3
                          quantity:
                            type: string
                            example: '2'
                          amount:
                            type: integer
                            example: 28900
                          amount_payable:
                            type: integer
                            example: 28900
                          phoneNumber:
                            type: string
                            example: '012'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Education Pin Purchase of WAEC Registration Pin WASSCE for Private Candidates - Second Series (2020) is currently being processed. Please check back after a while.'
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                          pin:
                            type: string
                            example: null
                  -
                    description: failed
                    type: object
                    example:
                      status: failed
                      message: 'Transaction successful'
                      data:
                        type: 'Education Purchase'
                        service: 'WAEC Registration Pin'
                        serviceID: waec-registration
                        plan:
                          planName: 'WASSCE for Private Candidates - Second Series (2020)'
                          planId: 3
                        quantity: '2'
                        amount: 28900
                        amount_payable: 28900
                        phoneNumber: '012'
                        reference: 20241106161223NYJWDYUAYWBF
                        message: 'Education Pin Purchase of WAEC Registration Pin WASSCE for Private Candidates - Second Series (2020) failed.'
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                        pin: null
                    properties:
                      status:
                        type: string
                        example: failed
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Education Purchase'
                          service:
                            type: string
                            example: 'WAEC Registration Pin'
                          serviceID:
                            type: string
                            example: waec-registration
                          plan:
                            type: object
                            properties:
                              planName:
                                type: string
                                example: 'WASSCE for Private Candidates - Second Series (2020)'
                              planId:
                                type: integer
                                example: 3
                          quantity:
                            type: string
                            example: '2'
                          amount:
                            type: integer
                            example: 28900
                          amount_payable:
                            type: integer
                            example: 28900
                          phoneNumber:
                            type: string
                            example: '012'
                          reference:
                            type: string
                            example: 20241106161223NYJWDYUAYWBF
                          message:
                            type: string
                            example: 'Education Pin Purchase of WAEC Registration Pin WASSCE for Private Candidates - Second Series (2020) failed.'
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                          pin:
                            type: string
                            example: null
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    planId: 'The plan id field is required.'
                    quantity: 'The quantity field is required.'
                    phoneNumber: 'The phone number field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      planId:
                        type: string
                        example: 'The plan id field is required.'
                      quantity:
                        type: string
                        example: 'The quantity field is required.'
                      phoneNumber:
                        type: string
                        example: 'The phone number field is required.'
      tags:
        - Education
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the education.'
                  example: waec
                  nullable: false
                planId:
                  type: integer
                  description: 'The id of the education plan.'
                  example: 2
                  nullable: false
                quantity:
                  type: integer
                  description: 'The quantity to be purchased.'
                  example: 2
                  nullable: false
                phoneNumber:
                  type: string
                  description: 'Must start with one of <code>0</code> Must be 11 digits.'
                  example: '40812017872'
                  nullable: false
                profile_id:
                  type: string
                  description: 'nullable The jamb profile id of the user. This is required if the user is vending jamb'
                  example: '0123456789'
                  nullable: false
                recipient:
                  type: numeric
                  description: 'The phone number of the recipient.'
                  example: '0123456789'
                  nullable: false
              required:
                - serviceID
                - planId
                - quantity
                - phoneNumber
                - recipient
  /api/v1/electricity-services:
    get:
      summary: 'Electricity Services'
      operationId: electricityServices
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  message: 'Data fetched successfully'
                  data:
                    -
                      name: 'Eko Electricity Distribution Company'
                      serviceID: ekedc
                    -
                      name: 'Ibadan Electricity Distribution Company'
                      serviceID: ibedc
                properties:
                  status:
                    type: string
                    example: success
                  message:
                    type: string
                    example: 'Data fetched successfully'
                  data:
                    type: array
                    example:
                      -
                        name: 'Eko Electricity Distribution Company'
                        serviceID: ekedc
                      -
                        name: 'Ibadan Electricity Distribution Company'
                        serviceID: ibedc
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: 'Eko Electricity Distribution Company'
                        serviceID:
                          type: string
                          example: ekedc
      tags:
        - Electricity
  /api/v1/verify-meter-number:
    post:
      summary: 'Verify Meter Number'
      operationId: verifyMeterNumber
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: success
                  customerName: 'OLADIPO OLUWAFEMI'
                  customerAddress: NONE
                properties:
                  status:
                    type: string
                    example: success
                  customerName:
                    type: string
                    example: 'OLADIPO OLUWAFEMI'
                  customerAddress:
                    type: string
                    example: NONE
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Please Check your Meter Number and Try Again'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Please Check your Meter Number and Try Again'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    meterType: 'The meter type field is required.'
                    meterNumber: 'The meter number field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      meterType:
                        type: string
                        example: 'The meter type field is required.'
                      meterNumber:
                        type: string
                        example: 'The meter number field is required.'
      tags:
        - Electricity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the electricity.'
                  example: ibedc
                  nullable: false
                meterType:
                  type: string
                  description: 'The meter type.'
                  example: 'prepaid, postpaid'
                  nullable: false
                meterNumber:
                  type: numeric
                  description: 'The meter number.'
                  example: '0123456789'
                  nullable: false
              required:
                - serviceID
                - meterType
                - meterNumber
  /api/v1/electricity:
    post:
      summary: 'Vend Electricity'
      operationId: vendElectricity
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: completed
                    type: object
                    example:
                      status: completed
                      message: 'Transaction successful'
                      data:
                        type: 'Electricity Purchase'
                        service: 'Ibadan Electricity Distribution Company'
                        serviceID: ibedc
                        amount: '1000'
                        amount_payable: '1000.00'
                        phone_number: '08161144693'
                        recipient:
                          meter_number: '1111111111111'
                          meter_type: prepaid
                          name: 'OLADIPO OLUWAFEMI'
                          address: NONE
                        reference: 20241108123542FF2FLCNIVVL6
                        message: 'Electricity Purchase of Ibadan Electricity Distribution Company (Prepaid) ₦1000 for 1111111111111 was successful. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                        token: ' 0948  8945  8115  3789  5170  '
                        token_unit: 55.03kwH
                    properties:
                      status:
                        type: string
                        example: completed
                      message:
                        type: string
                        example: 'Transaction successful'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Electricity Purchase'
                          service:
                            type: string
                            example: 'Ibadan Electricity Distribution Company'
                          serviceID:
                            type: string
                            example: ibedc
                          amount:
                            type: string
                            example: '1000'
                          amount_payable:
                            type: string
                            example: '1000.00'
                          phone_number:
                            type: string
                            example: '08161144693'
                          recipient:
                            type: object
                            properties:
                              meter_number:
                                type: string
                                example: '1111111111111'
                              meter_type:
                                type: string
                                example: prepaid
                              name:
                                type: string
                                example: 'OLADIPO OLUWAFEMI'
                              address:
                                type: string
                                example: NONE
                          reference:
                            type: string
                            example: 20241108123542FF2FLCNIVVL6
                          message:
                            type: string
                            example: 'Electricity Purchase of Ibadan Electricity Distribution Company (Prepaid) ₦1000 for 1111111111111 was successful. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                          token:
                            type: string
                            example: ' 0948  8945  8115  3789  5170  '
                          token_unit:
                            type: string
                            example: 55.03kwH
                  -
                    description: pending
                    type: object
                    example:
                      status: pending
                      message: 'Transaction pending'
                      data:
                        type: 'Electricity Purchase'
                        service: 'Ibadan Electricity Distribution Company'
                        serviceID: ibedc
                        amount: '1000'
                        amount_payable: '1000.00'
                        phone_number: '08161144693'
                        recipient:
                          meter_number: '1111111111111'
                          meter_type: prepaid
                          name: 'OLADIPO OLUWAFEMI'
                          address: NONE
                        reference: 20241108123542FF2FLCNIVVL6
                        message: 'Electricity Purchase of Ibadan Electricity Distribution Company (Prepaid) ₦1000 for 1111111111111 is currently being processed. Please check back after a while.. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                        token: null
                        token_unit: null
                    properties:
                      status:
                        type: string
                        example: pending
                      message:
                        type: string
                        example: 'Transaction pending'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Electricity Purchase'
                          service:
                            type: string
                            example: 'Ibadan Electricity Distribution Company'
                          serviceID:
                            type: string
                            example: ibedc
                          amount:
                            type: string
                            example: '1000'
                          amount_payable:
                            type: string
                            example: '1000.00'
                          phone_number:
                            type: string
                            example: '08161144693'
                          recipient:
                            type: object
                            properties:
                              meter_number:
                                type: string
                                example: '1111111111111'
                              meter_type:
                                type: string
                                example: prepaid
                              name:
                                type: string
                                example: 'OLADIPO OLUWAFEMI'
                              address:
                                type: string
                                example: NONE
                          reference:
                            type: string
                            example: 20241108123542FF2FLCNIVVL6
                          message:
                            type: string
                            example: 'Electricity Purchase of Ibadan Electricity Distribution Company (Prepaid) ₦1000 for 1111111111111 is currently being processed. Please check back after a while.. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                          token:
                            type: string
                            example: null
                          token_unit:
                            type: string
                            example: null
                  -
                    description: failed
                    type: object
                    example:
                      status: failed
                      message: 'Transaction failed'
                      data:
                        type: 'Electricity Purchase'
                        service: 'Ibadan Electricity Distribution Company'
                        serviceID: ibedc
                        amount: '1000'
                        amount_payable: '1000.00'
                        phone_number: '08161144693'
                        recipient:
                          meter_number: '1111111111111'
                          meter_type: prepaid
                          name: 'OLADIPO OLUWAFEMI'
                          address: NONE
                        reference: 20241108123542FF2FLCNIVVL6
                        message: 'Electricity Purchase of Ibadan Electricity Distribution Company (Prepaid) ₦1000 for 1111111111111 failed. '
                        api_response: 'API response goes here'
                        created_at: '2025-08-18T17:38:47.000000Z'
                        token: null
                        token_unit: null
                    properties:
                      status:
                        type: string
                        example: failed
                      message:
                        type: string
                        example: 'Transaction failed'
                      data:
                        type: object
                        properties:
                          type:
                            type: string
                            example: 'Electricity Purchase'
                          service:
                            type: string
                            example: 'Ibadan Electricity Distribution Company'
                          serviceID:
                            type: string
                            example: ibedc
                          amount:
                            type: string
                            example: '1000'
                          amount_payable:
                            type: string
                            example: '1000.00'
                          phone_number:
                            type: string
                            example: '08161144693'
                          recipient:
                            type: object
                            properties:
                              meter_number:
                                type: string
                                example: '1111111111111'
                              meter_type:
                                type: string
                                example: prepaid
                              name:
                                type: string
                                example: 'OLADIPO OLUWAFEMI'
                              address:
                                type: string
                                example: NONE
                          reference:
                            type: string
                            example: 20241108123542FF2FLCNIVVL6
                          message:
                            type: string
                            example: 'Electricity Purchase of Ibadan Electricity Distribution Company (Prepaid) ₦1000 for 1111111111111 failed. '
                          api_response:
                            type: string
                            example: 'API response goes here'
                          created_at:
                            type: string
                            example: '2025-08-18T17:38:47.000000Z'
                          token:
                            type: string
                            example: null
                          token_unit:
                            type: string
                            example: null
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Ibadan Electricity Distribution Company Vending service currently unavailable.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Ibadan Electricity Distribution Company Vending service currently unavailable.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  errors:
                    serviceID: 'The service i d field is required.'
                    meterType: 'The meter type field is required.'
                    meterNumber: 'The meter number field is required.'
                    amount: 'The amount field is required.'
                    phoneNumber: 'The phone number field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  errors:
                    type: object
                    properties:
                      serviceID:
                        type: string
                        example: 'The service i d field is required.'
                      meterType:
                        type: string
                        example: 'The meter type field is required.'
                      meterNumber:
                        type: string
                        example: 'The meter number field is required.'
                      amount:
                        type: string
                        example: 'The amount field is required.'
                      phoneNumber:
                        type: string
                        example: 'The phone number field is required.'
      tags:
        - Electricity
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                serviceID:
                  type: string
                  description: 'The service ID of the electricity.'
                  example: ibedc
                  nullable: false
                meterType:
                  type: string
                  description: 'The meter type.'
                  example: 'prepaid, postpaid'
                  nullable: false
                meterNumber:
                  type: numeric
                  description: 'The meter number.'
                  example: '0123456789'
                  nullable: false
                amount:
                  type: integer
                  description: 'The amount to be purchased.'
                  example: 1000
                  nullable: false
                phoneNumber:
                  type: numeric
                  description: 'The phone number of the recipient.'
                  example: '0123456789'
                  nullable: false
              required:
                - serviceID
                - meterType
                - meterNumber
                - amount
                - phoneNumber
  /api/msorg/api/data:
    post:
      summary: 'Vend Data'
      operationId: vendData
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: completed
                    type: object
                    example:
                      id: 20250718132554KM9AEOVYBATR
                      customer_ref: ''
                      network: mtn-data
                      balance_before: 36387
                      balance_after: 36037
                      mobile_number: '08161144693'
                      message: 'Data Purchase of Mtn - 500mb for 08161144693 was successful. '
                      api_response: "Y'ello! You have gifted 500MB to 2348161144693. Share link https://mtnapp.page.link/myMTNNGApp with 2348161144693 to download the new MyMTN app for exciting offers.. "
                      plan: 53
                      Status: successful
                      plan_network: Mtn
                      plan_name: 500mb
                      plan_amount: ₦350
                      created_date: '2025-07-18T12:25:54.000000Z'
                      Ported_number: true
                    properties:
                      id:
                        type: string
                        example: 20250718132554KM9AEOVYBATR
                      customer_ref:
                        type: string
                        example: ''
                      network:
                        type: string
                        example: mtn-data
                      balance_before:
                        type: integer
                        example: 36387
                      balance_after:
                        type: integer
                        example: 36037
                      mobile_number:
                        type: string
                        example: '08161144693'
                      message:
                        type: string
                        example: 'Data Purchase of Mtn - 500mb for 08161144693 was successful. '
                      api_response:
                        type: string
                        example: "Y'ello! You have gifted 500MB to 2348161144693. Share link https://mtnapp.page.link/myMTNNGApp with 2348161144693 to download the new MyMTN app for exciting offers.. "
                      plan:
                        type: integer
                        example: 53
                      Status:
                        type: string
                        example: successful
                      plan_network:
                        type: string
                        example: Mtn
                      plan_name:
                        type: string
                        example: 500mb
                      plan_amount:
                        type: string
                        example: ₦350
                      created_date:
                        type: string
                        example: '2025-07-18T12:25:54.000000Z'
                      Ported_number:
                        type: boolean
                        example: true
                  -
                    description: pending
                    type: object
                    example:
                      id: 20250718132436QDIZ6SYU0HTK
                      customer_ref: ''
                      network: mtn-data
                      balance_before: 36387
                      balance_after: 36037
                      mobile_number: '08011111111'
                      message: 'Data Purchase of Mtn - 500mb for 08011111111 failed (Sorry, the number is not an MTN number. Thank you!. ). '
                      api_response: 'Sorry, the number is not an MTN number. Thank you!. '
                      plan: 53
                      Status: pending
                      plan_network: Mtn
                      plan_name: 500mb
                      plan_amount: ₦350
                      created_date: '2025-07-18T12:24:36.000000Z'
                      Ported_number: true
                    properties:
                      id:
                        type: string
                        example: 20250718132436QDIZ6SYU0HTK
                      customer_ref:
                        type: string
                        example: ''
                      network:
                        type: string
                        example: mtn-data
                      balance_before:
                        type: integer
                        example: 36387
                      balance_after:
                        type: integer
                        example: 36037
                      mobile_number:
                        type: string
                        example: '08011111111'
                      message:
                        type: string
                        example: 'Data Purchase of Mtn - 500mb for 08011111111 failed (Sorry, the number is not an MTN number. Thank you!. ). '
                      api_response:
                        type: string
                        example: 'Sorry, the number is not an MTN number. Thank you!. '
                      plan:
                        type: integer
                        example: 53
                      Status:
                        type: string
                        example: pending
                      plan_network:
                        type: string
                        example: Mtn
                      plan_name:
                        type: string
                        example: 500mb
                      plan_amount:
                        type: string
                        example: ₦350
                      created_date:
                        type: string
                        example: '2025-07-18T12:24:36.000000Z'
                      Ported_number:
                        type: boolean
                        example: true
                  -
                    description: failed
                    type: object
                    example:
                      id: 20250718132436QDIZ6SYU0HTK
                      customer_ref: ''
                      network: mtn-data
                      balance_before: 36387
                      balance_after: 36037
                      mobile_number: '08011111111'
                      message: 'Data Purchase of Mtn - 500mb for 08011111111 failed (Sorry, the number is not an MTN number. Thank you!. ). '
                      api_response: 'Sorry, the number is not an MTN number. Thank you!. '
                      plan: 53
                      Status: failed
                      plan_network: Mtn
                      plan_name: 500mb
                      plan_amount: ₦350
                      created_date: '2025-07-18T12:24:36.000000Z'
                      Ported_number: true
                    properties:
                      id:
                        type: string
                        example: 20250718132436QDIZ6SYU0HTK
                      customer_ref:
                        type: string
                        example: ''
                      network:
                        type: string
                        example: mtn-data
                      balance_before:
                        type: integer
                        example: 36387
                      balance_after:
                        type: integer
                        example: 36037
                      mobile_number:
                        type: string
                        example: '08011111111'
                      message:
                        type: string
                        example: 'Data Purchase of Mtn - 500mb for 08011111111 failed (Sorry, the number is not an MTN number. Thank you!. ). '
                      api_response:
                        type: string
                        example: 'Sorry, the number is not an MTN number. Thank you!. '
                      plan:
                        type: integer
                        example: 53
                      Status:
                        type: string
                        example: failed
                      plan_network:
                        type: string
                        example: Mtn
                      plan_name:
                        type: string
                        example: 500mb
                      plan_amount:
                        type: string
                        example: ₦350
                      created_date:
                        type: string
                        example: '2025-07-18T12:24:36.000000Z'
                      Ported_number:
                        type: boolean
                        example: true
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  status: error
                  message: 'Validation errors'
                  error:
                    - 'The network field is required.'
                    - 'The plan field is required.'
                    - 'The mobile number field is required.'
                    - 'The ported number field is required.'
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: 'Validation errors'
                  error:
                    type: array
                    example:
                      - 'The network field is required.'
                      - 'The plan field is required.'
                      - 'The mobile number field is required.'
                      - 'The ported number field is required.'
                    items:
                      type: string
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                network:
                  type: string
                  description: 'The service ID of the data network.'
                  example: mtn-data
                  nullable: false
                plan:
                  type: integer
                  description: 'The id of the data plan.'
                  example: 2
                  nullable: false
                mobile_number:
                  type: numeric
                  description: 'The phone number of the recipient.'
                  example: '0123456789'
                  nullable: false
                Ported_number:
                  type: string
                  description: ''
                  example: aut
                  nullable: false
              required:
                - network
                - plan
                - mobile_number
                - Ported_number
      security: []
tags:
  -
    name: Authentication
    description: ''
  -
    name: Airtime
    description: ''
  -
    name: 'Airtime To Cash'
    description: ''
  -
    name: Cable
    description: ''
  -
    name: Data
    description: ''
  -
    name: Education
    description: ''
  -
    name: Electricity
    description: ''
  -
    name: Endpoints
    description: ''
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: 'You can retrieve your API key and secret by visiting the [developer section](/developer) in your account.'
security:
  -
    default: []
