TAPPP Deposit

TAPPP Deposit is a prepaid voucher payment method allowing end customers to purchase vouchers at various outlets throughout the USA and to redeem the vouchers at merchants' checkout.

The following method IDs are covered in this section:

IDNameCredit/Debit State
398TAPPPDepositDepositedByProvider(29)

Payment method interaction type: Redirection to External Payment Provider (see Interaction Types).

(Short additional explanation how the method works technically)

Payment Flow

1071

Payment Flow Overview

  1. Merchant initiates a new TAPPP deposit(mandatory data: success URL, failure URL)
  2. PXP generates the redirect URL that includes the encoded and encrypted merchant's unique id at the provider and the payload according to the provider's requirements as query parameters
  3. Merchant redirects customer to TAPPP's website, where they need to enter the prepaid card details
  4. TAPPP verifies if the card is valid and redirects the customer back to the merchant's website
    a. If the verification is successful, the deposit is pre-authorized by TAPPP and the customer is redirected to the merchant's success URL. The redirection URL contains the encoded and encrypted merchant's unique id at the provider and the payload according to the provider's requirements as query parameters.
    b. If the verification is unsuccessful, the customer is redirected to the merchant's failure URL without any additional query parameter
  5. The merchant notifies PXP with the contents of the TAPPP to merchant redirect URL(https://developer.kalixa.com/reference#handleprovidernotificationtomerchant)
    Note: If no handleProviderNotificationToMerchant is received in 24 hours, the payment goes to state Expired
  6. PXP updates the payment with the details received in the payload query string parameters and returns the payment details to the merchant in the handleProviderNotificationToMerchantResponse
  7. Merchant can perform various checks on the payment and informs PXP on how to proceed with the payment (https://developer.kalixa.com/reference#executepaymentaction)
    a. If the merchant wants to proceed with the deposit, PXP sends an acknowledgment call to TAPPP confirming the deposit
    b. If the merchant does not want to proceed with the deposit, PXP sends an acknowledgment call to TAPPP refusing the deposit
    Note: If no executePaymentAction is received in 30 minutes, the payment goes to state Expired
  8. TAPPP responds to PXP's acknowledgment call
  9. Merchant is notified on the final state of the payment

Redirect Integration

Currently not supported.

Backend2BackendIntegration

The following table contains the fields to be sent in the initiatePaymentRequest.userData xml section:

key (value type, required)value
postalCode
(string, optional)
Customer's ZIP Code.
countryCode2
(string, optional)
Customer's ISO 3166-1 Alpha-2 Country Code.

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, required)value
SuccessPageUrl
(string, required)
The URL to redirect customer in case of a successfully initiated payment by TAPPP
ErrorPageUrl
(string, required)
The URL to redirect customer in case of a unsuccessfully initiated payment by TAPPP

Example initiatePaymentRequest:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.cqrpayments.com/PaymentProcessing">
 <merchantID>YourTestMerchant</merchantID>
 <shopID>YourTestShop</shopID>
 <merchantTransactionID>64cec867-a1e9-4ac3-8a17-6357e9835e15</merchantTransactionID>    
 <paymentMethodID>398</paymentMethodID>
 <userID>62bbbaff-af51-4717-b790-96c4471d9d06</userID>
 <userData>
    <address>
        <postalCode>1234</postalCode>
        <countryCode2>US</countryCode2>
    </address>
 </userData>
 <userIP>127.0.0.1</userIP>
 <userSessionID>0bde6d65-1c02-42c8-9a4f-149f2c8779fc</userSessionID>
 <creationTypeID>1</creationTypeID>
<specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>SuccessPageUrl</key>
            <value>https://mgm.com/success</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>ErrorPageUrl</key>
            <value>https://mgm.com/failure</value>
        </data>
    </specificPaymentData>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <payment xsi:type="paymentWithPaymentAccount">
        <merchantID>YourTestMerchant</merchantID>
        <shopID>YourTestShop</shopID>
        <paymentMethod>
            <key>398</key>
            <value>TAPPPDeposit</value>
        </paymentMethod>
        <merchantTransactionID>64cec867-a1e9-4ac3-8a17-6357e9835e15</merchantTransactionID>
        <paymentID>78bf8635-3c0f-42cc-b63d-8c103dd623ec</paymentID>
        <userID>62bbbaff-af51-4717-b790-96c4471d9d06</userID>
        <paymentProvider>
            <key>193</key>
            <value>TAPPP</value>
        </paymentProvider>
        <amount currencyCode="USD">0</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>7a2ff3aa-12d2-4ef3-ab48-760cf8ffb390</id>
            <definition>
                <key>30</key>
                <value>RedirectURLCreated</value>
            </definition>
            <createdOn>2021-02-19T13:41:07.7135701Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>RedirectionUrl</key>
                    <value>https://betmgm.tappp.tv?tp-partner-id=PT_QR9I7IQICMQUFVHN7&amp;payload=eyAiYWxnIjogIlJTMjU2IiwgInR5cGUiOiAiSlNPTiIgfQ.Z1lpY2FFRVR1R29uUUhEclpYN1JPNURsR05YWDF3QnQ1djdEWXd3a1hjV29jOUR1bklYZDFucGJtZU1yeG5jUzg1dW05VElEQnNLOGk4RWZ4RHJFdlo3YmcxUVRxMGZoZVBPYTJ0K0dwejRVcmJhdnNZMVNINThya0tEbWNEV3B0M0RPa1lvRXlYNEpjM0NpUUtVd1FMWWR3eVNrUXR5RGZNY0R2ckh4L01aQ2NJU0tCWEVLbHA0MXZiczY1VVhRZUZidjBoendQbDFHYlpUM2lvaW9pV2xVcU1FMXh3emVaNVUycjU3NGRMS1dEVS9KSmJmWlZ5dHlqaFA1MkZqNDlla2J3OVBTMXl4ckRpS2k5V3JFWU9jbnhiaWIrVUhXM2IxbWQwUGd5NWJvU3NzU3l2ZC9Xb2tEQU9xVDI1Nm1HM3ZBOTViT0RqR1ArTGViZW9NakptdkN5dXQwd1dqVkFjZURVWnc3aVRISlAwbXk1NlZZMkJ6cGVMWU42bTh2QVZIeEExRVpBaE9FcDJGMnlpMDR2SjVHRzl4eFREK2pwazY5Y21sYW1yeXI2UzFGek42aXpWeU9wT1V6OWcyVWM2RlhjRTB0MGZVYldVUmlGSU1YNjFubGJaTVg2dkcwZEtpMlUrcHRsZEFRUG0vK1JDN243eUdKdUpuTGNjYWM4dGRLZUJnN2o5L1RvajEwMy8zRkxKSE8xQVVIYnRVaHVnOGhDMlRVRmozS1FybUx6b1RHZk9GUmlqeTFKWVNvTGdyc2l6VEV2RVhsQTFxWEh1ZHhycWUxQjVKcXZQVG52U3lvZEZMbU4rL2VJdCtiWU9EVFFPVEgvQzJBZk1zTldGOTVDYU1NTXVyYk1EZVBlUDVNUFR4eTlRZXlmR1ZPWWI1WVAreWx2SU09.WCtKRmt3QWY0eWNOb3dFS080ZE1FWkFSbTJHQmdiaW1kNkFSd2pKbVBobmpwZEhLYWJYKzRxQzd2RDdjcUNBdEg5b1RPWitCMWpNdlBZQWM4dDVNZUZScGdkSDBSSE81bnNaVDBUbmNidGcySTRuWTRmRThKMVpPdEZ1dy9JY1QyMjNYRlV6RCtNUytGWWUrNEZSZVB2WDIxL1hzSFhPS1hHcEFPWGlCSGhvSGFUWUFxaEszcHRKc0R4WDFaOUszY042MUJ2K1djR3prWWVaeC9YTzdHUUhCdzh5TXRhWTAxM05PbGxBZTdRM1UzY096ZzM3ZERwa2lLaFJneFBscERtajNRTi9hQ29ScWFQRGNhMVdYTWR5SU5UQlhFR3pYOFBSUk1wM1J5dTdUcVJPTm5wR29GYS9yQTlpdGE3VU5jWEhuSWhrUzY4TlV5WXYvbGxYbGJkZ2NNdWU2UHo4MktXRGtuL09WL2lBbndGRVJaZno0QzVZQ3VZcVhkWTlMOEFrbDFoWThiZGtxSFBvSFd0RlA3N2xwdkF3VGxZcFhreTBGenlwUHQxQUVFK090TjFrV2tZQXBLREhMeFRNNDdoM1l2VTZFaUdOc09WT0tqWnBJV2xmVkFoZlRaYWdjbU9TTVQ0U1dacWVDUlZoRTRVQXJ3ZnQ0K21WdVg2MDdkbUdrd1FkRDc0OXljS0ZsZmpSQXk3UzdyY3I0QnVyQW9pK2MrWW04cVBNRkNCb1JJTTVQVEhxOVJwektleXdRbnZxYy95TWcwL0lobGFvV2NuUTA5bHM4d29DWno0RmM1UllkVUdBU1M3dk1iTW5LMUpIek9oenNYV05ianZGRXZqYUNYSVVMQ1hOZHQ3R2l6bzRKeTFTVU5vS2VaZ3FIV0hjVzhBcWVhR2c9</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">0</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>78bf8635-3c0f-42cc-b63d-8c103dd623ec</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>0</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Example handleProviderNotificationToMerchantRequest:

<handleProviderNotificationToMerchantRequest 
    xmlns="http://www.cqrpayments.com/PaymentProcessing"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <merchantID>YourTestMerchant</merchantID>
  <providerID>193</providerID> 
   <queryString>tp-partner-id=PT_QR9I7IQICMQUFVHN7&amp;payload=ewogICJhbGciIDogIlJTMjU2IiwKICAidHlwZSIgOiAiSlNPTiIKfQ%3D%3D.TEZYUDdqUm5aRHZPNG5RMFk0WUhPWUI4Y1BLODgzZkV4a2lYYmNzSW1nTTl5VTZuZitrbGMvV2lrc2d4NEgxNGFTayt6WlhBeEdQc3Izc3RXdWFONW4xZW1iaEVPYUg0KzBtVFhvdkpvd0tudkJxNmtyYVZpZmRPbis2MVg2NnZlVk1YRkRVOC83d3laV0xGaldhL2hKQU1MSitSQmxMSXplazAyVHVRRGViZWRLd1R4bVR5T0xENTI2WXNyb294a2NTa1QyWTZsanE0ZlJpMHVvS1BHNUo0dWxLVHhtYkluUHhCYmVyQlB6TERwdDMxQTVETjhLWUVLbmhkdDNMVnd1d1hrMzUySU9zc3Zxb01lMnJwMXZBVVZqNndTVjQ4Skl2RWRPcDBWbVQ3b1hLcXgyRnpUS0M5VVRtQ0RBY3NXak1qMXR2S3dlOHRpQ1dsUGNRS0hXNGtDbHRTdWE0cDFJYTl3L2h4Nis4d1ZRbkEyRXo3c3AvTUxJNWsrRkU5ZlF4SlowU3VzSjhiVEpaUlZybE04UmU0dkZvVW16MXdWY2Y2Tjd0TncyQVY4V1ArbTMzV1pac2FIZ1VNN3g2NC9sSy9IUy9jWEdXWDlwY3J0R2pQN2FMbi9LNWRxNlhjb25uWkFjK25ZTENmajBmZEZvaVNCUWQ5VDdpdW8zSVFJMmQ1VU9zSFJKdmxmZTFvRzhaQUQ5eS9mcmxpTm82eEs4NXBUMDNyZzFtMzdhWkZiVThCSWhocTN5ekxtWDI3N05WMXhDYTFQSy81WitNbG95VGJZcUx4TjlTQ244NXk1UXVOaDV3WE9LSUJYb21vbjNjMEp3MXJyN1VSWXdsTlNmSVBlZjcyQmNVTlBuMWhSV0tXK3BTekNMSEVOWHJDVEFQYlR0WGdMUEE9.ZnhoaGhpSFhqdU1qeFZVS05IWTRRNmZKM2ExY2REbXJrMUdnb3JMRU9ZYWEwYUlGeEVhL2FlZ3VUS1hNd080TXlYS0l3ckp4WmdpZE1GQVgwWURaeTRPMldQSXFWT2tkVWc4dzdqUmVZT21pZitqMWJnSGVGUnV3R0tVM1VHcUNpUU9zbXFFNXFnNHZOM29iemgvbjU1a1lOT3crbk5SeUN2WUhFOGZSMGJ1akRLbDV0bnJXVFFnVmhNZGppQnNjUEJlamRYQ3U5U1Q1RDRyZWpqaGFLblJaTElNYWFkNnRCOVhuWEFHd1h2Qy8ycStScWRlRHhPZDFCOGRaR3VhVW5UU20zc1hxRFQ5cTErcVRjWmZQcDBkVElaK1RpejJIdnhGRjR5YXd4SXRhTmtVeFBOUlhIUkphb3d2YkcrVS9DaStNbzcvQzhGWFV6Q2dFbDdpaUFoN3lrZndsc0JvdUZrNnVEVUxJM0hTVTJqYnl6Ym8wM2xPVGN5VGxVT1J6cUp1WWltR25QU0NTbEEyWFF4UVFRYnZ6cVNsZUxmQXhLNDNhZkdYVHE0NG1CbXlEbTNsMnlpa3lBandEZjcxeHczQlgveTgvbTY3cko1ekRweVNzcjNwMmpyd1ZOMExlQk85WHpIdWw3VXZkQnZ2L2V4ckIvVTlSbWhGemZzL3pQZklHVVB0VTFiWW11S3FpQXNNL1ViSEM4Qkc2V3E2emFEdjA0RzgxajkwMStpWDBGdDQ3Z2JoS1Z5ZG5EMUQyakdLalZkSWtxUmJLcnBncG5JZE5jSVhMZWJGcWZPZTNMcGxlTXBPWkgxa01sekNGRXNnUE1RUGFGVG9LbHplK21BMElWSkRzT2lsNVkxR1FYN1RMZmxiSXdqOTY1YVVxcnBucmdhQ1VzMnM9</queryString>
  <headers>
    <header>
      <key>Content-Length</key>
      <value>14</value>
    </header>
    <header>
      <key>Content-Type</key>
      <value>text/html</value>
    </header>
  </headers>
  <content>Transaction OK</content>
</handleProviderNotificationToMerchantRequest>

Example handleProviderNotificationToMerchantResponse:

<handleProviderNotificationToMerchantResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <payment xsi:type="paymentWithPaymentAccount">
        <merchantID>YourTestMerchant</merchantID>
        <shopID>YourTestShop</shopID>
        <paymentMethod>
            <key>398</key>
            <value>TAPPPDeposit</value>
        </paymentMethod>
        <merchantTransactionID>64cec867-a1e9-4ac3-8a17-6357e9835e15</merchantTransactionID>
        <paymentID>78bf8635-3c0f-42cc-b63d-8c103dd623ec</paymentID>
        <userID>62bbbaff-af51-4717-b790-96c4471d9d06</userID>
        <paymentProvider>
            <key>193</key>
            <value>TAPPP</value>
        </paymentProvider>
        <amount currencyCode="USD">50.0</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>624cbc86-9853-4706-8a28-77f7fb2b0175</id>
            <definition>
                <key>214</key>
                <value>PendingOnMerchant</value>
            </definition>
            <createdOn>2021-02-23T08:31:46.3469189Z</createdOn>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">37.57</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>RD-TX-22360368250557122</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>78bf8635-3c0f-42cc-b63d-8c103dd623ec</value>
            </detail>
			<detail xsi:type="keyDecimalValuePair">
                <key>ProviderBonusAmount</key>
                <value>10.00</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>0</paymentAccountID>
        </paymentAccount>
    </payment>
</handleProviderNotificationToMerchantResponse>

Example executePaymentAction:

<executePaymentActionRequest 
  xmlns="http://www.cqrpayments.com/PaymentProcessing"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<merchantID>YourMerchantID</merchantID>
	<shopID>YourShopID</shopID>
	<paymentID>78bf8635-3c0f-42cc-b63d-8c103dd623ec</paymentID>
	<actionID>97</actionID>
	<remark>Confirm Deposit</remark>
</executePaymentActionRequest>
<executePaymentActionRequest 
  xmlns="http://www.cqrpayments.com/PaymentProcessing"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<merchantID>YourMerchantID</merchantID>
	<shopID>YourShopID</shopID>
	<paymentID>78bf8635-3c0f-42cc-b63d-8c103dd623ec</paymentID>
	<actionID>98</actionID>
	<remark>Cancel Deposit</remark>
</executePaymentActionRequest>

Notifications

The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.