课程内容

Card on File - Recurring/Adhoc transactions

What is Card on File?

Card on File is where the merchant has consent to store the customers payment credentials for future based payments. The future use of the tokenized payment data can be for payments that are merchant, or cardholder initiated.

How it works

  • Storing a card on file should be by consent with the cardholder ("customer") and can be done in one of 2 ways:
    • Upon completion of a purchase, the merchant can offer the customer an option to store the card-on-file for future transactions
    • Offer the customer to register a profile and add a card on file without doing a purchase
  • iVeri Gateway tokenises the card and returns the token to merchant 
  • Merchant maps the token to the customers profile 
    • Merchant can retain the tokenized card information for future payments where transactions can be initiated by the merchant on agreement with the customer on scheduled or unscheduled basis, or on cardholder initiated instances, alleviating the need for the customer to re-enter their card information at check-out.

Merchant initiated Transactions

  • Recurring payment - Subscription services where service providers collect regular payments on periodic bases can do so using card-on file payment details. Streaming services such as Amazon Prime, Spotify fall into this category.
  • Installments – Where the service provider collects the amount due, up-until the outstanding balance is paid for in full, can do so using card of file payment details.
  • Once off Payments - Additional charges that a business or merchant may have to apply to the customer. 
    • Use cases where this practice is prevalent is the hospitality industry or car rental services.

Cardholder Initiated Transactions

  • Merchant can present the customer with the tokenized payment data which can be elected at checkout stage to effect a payment on an ad-hoc basis. 
  • Merchant can choose if the customer should authenticate the payment by means of 3D secure where an OTP/bank app can be used to approve the payment or if 3D secure authentication can be excluded.

Initial Transaction

The first cardholder initiated transaction can be 3D secure enforced or involve use cases where 3D secure is not factored, whereafter, monthly recurring debits can be processed by the merchant. The initial transaction can be performed using  iVeri Lite, Divert or Enterprise, with the subsequent recurring transaction handled on Enterprise or Batch solution. 

If a merchant requires the first transaction to be 3D secure, two application iDs must be in place. One will handle all initial transactions with 3D secure enforced, while the 2nd application iD will be dedicated for recurring payments. When the iVeri Gateway completes the first transaction, a "TransactionIndex", masked PAN and "ExpiryDate" will be returned to the merchant.

The following field response values should be stored in the merchants database, and linked to the customer profile:

  • TransactionIndex
  • PAN
  • ExpiryDate

Subquent Recurring Transactions

When it is time to debit the same card ( customer payment credential) for recurring payments on a periodic bases, the merchant will need to use the application ID which is not 3DS enforced. The application ID that handles the initial transactions and the recurring payments must reside in the same user group/merchant profile.

For the recurring transactions, the merchant will need to include the following fields on the request:

  • PANFormat: This must always be fixed to "TransactionIndex"
  • PAN: You must provide the previous transaction ‘s response value. The masked PAN must be populated.
  • ExpiryDate: You must provide the previous transaction‘s value or  or if the expiry date has changed, a new one should be supplied
  • CardholderPresence: Must be fixed to "Recurring"

The combination of the above are used by the gateway to retrieve the associated card or network token before processing the Auth/Debit to the acquirer. Should the above not match to the previous transaction then your transaction will fail. The "CardHolderPresence" parameter should be set to "Recurring" on the payment instruction to the iVeri Gateway, alternatively, can also be configured on the application ID on the Gateway on behalf of the merchant. 

Adhoc - Tokenised Transactions

Merchants can also use the tokenised payment details for additional charges or unscheduled payment types that may be customer initiated or where the merchant is the initiator. In these scenarios, the following fields must be presented in the payment instruction to the iVeri Gateway 

  • PANFormat: Fixed value -  "TransactionIndex"
  • PAN:  Masked PAN per the initial or original transaction
  • ExpiryDate: Per the original, or if the expiry date has changed, a new one should be supplied
  • CardHolderPresence: "COF"

Sample - Subsequent Recurring

