Interswitch · Capability

Interswitch Recurring Payments API — Subscriptions

Tokenize cards and charge them on schedule for subscription billing.

Interswitch Recurring Payments API — Subscriptions is a Naftiko capability published by Interswitch, one of 12 capabilities the APIs.io network indexes for this provider. It bundles 2 operations across the POST method rooted at /v1/recurring.

The capability includes 2 state-changing operations. Lead operation: Tokenize a card for recurring charges. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Interswitch, Recurring, and Subscriptions.

Run with Naftiko InterswitchRecurringSubscriptions

What You Can Do

POST
Tokenizecardforrecurring
/v1/recurring/tokens
POST
Chargerecurringtoken
/v1/recurring/charges

MCP Tools

interswitch-tokenize-card-for-recurring

Tokenize a card for recurring charges.

interswitch-charge-recurring-token

Charge a previously tokenized card.

Capability Spec

recurring-payments-subscriptions.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Interswitch Recurring Payments API — Subscriptions
  description: Tokenize cards and charge them on schedule for subscription billing.
  tags:
  - Interswitch
  - Recurring
  - Subscriptions
  created: '2026-05-24'
  modified: '2026-05-24'
binds:
- namespace: env
  keys:
    INTERSWITCH_BEARER_TOKEN: INTERSWITCH_BEARER_TOKEN
capability:
  consumes:
  - type: http
    namespace: recurring-payments-subscriptions
    baseUri: https://qa.interswitchng.com
    resources:
    - name: tokenize
      path: /api/v2/purchases/validations/recurrents
      operations:
      - name: tokenizeCardForRecurring
        method: POST
        description: Tokenize a card for recurring charges.
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: body, in: body, type: object, required: true }
    - name: charge
      path: /api/v2/purchases/recurrents
      operations:
      - name: chargeRecurringToken
        method: POST
        description: Charge a previously tokenized card.
        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: recurring-payments-subscriptions-rest
    port: 8080
    resources:
    - path: /v1/recurring/tokens
      name: tokenize
      operations:
      - method: POST
        name: tokenizeCardForRecurring
        call: recurring-payments-subscriptions.tokenizeCardForRecurring
        with: { body: rest.body }
        outputParameters: [{ type: object, mapping: $. }]
    - path: /v1/recurring/charges
      name: charge
      operations:
      - method: POST
        name: chargeRecurringToken
        call: recurring-payments-subscriptions.chargeRecurringToken
        with: { body: rest.body }
        outputParameters: [{ type: object, mapping: $. }]
  - type: mcp
    namespace: recurring-payments-subscriptions-mcp
    port: 9090
    transport: http
    tools:
    - name: interswitch-tokenize-card-for-recurring
      description: Tokenize a card for recurring charges.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: recurring-payments-subscriptions.tokenizeCardForRecurring
      with: { body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]
    - name: interswitch-charge-recurring-token
      description: Charge a previously tokenized card.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: recurring-payments-subscriptions.chargeRecurringToken
      with: { body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]