Credit Card V3

Sep 25, 2020 Contactless Credit Cards - Frequently Asked Questions What are Contactless credit cards? Contactless credit cards are just like a chip credit card but better. Contactless cards enable you to “tap and go”. Just tap the payment terminal when completing a purchase at a contactless enabled merchant and be on your way. Fast, Easy, Secure. This is NOT A place to discuss strategies to pay-down credit card debt, take advantage of balance transfer or 0% interest offers, or anything else related to credit card debt. It is HIGHLY recommended to avoid the 'churning' game if you currently have or are susceptible to credit card debt. Get under 5/24 for the first time since 2012 and pick up the CIP, United business and Hyatt cards Begin planning how to visit the Galapagos and not pay real money for it. Hit up a few bank bonuses for the year. Begin accumulating Alaska miles again. Pick up some cash back business cards and diversify the points portfolio.

  • Only CAD transaction supported.

  • There are two modes for credit card integration:
    Simple Purchase
    Recurring Purchase

# Sign generate and check

# Request and response format

All request and response are in JSON format.The response body is also in JSON format. It should not be treated as fixed or as a schema, new fields may be added as the API evolves, and the order of fields might change. Your applications must therefore be resilient to the reordering of fields within a JSON object.

# Sending request demo code

# Simple purchase

User input card info and purchase once, users will be prompted to input card info each time when they purchase.

# Sequence

1, Call cc_purchase and redirect to redirectUrl to let user input credit card info;
2, After purchase, will redirect to returnUrl;
3, If the transaction is successful, IOTPay will notify to notifyUrl;

# Request URL for simple purchase

Endpoint: https://ccapi.iotpaycloud.com/v3/cc_purchase

Reqeust method:

  • POST
  • Content-Type: application/json;charset=UTF-8

# Parameters

namerequiredtypesampledescription
mchIdyString(30)10000701assigned by IOTPay
mchOrderNoyString(30)1234567890abcassigned by merchant
mchUserIdyString(30)007assigned by merchant
amountyInt1500in cents
currencyyString(3)CADfor now only CAD supported
loginNameyString(12)jack123merchant's login name
subjectnString(64)
bodynString(250)
channelyStringPF_CCfixed value: PF_CC
notifyUrlyString(200)get notify when success
returnUrlyString(200)redirect to this url after payment
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

# Response

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgyString
retData.redirectUrlyStringif retCode=SUCCESS, merchant redirect to this url
retData.secureIdyStringFor SDK integration only

# NotifyUrl message(post request in json format)

namerequiredtypesampledescription
payOrderIdyStringSUCCESS or FAIL
mchIdyString
mchOrderNoyString
originalOrderIdyStringoriginal pay order id if payType=refund
amountyInt100in cents
currencyyStringCAD
payTypeyStringpay or refund
refundableyInt100in cents
statusyInt22 or 3 means success
invoiceNumyString
paySuccTimeyString2021-04-07 19:44:51
cardNumyString432567******2266
cardTypeyStringV or M
expiryDateyString
authNumyString
transNumyString
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

# ReturnUrl parameters

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgnString
statusyInt22 or 3 both mean the transaction is successful

# Recurring purchase

User input card info once, can purchase with the tokenized card multiple times.

# Sequence

1, Call cc_addcard and then redirect to retData.redirectUrl to let user input credit card info;
2, After addcard, will redirect to returnUrl with the following parameters:
If success: retCode=SUCCESS
If fail: retCode=FAIL&retMsg=xxxx
3, (optional) Call cc_querycard to get card info;
4, If cc_addcard is successful, call cc_purchasewithtoken to do a real purchase

# Request URL for cc_addcard

Endpoint: https://ccapi.iotpaycloud.com/v3/cc_addcard

Reqeust method:

  • POST
  • Content-Type: application/json;charset=UTF-8

# Parameters

namerequiredtypesampledescription
mchIdyString(30)10000701assigned by IOTPay
cardIdyString(30)604567999assigned by merchant,must be unique
loginNameyString(12)jack123merchant's login name
channelyStringPF_CCfixed value: PF_CC
returnUrlyString(200)redirect to this url after payment
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

each cardId can bind only one credit card, if one user need to bind more cards, use different cardId

# Response

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgyString
retData.redirectUrlyStringif retCode=SUCCESS, merchant redirect to this url
retData.secureIdyStringused for sdk integration

