Interswitch · Arazzo Workflow

Interswitch Issue And Activate Card

Version 1.0.0

Issue a new card to a customer, set its PIN, then read back the activated card.

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

Provider

interswitch

Workflows

issue-and-activate-card
Create a card, set its PIN, and confirm activation.
Issues a new card to a customer profile, sets the cardholder PIN, and reads back the card to confirm it is active.
3 steps inputs: accessToken, cardType, customerId, customerName, pinBlock, productCode outputs: cardId, cardStatus
1
createCard
createCard
Issue a new card to the customer profile.
2
setPin
setCardPin
Set the cardholder PIN on the newly issued card using the PIN block.
3
confirmCard
getCard
Read back the card to confirm its status after PIN set.

Source API Descriptions

Arazzo Workflow Specification

interswitch-issue-and-activate-card-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Interswitch Issue And Activate Card
  summary: Issue a new card to a customer, set its PIN, then read back the activated card.
  description: >-
    Card issuance lifecycle on the Card 360 issuer-processor. The workflow
    creates a new Verve, debit, or prepaid card for a customer, sets the
    cardholder PIN using an ISO-9564 PIN block, and re-reads the card to confirm
    its status. The cardId from issuance is threaded into the PIN and read-back
    steps. All requests are Bearer-authenticated.
  version: 1.0.0
sourceDescriptions:
- name: card360Api
  url: ../openapi/interswitch-card-360-api-openapi.yml
  type: openapi
workflows:
- workflowId: issue-and-activate-card
  summary: Create a card, set its PIN, and confirm activation.
  description: >-
    Issues a new card to a customer profile, sets the cardholder PIN, and reads
    back the card to confirm it is active.
  inputs:
    type: object
    required:
    - accessToken
    - customerId
    - cardType
    - productCode
    - pinBlock
    properties:
      accessToken:
        type: string
        description: Bearer access token from the Passport OAuth token endpoint.
      customerId:
        type: string
        description: Customer profile the card is issued to.
      cardType:
        type: string
        description: Card type to issue (debit, prepaid, or verve).
      productCode:
        type: string
        description: Card product code on the issuer.
      customerName:
        type: string
        description: Optional cardholder name to emboss.
      pinBlock:
        type: string
        description: ISO-9564 PIN block for the new card PIN.
  steps:
  - stepId: createCard
    description: Issue a new card to the customer profile.
    operationId: createCard
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    requestBody:
      contentType: application/json
      payload:
        customerId: $inputs.customerId
        cardType: $inputs.cardType
        productCode: $inputs.productCode
        customerName: $inputs.customerName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      cardId: $response.body#/cardId
      cardPanMasked: $response.body#/cardPanMasked
      status: $response.body#/status
  - stepId: setPin
    description: Set the cardholder PIN on the newly issued card using the PIN block.
    operationId: setCardPin
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: cardId
      in: path
      value: $steps.createCard.outputs.cardId
    requestBody:
      contentType: application/json
      payload:
        pinBlock: $inputs.pinBlock
    successCriteria:
    - condition: $statusCode == 200
  - stepId: confirmCard
    description: Read back the card to confirm its status after PIN set.
    operationId: getCard
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.accessToken
    - name: cardId
      in: path
      value: $steps.createCard.outputs.cardId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      cardScheme: $response.body#/cardScheme
      expiryMonth: $response.body#/expiryMonth
      expiryYear: $response.body#/expiryYear
  outputs:
    cardId: $steps.createCard.outputs.cardId
    cardStatus: $steps.confirmCard.outputs.status