naftiko: 1.0.0-alpha2 info: label: Interswitch Airtime Recharge API — Quickteller description: Direct airtime and e-pin recharge for MTN, Airtel, Glo, and 9mobile via the Quickteller airtime category. tags: - Interswitch - Airtime - Quickteller created: '2026-05-24' modified: '2026-05-24' binds: - namespace: env keys: INTERSWITCH_BEARER_TOKEN: INTERSWITCH_BEARER_TOKEN capability: consumes: - type: http namespace: airtime-recharge-quickteller baseUri: https://sandbox.interswitchng.com resources: - name: airtime-telcos path: /api/v2/quickteller/categorys/4/billers operations: - name: listAirtimeTelcos method: GET description: List airtime telco billers (category 4). outputRawFormat: json outputParameters: [{ name: result, type: array, value: $. }] - name: airtime-denominations path: /api/v2/quickteller/billers/{billerId}/paymentitems operations: - name: listAirtimeDenominations method: GET description: List airtime denominations for a telco. outputRawFormat: json outputParameters: [{ name: result, type: array, value: $. }] inputParameters: - { name: billerId, in: path, type: integer, required: true } - name: recharge path: /api/v2/quickteller/payments/advices operations: - name: rechargeAirtime method: POST description: Submit a direct airtime recharge. outputRawFormat: json outputParameters: [{ name: result, type: object, value: $. }] inputParameters: - { name: body, in: body, type: object, required: true } authentication: type: apikey key: Authorization value: 'Bearer {{env.INTERSWITCH_BEARER_TOKEN}}' placement: header exposes: - type: rest namespace: airtime-recharge-quickteller-rest port: 8080 resources: - path: /v1/airtime/telcos name: airtime-telcos operations: - method: GET name: listAirtimeTelcos call: airtime-recharge-quickteller.listAirtimeTelcos outputParameters: [{ type: array, mapping: $. }] - path: /v1/airtime/billers/{billerId}/denominations name: airtime-denominations operations: - method: GET name: listAirtimeDenominations call: airtime-recharge-quickteller.listAirtimeDenominations with: { billerId: rest.path.billerId } outputParameters: [{ type: array, mapping: $. }] - path: /v1/airtime/recharge name: recharge operations: - method: POST name: rechargeAirtime call: airtime-recharge-quickteller.rechargeAirtime with: { body: rest.body } outputParameters: [{ type: object, mapping: $. }] - type: mcp namespace: airtime-recharge-quickteller-mcp port: 9090 transport: http tools: - name: interswitch-list-airtime-telcos description: List airtime telco billers. hints: { readOnly: true, destructive: false, idempotent: true } call: airtime-recharge-quickteller.listAirtimeTelcos outputParameters: [{ type: array, mapping: $. }] - name: interswitch-list-airtime-denominations description: List denominations for a telco. hints: { readOnly: true, destructive: false, idempotent: true } call: airtime-recharge-quickteller.listAirtimeDenominations with: { billerId: tools.billerId } outputParameters: [{ type: array, mapping: $. }] - name: interswitch-recharge-airtime description: Submit a direct airtime recharge. hints: { readOnly: false, destructive: false, idempotent: false } call: airtime-recharge-quickteller.rechargeAirtime with: { body: tools.body } outputParameters: [{ type: object, mapping: $. }]