# ReturnUrl parameters

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgnString

# Request URL for cc_directaddcard

Endpoint: https://ccapi.iotpaycloud.com/v3/cc_directaddcard

Reqeust method:

  • POST
  • Content-Type: application/json;charset=UTF-8

As an IOTPAY client or partner using this method of integration, your solution must demonstrate compliance to the Payment Card Industry Data Security Standard (PCI DSS) .

# Parameters

namerequiredtypesampledescription
mchIdyString(30)10000701assigned by IOTPay
cardIdyString(30)604567999assigned by merchant
cardNumyString4223456789564532card number
expiryDatenString0725
holderyStringcard holder's name
cvvyString786
loginNameyString(12)jack123merchant's login name
channelyStringPF_CCfixed value: PF_CC
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

# Response

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgyString
retDatayJSONif retCode=SUCCESS, card info returned

# retData contains card infomation:

Credit
namerequiredtypesampledescription
cardIdyString
cardNumyString
expiryDatenString
holderyString
cvvyString

# Request URL for cc_querycard

Endpoint: https://ccapi.iotpaycloud.com/v3/cc_querycard

Reqeust method:

  • POST
  • Content-Type: application/json;charset=UTF-8

# Parameters

namerequiredtypesampledescription
mchIdyString(30)10000701assigned by IOTPay
cardIdyString(30)604567999assigned by merchant
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

# Response

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgyString
retDatayJSONif retCode=SUCCESS, card info returned

# retData contains card infomation:

namerequiredtypesampledescription
cardIdyString
cardNumyString
expiryDateyString
holderyString
cvvyString

# Request URL for purchasewithtoken

Endpoint: https://ccapi.iotpaycloud.com/v3/cc_purchasewithtoken

Reqeust method:

  • POST
  • Content-Type: application/json;charset=UTF-8

# Parameters

namerequiredtypesampledescription
mchIdyString(30)10000701assigned by IOTPay
mchOrderNoyString(30)1234567890abcassigned by merchant
mchUserIdyString(30)007assigned by merchant
cardIdyString(30)604567999assigned by merchant
amountyInt1500in cents
currencyyString(3)CADfor now only CAD supported
loginNameyString(12)jack123merchant's login name
subjectnString(64)
bodynString(250)
clientIpnString(50)192.77.33.56consumer's ip address, for better transaction trace
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

# Response

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgyString
retDatayJSONif retCode=SUCCESS, order detailed info returned

# retData contains order infomation:

namerequiredtypesampledescription
payOrderIdyStringSUCCESS or FAIL
mchIdyString
mchOrderNonString
originalOrderIdyStringoriginal pay order id if payType=refund
amountyInt100in cents
currencyyStringCAD
payTypeyStringpay or refund
refundableyInt100in cents
statusyInt22 or 3 means success
invoiceNumyString
paySuccTimeyString2021-04-07 19:44:51
cardNumyString432567******2266
cardTypeyStringV or M
expiryDateyString
authNumyString
transNumyString
channelyStringPF_CCfixed value:PF_CC

# Purchase with wallet

Endpoint: https://ccapi.iotpaycloud.com/v3/cc_purchasewithwallet

Reqeust method:

  • POST
  • Content-Type: application/json;charset=UTF-8

# This API is for Apple Pay and Google Pay, contact us before integrating this API.

# Parameters

namerequiredtypesampledescription
mchIdyString(30)10000701assigned by IOTPay
mchOrderNoyString(30)1234567890abcassigned by merchant
amountyInt1500in cents
currencyyString(3)CADfor now only CAD supported
walletTypenString(250)“ApplePay” for ApplePay, “GooglePay” for Google Pay
walletDatanString(250)The OEM Wallet data is generated by the mobile device authorized wallet
loginNameyString(12)jack123merchant's login name
subjectnString(64)
bodynString(250)
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

walletData must be base64encoded. For ApplePay, you must send the Apple payment token as received by the passkit.For Google Pay, you must send the payment token (paymentData.paymentMethodData.tokenizationData.token) as received by Google Pay API.

# Response

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgyString
retDatayJSONif retCode=SUCCESS, order detailed info returned

# retData contains order infomation:

