Interswitch · Capability

Interswitch Card 360 API — Cards

Card lifecycle management — create, get, block, unblock, set PIN, balance, link, validate.

Interswitch Card 360 API — Cards is a Naftiko capability published by Interswitch, one of 12 capabilities the APIs.io network indexes for this provider. It bundles 8 operations.

The capability includes 3 read-only operations and 5 state-changing operations. Lead operation: Issue a new Verve, debit, or prepaid card. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Interswitch, Cards, Verve, and Issuing.

Run with Naftiko InterswitchCardsVerveIssuing

MCP Tools

interswitch-create-card

Issue a new Verve, debit, or prepaid card.

interswitch-get-card

Get a card by ID.

read-only idempotent
interswitch-block-card

Block a card.

idempotent
interswitch-unblock-card

Unblock a card.

idempotent
interswitch-set-card-pin

Set or reset card PIN.

interswitch-get-card-balance

Get card balance.

read-only idempotent
interswitch-link-card

Link a card PAN to a customer.

interswitch-validate-card

Validate a card PAN.

read-only idempotent

Capability Spec

card-360-cards.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Interswitch Card 360 API — Cards
  description: Card lifecycle management — create, get, block, unblock, set PIN, balance, link, validate.
  tags:
  - Interswitch
  - Cards
  - Verve
  - Issuing
  created: '2026-05-24'
  modified: '2026-05-24'
binds:
- namespace: env
  keys:
    INTERSWITCH_BEARER_TOKEN: INTERSWITCH_BEARER_TOKEN
capability:
  consumes:
  - type: http
    namespace: card-360-cards
    baseUri: https://sandbox.interswitchng.com
    resources:
    - name: cards
      path: /card-360/api/v1/cards
      operations:
      - name: createCard
        method: POST
        description: Issue a new card.
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: body, in: body, type: object, required: true }
    - name: card-by-id
      path: /card-360/api/v1/cards/{cardId}
      operations:
      - name: getCard
        method: GET
        description: Get a card by ID.
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: cardId, in: path, type: string, required: true }
    - name: card-block
      path: /card-360/api/v1/cards/{cardId}/block
      operations:
      - name: blockCard
        method: POST
        description: Block a card.
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: cardId, in: path, type: string, required: true }
        - { name: body, in: body, type: object, required: false }
    - name: card-unblock
      path: /card-360/api/v1/cards/{cardId}/unblock
      operations:
      - name: unblockCard
        method: POST
        description: Unblock a card.
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: cardId, in: path, type: string, required: true }
    - name: card-pin
      path: /card-360/api/v1/cards/{cardId}/pin
      operations:
      - name: setCardPin
        method: POST
        description: Set or reset card PIN.
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: cardId, in: path, type: string, required: true }
        - { name: body, in: body, type: object, required: true }
    - name: card-balance
      path: /card-360/api/v1/cards/{cardId}/balance
      operations:
      - name: getCardBalance
        method: GET
        description: Get card balance.
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: cardId, in: path, type: string, required: true }
    - name: card-link
      path: /card-360/api/v1/cards/link
      operations:
      - name: linkCard
        method: POST
        description: Link an existing card PAN to a customer.
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: body, in: body, type: object, required: true }
    - name: card-validate
      path: /card-360/api/v1/cards/validate
      operations:
      - name: validateCard
        method: POST
        description: Validate a card PAN.
        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: mcp
    namespace: card-360-cards-mcp
    port: 9090
    transport: http
    tools:
    - name: interswitch-create-card
      description: Issue a new Verve, debit, or prepaid card.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: card-360-cards.createCard
      with: { body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]
    - name: interswitch-get-card
      description: Get a card by ID.
      hints: { readOnly: true, destructive: false, idempotent: true }
      call: card-360-cards.getCard
      with: { cardId: tools.cardId }
      outputParameters: [{ type: object, mapping: $. }]
    - name: interswitch-block-card
      description: Block a card.
      hints: { readOnly: false, destructive: true, idempotent: true }
      call: card-360-cards.blockCard
      with: { cardId: tools.cardId, body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]
    - name: interswitch-unblock-card
      description: Unblock a card.
      hints: { readOnly: false, destructive: false, idempotent: true }
      call: card-360-cards.unblockCard
      with: { cardId: tools.cardId }
      outputParameters: [{ type: object, mapping: $. }]
    - name: interswitch-set-card-pin
      description: Set or reset card PIN.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: card-360-cards.setCardPin
      with: { cardId: tools.cardId, body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]
    - name: interswitch-get-card-balance
      description: Get card balance.
      hints: { readOnly: true, destructive: false, idempotent: true }
      call: card-360-cards.getCardBalance
      with: { cardId: tools.cardId }
      outputParameters: [{ type: object, mapping: $. }]
    - name: interswitch-link-card
      description: Link a card PAN to a customer.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: card-360-cards.linkCard
      with: { body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]
    - name: interswitch-validate-card
      description: Validate a card PAN.
      hints: { readOnly: true, destructive: false, idempotent: true }
      call: card-360-cards.validateCard
      with: { body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]