Interswitch · Arazzo Workflow

Interswitch Lending Enroll Payment Method

Version 1.0.0

Generate a lending payment token, confirm it with an OTP, then debit a loan repayment with it.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub PaymentsPayment InfrastructureCard NetworkVerveQuicktellerWebpayBills PaymentTransfersLendingFintechAfricaNigeriaArazzoWorkflows

Provider

interswitch

Workflows

enroll-and-debit-repayment
Tokenize a repayment card, confirm OTP, and debit a loan repayment.
Generates a lending payment token, validates the OTP to obtain a confirmed payment method, and debits a repayment against the loan.
3 steps inputs: accessToken, amount, cardPan, customerId, cvv, expiryMonth, expiryYear, loanId, otp outputs: paymentMethodId, paymentMethodStatus
1
generateToken
Generate a payment token from the borrower's card. Returns a pendingToken and an OTP challenge flag.
2
validateOtp
Validate the OTP to confirm the token and obtain a reusable payment method.
3
debitRepayment
Debit a loan repayment using the confirmed payment method.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Interswitch Lending Enroll Payment Method
  summary: Generate a lending payment token, confirm it with an OTP, then debit a loan repayment with it.
  description: >-
    Repayment-method enrollment flow on the Lending API. The workflow generates a
    payment token from the borrower's card (which returns an OTP challenge),
    validates the OTP to confirm a reusable paymentMethodId, and then debits a
    loan repayment using that payment method. The pendingToken is threaded from
    generation into validation, and the confirmed paymentMethodId into the debit.
    All requests are Bearer-authenticated.
  version: 1.0.0
sourceDescriptions:
- name: loansApi
  url: ../openapi/interswitch-loans-api-openapi.yml
  type: openapi
- name: paymentsApi
  url: ../openapi/interswitch-payments-api-openapi.yml
  type: openapi
workflows:
- workflowId: enroll-and-debit-repayment
  summary: Tokenize a repayment card, confirm OTP, and debit a loan repayment.
  description: >-
    Generates a lending payment token, validates the OTP to obtain a confirmed
    payment method, and debits a repayment against the loan.
  inputs:
    type: object
    required:
    - accessToken
    - loanId
    - customerId
    - cardPan
    - otp
    - amount
    properties:
      accessToken:
        type: string
        description: Bearer access token from the Passport OAuth token endpoint.
      loanId:
        type: string
        description: The loan to debit the repayment from.
      customerId:
        type: string
        description: Borrower the payment method belongs to.
      cardPan:
        type: string
        description: Card PAN to tokenize as a repayment method.
      expiryMonth:
        type: string
        description: Card expiry month.
      expiryYear:
        type: string
        description: Card expiry year.
      cvv:
        type: string
        description: Card CVV.
      otp:
        type: string
        description: OTP supplied by the borrower to confirm the token.
      amount:
        type: integer
        description: Repayment amount in minor currency units.
  steps:
  - stepId: generateToken
    description: >-
      Generate a payment token from the borrower's card. Returns a pendingToken
      and an OTP challenge flag.
    operationId: generateLendingPaymentToken
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    requestBody:
      contentType: application/json
      payload:
        customerId: $inputs.customerId
        cardPan: $inputs.cardPan
        expiryMonth: $inputs.expiryMonth
        expiryYear: $inputs.expiryYear
        cvv: $inputs.cvv
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      pendingToken: $response.body#/pendingToken
      otpRequired: $response.body#/otpRequired
  - stepId: validateOtp
    description: Validate the OTP to confirm the token and obtain a reusable payment method.
    operationId: validateLendingPaymentTokenOtp
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    requestBody:
      contentType: application/json
      payload:
        pendingToken: $steps.generateToken.outputs.pendingToken
        otp: $inputs.otp
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      paymentMethodId: $response.body#/paymentMethodId
      status: $response.body#/status
  - stepId: debitRepayment
    description: Debit a loan repayment using the confirmed payment method.
    operationId: debitLoanRepayment
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: loanId
      in: path
      value: $inputs.loanId
    requestBody:
      contentType: application/json
      payload:
        amount: $inputs.amount
        paymentMethodId: $steps.validateOtp.outputs.paymentMethodId
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    paymentMethodId: $steps.validateOtp.outputs.paymentMethodId
    paymentMethodStatus: $steps.validateOtp.outputs.status

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/interswitch-lending-enroll-payment-method-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.