In the sample below "CardholderPresence" is set by the merchant on the Debit instruction:

REST

SOAP

{

    "Version""2.0",

    "CertificateID""{5c4b9c74-0063-4240-9cff-f730675c5bd0}",

    "ProductType""Enterprise",

    "ProductVersion""WebAPI",

    "Direction""Request",

    "Transaction": {

        "ApplicationID""{d8d5a94-8fa0-428d-a539-3a5baf166f7f}",

        "Command""Debit ",

        "Mode""Test",

        "MerchantReference""Ned20221214_1117",

        "Currency""ZAR"

        "Amount""1600",

        "ExpiryDate""1230",

        "PAN""4242........4242",

        "CardHolderPresence""Recurring",

        "PANFormat""TransactionIndex",

        "TransactionIndex""7C256903-9097-41AE-81B6-54681B33301F"

        

 

    }

 

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Body>

  <Execute xmlns="http://iveri.com/">

  <validateRequest>false</validateRequest>

  <protocol>V_XML</protocol>

  <protocolVersion>7.0</protocolVersion>

  <request>

    &lt;V_XML Version="2.0" CertificateID="{5c4b9c74-0063-4240-9cff-f730675c5bd0}" 

    ProductType="Enterprise" ProductVersion="iVeriWebService"

 Direction="Request"&gt; &lt;Transaction ApplicationID="{6d8d5a94-8fa0-428d-a539-3a5baf166f7f}" Command="Debit" Mode="Test"&gt;

    &lt;MerchantTrace&gt;24AZNXBEEE&lt;/MerchantTrace&gt;

    &lt;Amount&gt;2000&lt;/Amount&gt;

    &lt;Currency&gt;ZAR&lt;/Currency&gt;

    &lt;ExpiryDate&gt;042024&lt;/ExpiryDate&gt;

    &lt;MerchantReference&gt;20220104.0931&lt;/MerchantReference&gt;

    &lt;CardHolderPresence&gt;Recurring&lt;/CardholderPresence&gt;

    &lt;PANFormat&gt;TransactionIndex&lt;/PANFormat&gt;

    &lt;TransactionIndex&gt;7C256903-9097-41AE-81B6-54681B33301F&lt;/TransactionIndex&gt;

    &lt;PAN&gt;4242........4242&lt;/PAN&gt;

    &lt;/Transaction&gt;&lt;/V_XML&gt;

</request>

  </Execute>

  </soap:Body>

  </soap:Envelope>

 

REST Response

SOAP Response

{

    "Version""2.0",

    "Direction""Response",

    "Transaction": {

        "Amount""1600",

        "AuthorisationCode""811045",

        "CCNumber""4242........4242",

        "Currency""ZAR",

        "ExpiryDate""122030",

        "MerchantReference""Ned20221214_1117",

        "Terminal""Default",

        "TransactionIndex""{550B0E5C-AA2A-4A46-B7A4-9543338188D6}",

        "MerchantName""iVeri Payment Technology",

        "MerchantUSN""7771777",

        "Acquirer""NBPostilionNBSouthAfrica",

        "AcquirerReference""95713:04649948",

        "AcquirerDate""20230109",

        "AcquirerTime""091725",

        "DisplayAmount""R 16.00",

        "BIN""4",

        "Association""VISA",

        "CardType""Unknown CardType",

        "Issuer""Unknown Issuer",

        "Jurisdiction""International",

        "PAN""4242........4242",

        "PANMode""Tokenized",

        "ReconReference""04649948",

        "CardHolderPresence""CardNotPresent,Recurring",

        "MerchantAddress""MERCHANT ADDRESS",

        "MerchantCity""Sandton",

        "MerchantCountryCode""ZA",

        "MerchantCountry""South Africa",

        "DistributorName""Nedbank",

        "ApplicationID""{6D8D5A94-8FA0-428D-A539-3A5BAF166F7F}",

        "Command""Debit",

        "Mode""Test",

        "RequestID""{3ED8E51C-24AC-4959-8E8E-F3952DEF019A}",

        "Result": {

            "Status""0",

            "Code""0",

            "Description""",

            "AppServer""105IVERIAPPPR1N",

            "DBServer""105iveridbpr01n",

            "Gateway""Nedbank",

            "AcquirerCode""00",

            "AcquirerDescription"""

        }

    }

}

 

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <soap:Body>

        <ExecuteResponse xmlns="http://iveri.com/">

            <ExecuteResult>&lt;V_XML Version="2.0" Direction="Response"&gt;

  &lt;Transaction ApplicationID="{6D8D5A94-8FA0-428D-A539-3A5BAF166F7F}" Command="Debit" Mode="Test" RequestID="{24A1FCA2-69F0-41ED-B5B7-AB07521EE5B6}"&gt;

    &lt;Result Status="0" Code="0" Description="" AppServer="105IVERIAPPPR2N"

 DBServer="105iveridbpr01n" Gateway="Nedbank" AcquirerCode="00" 

AcquirerDescription="" /&gt;

    &lt;MerchantTrace&gt;24AZNXBEEE&lt;/MerchantTrace&gt;

    &lt;Amount&gt;2000&lt;/Amount&gt;

    &lt;AuthorisationCode&gt;811887&lt;/AuthorisationCode&gt;

    &lt;CCNumber&gt;4242........4242&lt;/CCNumber&gt;

    &lt;Currency&gt;ZAR&lt;/Currency&gt;

    &lt;ExpiryDate&gt;042024&lt;/ExpiryDate&gt;

    &lt;MerchantReference&gt;20220104.0931&lt;/MerchantReference&gt;

    &lt;Terminal&gt;Default&lt;/Terminal&gt;

    &lt;TransactionIndex&gt;{C888BD10-0474-495B-84E7-A113C4C74C76}&lt;/TransactionIndex&gt;

    &lt;MerchantName&gt;iVeri Payment Technology&lt;/MerchantName&gt;

    &lt;MerchantUSN&gt;7771777&lt;/MerchantUSN&gt;

    &lt;Acquirer&gt;NBPostilionNBSouthAfrica&lt;/Acquirer&gt;

    &lt;AcquirerReference&gt;95713:04649951&lt;/AcquirerReference&gt;

    &lt;AcquirerDate&gt;20230109&lt;/AcquirerDate&gt;

    &lt;AcquirerTime&gt;093127&lt;/AcquirerTime&gt;

    &lt;DisplayAmount&gt;R 20.00&lt;/DisplayAmount&gt;

    &lt;BIN&gt;4&lt;/BIN&gt;

    &lt;Association&gt;VISA&lt;/Association&gt;

    &lt;CardType&gt;Unknown CardType&lt;/CardType&gt;

    &lt;Issuer&gt;Unknown Issuer&lt;/Issuer&gt;

    &lt;Jurisdiction&gt;International&lt;/Jurisdiction&gt;

    &lt;PAN&gt;4242........4242&lt;/PAN&gt;

    &lt;PANMode&gt;Tokenized&lt;/PANMode&gt;

    &lt;ReconReference&gt;04649951&lt;/ReconReference&gt;

    &lt;CardHolderPresence&gt;CardNotPresent,Recurring

&lt;/CardHolderPresence&gt;

    &lt;MerchantAddress&gt;MERCHANT ADDRESS&lt;/MerchantAddress&gt;

    &lt;MerchantCity&gt;Sandton&lt;/MerchantCity&gt;

    &lt;MerchantCountryCode&gt;ZA&lt;/MerchantCountryCode&gt;

    &lt;MerchantCountry&gt;South Africa&lt;/MerchantCountry&gt;

    &lt;DistributorName&gt;Nedbank&lt;/DistributorName&gt;

  &lt;/Transaction&gt;

&lt;/V_XML&gt;</ExecuteResult>

        </ExecuteResponse>

    </soap:Body>

</soap:Envelope>

 




额定值
0 0

目前没有任何评论。

成为第一个发表评论的人。