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://readCard?status=SUCCESS&cardNo=608326A20017&orderId=12345
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