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: cardsApi
url: ../openapi/interswitch-cards-api-openapi.yml
type: openapi
- name: pinApi
url: ../openapi/interswitch-pin-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
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.