Other Supported Features
1. Closed Loop Cards Integration
Below deep-links will be used to integrate different closed loop cards with our payment application.
Use Case - To add support for integration of below closed loop card related transactions
- Get Card Info
- Get Card Info/UUID of Closed Loop Card(DeepLink :- paytmedc://readCard)
readCard API is used to read closed loop card serial number or UUID. For Closed loop cards, flowType=closed parameter must be included in the request otherwise transaction will be treated for Open loop cards. cardMfType parameter must need to be set otherwise the transaction will not be processed. Different values of cardMfType are defined in the parameters table. In case of Closed loop cards the card number in response will not be masked, it will be a simple Card serial number or UUID.
Sample-
Request URL for Closed Loop card

paytmedc://readCard?callbackAction=com.paytm.pos.payment.CALL_BACK_RESULT&stackClear=false&callbackPkg=com.paytm.sampledeeplinkapp&callbackDl=sampledeeplink://readCard&orderId=12345&flowType=closed&cardMfType=MF&callbackIsService=false
Response URL for Success

sampledeeplink:
Response URL for Failure

sampledeeplink://readCard?status=FAIL&errorCode=-2&errorMsg=card%20%read %20%timeout&orderId=12345
2. qSparc Retail and Transit Integration for Open Loop Cards
This part is introduced to support all qSparc-related transactions for open / closed loop cards using Third-Party Apps.
Use Cases - To add support for integration of the below qSparc-related transactions
- Get Card Info for Retail and Transit
- Get the Global balance of the card
- Add Money to global balance using Cash / Account for Retail and Transit
- Update global balance of card (for TopUp done using NetBanking, wallet, etc.)
- Update CSA data for Open loop cards(for Penalty deduction)
- Read and Update Closed loop card data.
- Create NCMC Services - CSA & OSA
Get Card Info for Retail and Transit with Open and Closed Loop Card:-
readCard API is to read card data according to the tags specified in the request. For Closed loop cards, cardType=CLOSED and blockNum parameters must be included in the request otherwise transactions will be treated for Open loop cards.
Sample-
Request for Open Loop Card

paytmedc://readCard?callbackAction=com.paytm.pos.payment.CALL_BACK_RESULT&stackClear=false&callbackPkg=com.paytm.sampledeeplinkapp&callbackDl=sampledeeplink://readCard&requestTags=5A,DF33&orderId=12345&flowType=transit&callbackIsService=false&isOsa=true
Request for Closed Loop card

paytmedc://readCard?callbackAction=com.paytm.pos.payment.CALL_BACK_RESULT&stackClear=false&callbackPkg=com.paytm.sampledeeplinkapp&callbackDl=sampledeeplink://readCard&requestTags=5A,DF33&orderId=12345&flowType=transit&cardType=CLOSED&blockNum=2&callbackIsService=false&isOsa=true
Response for Success

sampledeeplink://readCard?status=SUCCESS&cardNo=608326%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A20017&responseTags=f6f79de29bca7d099d77b04a20a1167066ba8104230bd924bf1bf5c420148dbf%2C011010AC00C39E930....&orderId=12345&isOsa=true
Response for Failure

sampledeeplink://readCard?status=FAIL&errorCode=1002&errorMsg=card%20%read%20%timeout&orderId=12345&isOsa=true
3. Add Money with Cash / Linked Account for Retail or Transit
addMoney API is used for adding money to the Global balance of the card using Cash or the linked account. For cash, serviceType= CASH, and for the account, serviceType = ACCOUNT.
Sample-
Request

paytmedc://addMoney?callbackAction=com.paytm.pos.payment.CALL_BACK_RESULT&stackClear=false&callbackPkg=com.paytm.sampledeeplinkapp&callbackDl=sampledeeplink://addMoney&serviceType=CASH&amount=200&orderId=54321&cardNoSHA=64c553a3fa16961c5fa37d4004a032233beb8cca085e2cba56556e5396779c3c&flowType=transit¶m1=a¶m2=b&callbackIsService=false
Response for Success

sampledeeplink://addMoney?amount=200&txnid=20221031111212800110168887003398471&status=SUCCESS&cardNo=%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A20249&orderId=54321&isOsa=false&responsePayMode=CARD&acquirer=PEDC&cardBalance=949200&RRN=230412901098&stan=001119&txnDate=31%20Oct%202022%2C%2012%3A07%3A46%20PM&authCode=120707&tid=14015808&aid=A0000005241010&cardScheme=Rupay%20Prepaid&issuingBank=ICICI&bankResponseCode=00&bankMid=5PT000000000026&bankTid=5P002524&bankOfferApplied=false&subventionCreated=false¶m1=a¶m2=b
Response for Failure

sampledeeplink://addMoney?amount=200&cardNo=null&txnId=fdt&status=FAIL&errorCode=-4&errorMsg=Same%20card%20is%20not%20used.%20Please%20use%20the%20original%20card&orderId=fdt&isOsa=false&cardBalance=null¶m1=a¶m2=b
4. Update balance for Retail or Transit
updateBalance API is used to update Global balance of card in case money has already been added to the host account using NetBanking or other third party services.
Sample-
Request

paytmedc://updateBalance?callbackAction=com.paytm.pos.payment.CALL_BACK_RESULT&stackClear=false&callbackPkg=com.paytm.sampledeeplinkapp&callbackDl=sampledeeplink://balanceUpdate&callbackIsService=false&orderId=54321&cardNoSHA=d825fc6a5cc8b31738799cb0747255c5bd919d0d4a1738934dc4a01d48262ca2a6b1fcccfb7b69a73ab6ec177d971693e32be5434f1bd740a59f3e793644659f&flowType=transit¶m1=a¶m2=b
Response for Success

sampledeeplink://balanceUpdate?amount=0&txnid=20221031111212800110168418603307334&status=SUCCESS&cardNo=%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A20249&orderId=54321&isOsa=false&responsePayMode=CARD&cardBalance=949200&RRN=230412901309&stan=001123&txnDate=31%20Oct%202022%2C%2012%3A21%3A04%20PM&tid=14015808&aid=A0000005241010&cardScheme=Rupay%20Prepaid&issuingBank=ICICI%20Bank&bankMid=5PT000000000026&bankTid=5P002524&bankOfferApplied=false&subventionCreated=false¶m1=a¶m2=b
Response for Failure

sampledeeplink://balanceUpdate?status=FAIL&orderId=54321&errorCode=1406&errorMsg=card%20%number%20%not%20%matched
5. Check balance with Data for Retail or Transit
checkBalanceWithData API is used to get the Global balance of the card along with card-related data(optional). Card Data are the same as that you get in the readCard api
Sample-
Request

paytmedc://checkBalanceWithData?callbackAction=com.paytm.pos.payment.CALL_BACK_RESULT&stackClear=false&callbackPkg=com.paytm.sampledeeplinkapp&callbackDl=sampledeeplink://checkBalanceWithData&callbackIsService=false&orderId=54321&requestTags=5A, DF33&flowType=transit¶m1=a¶m2=b
Response for Success

sampledeeplink://checkBalanceWithData?status=SUCCESS&cardNo=%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A20249&orderId=54321&cardBalance=949200¶m1=a¶m2=b&responseTags=d825fc6a5cc8b31738799cb0747255c5bd919d0d4a1738934dc4a01d48262ca2a6b1fcccfb7b69a73ab6ec177d971693e32be5434f1bd740a59f3e793644659f%2C011010AC00C39E930100000000012A221031120651001B0000009492000356603100000001000110114224B61C000000000000000001000110114224B5B0002C012C1748020001000110114224B5AE002B012C175B000001000110618224B5A9001C00641761000001000110618224B5A8001B00641767000000000000000000
Sample Response URL for Failure

sampledeeplink://checkBalanceWithData?status=FAIL&orderId=54321&errorCode=1406&errorMsg=card%20%read%20%timeout
6. Card Data Update for Retail or Transit with Open or Closed loop card
updateCard API is used for service data(Common Service Area and Operator Service Area) update in Open loop cards after successful online transaction and card data update for Closed loop cards after successful authentication. For Closed loop cards, cardType=CLOSED and blockNum parameter must be included in the request otherwise transaction will be treated for Open loop cards. For CSA (isOsa =false), amount is mandatory with featureType as it is a transaction, so the entered amount will be deducted from the card.
Sample Request for Open Loop card (CSA)-

paytmedc://updateCard?callbackAction=com.paytm.pos.payment.CALL_BACK_RESULT&stackClear=false&callbackPkg=com.paytm.sampledeeplinkapp&callbackDl=sampledeeplink://updateCard&callbackIsService=false&amount=100&orderId=54321&isOsa=false&cardData=3100000001000110114224B61C000000000000000001000110114224B5B0002C012C1748020001000110114224B5AE002B012C175B000001000110618224B5A9001C00641761000001000110618224B5A8001B00641767000000000000000000&featureType=0&cardNoSHA=d825fc6a5cc8b31738799cb0747255c5bd919d0d4a1738934dc4a01d48262ca2a6b1fcccfb7b69a73ab6ec177d971693e32be5434f1bd740a59f3e793644659f&flowType=transit¶m1=a¶m2=b
Sample Response for Success for Open Loop Cards (CSA)+
Sample Request for Open Loop card (OSA)+
Sample Response for Success for Open Loop Cards (OSA)+
Sample Request for Closed Loop card+
Sample Response for Success of Closed Loop Card+
Sample Response for Failure+
7. Create Service for Retail or Transit
createService API is used to create Common Service Area(CSA) and Operator Service Area(OSA) in Open loop cards. If flag isOsa is checked, then it will perform OSA creation else CSA creation.
Sample-
Request

paytmedc://createService?callbackAction=com.paytm.pos.payment.CALL_BACK_RESULT&stackClear=false&callbackPkg=com.paytm.sampledeeplinkapp&callbackDl=sampledeeplink://createService&orderId=54321&callbackIsService=false&flowType=transit&isOsa=true
Response for Success

sampledeeplink://createService?status=SUCCESS&cardNo=608326%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A2%E2%80%A20017&orderId=54321&amount=0&stan=001464&RRN=null&txnId=54321&isOsa=true
Response for Failure

sampledeeplink://createService?amount=0&stan=001464&RRN=null&cardNo=&txnId=467&status=FAIL&errorCode=-3&errorMsg=Error%20in%20reading%20card.%20Please%20retry&orderId=467&isOsa=false