namerequiredtypesampledescription
payOrderIdyStringSUCCESS or FAIL
mchIdyString
mchOrderNonString
originalOrderIdyStringoriginal pay order id if payType=refund
amountyInt100in cents
currencyyStringCAD
payTypeyStringpay or refund
refundableyInt100in cents
statusyInt22 or 3 means success
invoiceNumyString
paySuccTimeyString2021-04-07 19:44:51
cardNumyString432567******2266
cardTypeyStringV or M
expiryDateyString
authNumyString
transNumyString
channelyStringPF_CCfixed value:PF_CC

# Refund a transaction

Endpoint: https://ccapi.iotpaycloud.com/v3/cc_refund

Reqeust method:

  • POST
  • Content-Type: application/json;charset=UTF-8

# Parameters

namerequiredtypesampledescription
mchIdyString(30)10000701assigned by IOTPay
mchRefundNoyString(30)R1234567890abcassigned by merchant
loginNameyString(12)jack_chenassigned by merchant,equals to jobNo
refundAmountyInt100in cents
payOrderIdyString(30)
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

# Response

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgyString
retDatayJSONif retCode=SUCCESS, order detailed info returned

# Void a transaction

Endpoint: https://ccapi.iotpaycloud.com/v3/cc_void

Reqeust method:

  • POST
  • Content-Type: application/json;charset=UTF-8

# Parameters

Credit Card V3 Download

namerequiredtypesampledescription
mchIdyString(30)10000701assigned by IOTPay
mchRefundNoyString(30)R1234567890abcassigned by merchant
loginNameyString(12)jack_chenassigned by merchant,equals to jobNo
payOrderIdyString(30)
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

# Response

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgyString
retDatayJSONif retCode=SUCCESS, order detailed info returned

# Query order

Endpoint: https://ccapi.iotpaycloud.com/v3/cc_query

Reqeust method:

  • POST
  • Content-Type: application/json;charset=UTF-8

# Parameters

namerequiredtypesampledescription
mchIdyString(30)10000701assigned by IOTPay
mchOrderNoyString(30)1234567890abcassigned by merchant
payOrderIdyString(30)
signyString(32)C380BEC2BFD727A4B6845133519F3AD6Sign algorithm

use either payOrderId or mchOrderNo, use one of them

# Response

namerequiredtypesampledescription
retCodeyStringSUCCESS or FAIL
retMsgyString
retDatayJSONif retCode=SUCCESS, order detailed info returned

# SDKs and document

For iOS integration: iOS sdk
For Android integration: Android sdk
PHP and JS integration: Php sdk

# Demo and source code

Simple purchase: demoRecurring purchase: demosource code download

Whatever credit card you need, we've got a great pack to pick from

Check eligibility

Find me a card that lets me

From January 2021, online servicing is no longer available.

Our range of credit cards

Not everyone wants the same thing from their credit card. So whether you're looking to get a better deal on your balance, free up some cash in your current account, rack up Virgin Points, or enjoy a smart deal on your everyday spending, we’ve got a great pack of cards to pick from.

  • Pick the perfect card to suit your needs – from balance transfers and purchases to Virgin Points and more
  • No nasty surprises. Use Card Checker to see your chances of being accepted
  • Access a great range of Virgin offers

On occasion, the card designs presented may differ from those on sale.

Buy fabulous, fly fabulous

With the Virgin Atlantic Credit Card. Representative 22.9% APR (variable)

Find out more

Our app makes money easy

Credit card v380

Manage your card, master your spending

Track your balance and transactions
View your latest transactions and keep tabs on your balance
Pay with ease
Set up and manage your Direct Debit, and make a debit card payment
Manage balance and money transfers
Easily transfer a balance or move money into your account
View PIN
Simply and securely view your PIN

Credit Card 3%

Discover the app

Credit Card Generator V3.8 Download

Our checker is a quick way to see your chances of being accepted for a card, and it won't affect your credit rating.

Check eligibility

Live a life more Virgin

Exclusive perks our customers love

24/7 support

Virgin Group discounts

When you join the Virgin Money family, you get extra special deals across the wider Virgin Group. So you can save on everyday essentials, as well as bigger things - like days out, dream holidays and amazing adventures. Terms apply.

Credit Card Generator With Money

Discover our discountsVirgin Group discounts

24/7 support

We're here to answer your questions.

View questions and answers