Aircash Abon Voucher Deposit

📘

Abon flows

PXP supports 2 different Abon flow:

  • Abon flow with a redirect (THIS PAGE!).
    User is being redirected to the Aircash frame to enter the 16 digit voucher code. In some countries the user will also be asked to enter his mobile phone number to authenticate the payment in the Aircash app.
  • Abon flow without a redirect - see here
    User is not being redirected, rather user stays on the merchant´s cashier site to enter voucher code and mobile phone number.
    Lower risk of abandoment by the customer, but merchant needs to provide messaging to customer.

The customer journey starts on the merchant´s website. The customer will be redirected to the Aircash frame and will have to enter a 16-digit code from a voucher and confirm the transaction . After the successful payment the customer will be redirected to the success URL and a notification will be sent to PXP.

The following method IDs are covered in this section:

IDNameCredit/Debit State
299Voucher Redirect DepositDepositedByProvider (29)

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

Flow

Redirect Integration

Currently not supported.

Backend2BackendIntegration

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)value
SuccessPageUrl
(string, >optional)
URL to redirect for successful payments
CancelPageUrl (string, optional)URL to redirect if payment is cancelled
RefusedPageUrl (string, optional)URL to redirect in case of a declined transaction
HomepageURL (string, optional)Home page URL from the merchant.
Locale (string, optional)Language Identifier (RFC 3066) in the form "en-US"

📘

Amount

An Abon voucher payment is initiated without an amount.

📘

URLs

If the Aircash SDK is used with SDK Window Checkout, the mandatory parameters are the HomepageUrl. If the SDK Redirect Checkout is used, mandatory parameters are the RefusedPageUrl, SuccessPageUrl and CancelPageUrl. If the merchant is using it´s own method to open Aircash Frame window, then mandatory parameters are SuccessPageUrl, RefusedPageUrl and CancelPageUrl.

The following parameters can be provided in InitiatePaymentRequest.UserData:

key (value type, account type, required)value
FirstNameuser´s first name
Lastnameuser´s last name
DateOfBirthuser´s date of birth

Matching FirstName, LastName and DateOfBirth is currently not available for Aircash Abon Voucher, but maybe added in the future.

Example initiatePaymentRequest:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                        xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<merchantID>{{merchant}}</merchantID>
  <shopID>{{shop}}</shopID>
	<merchantTransactionID>OB-20230301-1107</merchantTransactionID>
	<paymentMethodID>TBD</paymentMethodID>
	<userID>OB-20230301-1107</userID>
	<userData>
		<username>testuser</username>
		<firstname>Test</firstname>
		<lastname>User</lastname>
		<currencyCode>EUR</currencyCode>
		<email>[email protected]</email>
		<address>
			<street>123 home street</street>
			<postalCode>123456</postalCode>
			<city>Test city</city>
			<state>Test state</state>
			<countryCode2>SI</countryCode2>
			<telephoneNumber>0016479325666</telephoneNumber>
		</address>
		<gender>Male</gender>
	</userData>
	<userIP>127.0.0.22</userIP>
	<userSessionID>08b980b9-b5be-4d0a-9e1b-a6541d6ac9ce</userSessionID>
	<creationTypeID>1</creationTypeID>
	<specificPaymentData>
		<data xsi:type="keyStringValuePair">
			<key>SuccessPageUrl</key>
			<value>https://success.com</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>CancelPageUrl</key>
			<value>https://cancel.com</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>RefusedPageUrl</key>
			<value>https://error.com</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>HomepageUrl</key>
			<value>https://www.example.com/</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>{{merchant}}</merchantID>
    <shopID>{{shop}}</shopID>
		<paymentMethod>
			<key>TBD</key>
			<value>Abon Voucher Deposit</value>
		</paymentMethod>
		<merchantTransactionID>OB-20230301-1107</merchantTransactionID>
		<paymentID>f8834cc1-19ba-4aad-a136-9de682561422</paymentID>
		<userID>OB-20230301-1107</userID>
		<paymentProvider>
			<key>TDB</key>
			<value>Aircash</value>
		</paymentProvider>
		<amount currencyCode="EUR">100.00</amount>
		<creationType>
			<key>1</key>
			<value>User</value>
		</creationType>
		<userIP>127.0.0.22</userIP>
		<state>
			<id>6f68ad84-7606-4b93-a681-421feec28841</id>
			<definition>
				<key>30</key>
				<value>RedirectURLCreated</value>
			</definition>
			<createdOn>2023-06-01T10:50:20.6820235Z</createdOn>
			<paymentStateDetails>
				<detail xsi:type="keyStringValuePair">
					<key>RedirectionUrl</key>
					<value>https://tbd</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PaymentStateReasonID</key>
					<value>1</value>
				</detail>
			</paymentStateDetails>
		</state>
		<isExecuted>false</isExecuted>
		<baseAmount currencyCode="EUR">0.83</baseAmount>
		<paymentDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>62</value>
			</detail>
      <detail xsi:type="keyStringValuePair">
				<key>ProviderTransactionID</key>
				<value>939479475</value>
			</detail>
		</paymentDetails>
	</payment>
</initiatePaymentResponse>

Example initiatePaymentResponse with error InitiateErrorReportedByProvider:

<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>B2BTestMerchant</merchantID>
        <shopID>AircashProviderShop</shopID>
        <paymentMethod>
            <key>299</key>
            <value>VoucherRedirectDeposit</value>
        </paymentMethod>
        <merchantTransactionID>hc-20230705-180019</merchantTransactionID>
        <paymentID>f22140a4-bbef-4015-b890-426d4b46a189</paymentID>
        <userID>hc20230705180019</userID>
        <paymentProvider>
            <key>209</key>
            <value>Aircash</value>
        </paymentProvider>
        <amount currencyCode="EUR">5.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>132c0936-e761-4376-886b-3884050d47b1</id>
            <definition>
                <key>4</key>
                <value>InitiateErrorReportedByProvider</value>
            </definition>
            <createdOn>2023-07-05T16:00:20.0089377Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderErrorResponseCode</key>
                    <value>1</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderErrorResponseMessage</key>
                    <value>Invalid signature or partner id.</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">5</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>1385</value>
            </detail>
        </paymentDetails>
    </payment>
</initiatePaymentResponse>

Example initiatePaymentResponse with error InitiateRefusedByProvider:

<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>B2BTestMerchant</merchantID>
        <shopID>AircashProviderShop</shopID>
        <paymentMethod>
            <key>299</key>
            <value>VoucherRedirectDeposit</value>
        </paymentMethod>
        <merchantTransactionID>hc-20230705-175707</merchantTransactionID>
        <paymentID>7ecb9e51-7b1d-4522-80f5-34cec67c499e</paymentID>
        <userID>hc20230705175707</userID>
        <paymentProvider>
            <key>209</key>
            <value>Aircash</value>
        </paymentProvider>
        <amount currencyCode="GBP">5.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>103b98a2-fcab-412c-9606-d5b8bfdffd6c</id>
            <definition>
                <key>550</key>
                <value>InitiateRefusedByProvider</value>
            </definition>
            <createdOn>2023-07-05T15:57:17.9888373Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>3000</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseMessage</key>
                    <value>Invalid currency.</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">5.78</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>1346</value>
            </detail>
        </paymentDetails>
    </payment>
</initiatePaymentResponse>

Example initiatePaymentResponse with error InitiateRequestProviderCommunicationErrorOccurred:

<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>B2BTestMerchant</merchantID>
        <shopID>AircashProviderShop</shopID>
        <paymentMethod>
            <key>299</key>
            <value>VoucherRedirectDeposit</value>
        </paymentMethod>
        <merchantTransactionID>hc-20230705-180142</merchantTransactionID>
        <paymentID>962a5394-7476-4baa-bf1a-66234e35f139</paymentID>
        <userID>hc20230705180142</userID>
        <paymentProvider>
            <key>209</key>
            <value>Aircash</value>
        </paymentProvider>
        <amount currencyCode="EUR">5.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>5e4b0780-e136-4b24-8c77-948d38015319</id>
            <definition>
                <key>325</key>
                <value>InitiateRequestProviderCommunicationErrorOccurred</value>
            </definition>
            <createdOn>2023-07-05T16:02:02.6989674Z</createdOn>
            <description>Error occurred while processing payment communication for Payment[ID='47620329'].</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">5</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>1387</value>
            </detail>
        </paymentDetails>
    </payment>
</initiatePaymentResponse>

Notifications

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

Example handlePaymentStateChangedNotificationRequest (DepositedByProvider):

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                                              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payment
         xmlns="http://www.cqrpayments.com/PaymentProcessing"
         xsi:type="paymentWithPaymentAccount">
	<merchantID>B2BTestMerchant</merchantID>
	<shopID>AircashProviderShop</shopID>
	<paymentMethod>
		<key>299</key>
		<value>VoucherRedirectDeposit</value>
	</paymentMethod>
	<merchantTransactionID>hc-20230623-093940</merchantTransactionID>
	<paymentID>f0b95310-098d-4340-b780-111852826a04</paymentID>
	<userID>hc20230623093940</userID>
	<paymentProvider>
		<key>209</key>
		<value>Aircash</value>
	</paymentProvider>
	<amount currencyCode="EUR">5.0000</amount>
	<creationType>
		<key>1</key>
		<value>User</value>
	</creationType>
	<userIP>127.0.0.1</userIP>
	<state>
		<id>2749db3f-6e9e-4553-9208-8eddfd0a2d5d</id>
		<definition>
			<key>29</key>
			<value>DepositedByProvider</value>
		</definition>
		<createdOn>2023-06-23T07:40:36.547</createdOn>
		<paymentStateDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderStatusCode</key>
				<value>2</value>
			</detail>
		</paymentStateDetails>
	</state>
	<isExecuted>true</isExecuted>
	<baseAmount currencyCode="EUR">5.0000</baseAmount>
	<paymentDetails>
		<detail xsi:type="keyStringValuePair">
			<key>ProviderExternalID</key>
			<value>439</value>
		</detail>
		<detail xsi:type="keyStringValuePair">
			<key>ProviderTransactionID</key>
			<value>35c924ea-c872-46e0-88d8-38f1bd160b4c</value>
		</detail>
	</paymentDetails>
</payment>
</handlePaymentStateChangedNotificationRequest>

Example handlePaymentStateChangedNotificationRequest (RefusedByProvider):

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                                              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payment
         xmlns="http://www.cqrpayments.com/PaymentProcessing"
         xsi:type="paymentWithPaymentAccount">
	<merchantID>B2BTestMerchant</merchantID>
	<shopID>AircashMockShop</shopID>
	<paymentMethod>
		<key>299</key>
		<value>VoucherRedirectDeposit</value>
	</paymentMethod>
	<merchantTransactionID>4866dafd-0b0e-4213-8d0b-2020d5dce5da</merchantTransactionID>
	<paymentID>4c143fde-90f9-48bc-80a7-2482ac9aa8f6</paymentID>
	<userID>97f0afae-7b9b-48c3-aaa1-705733</userID>
	<paymentProvider>
		<key>209</key>
		<value>Aircash</value>
	</paymentProvider>
	<amount currencyCode="EUR">10.0000</amount>
	<creationType>
		<key>1</key>
		<value>User</value>
	</creationType>
	<userIP>127.0.0.1</userIP>
	<state>
		<id>80999d33-a663-40f6-a999-7f6a03d22c7c</id>
		<definition>
			<key>100</key>
			<value>RefusedByProvider</value>
		</definition>
		<createdOn>2023-06-20T15:53:57</createdOn>
		<paymentStateDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderStatusCode</key>
				<value>1</value>
			</detail>
			<detail xsi:type="keyIntValuePair">
				<key>PaymentStateReasonID</key>
				<value>1</value>
			</detail>
		</paymentStateDetails>
	</state>
	<isExecuted>false</isExecuted>
	<baseAmount currencyCode="EUR">10.0000</baseAmount>
	<paymentDetails>
		<detail xsi:type="keyStringValuePair">
			<key>ProviderExternalID</key>
			<value>232</value>
		</detail>
		<detail xsi:type="keyStringValuePair">
			<key>ProviderTransactionID</key>
			<value>7be85342-8677-4c59-beaf-91873f0ae32e</value>
		</detail>
	</paymentDetails>
</payment>
</handlePaymentStateChangedNotificationRequest>

Example handlePaymentStateChangedNotificationRequest (AbortedByCustomer):

<?xml version="1.0" encoding="utf-16"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                                              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payment
         xmlns="http://www.cqrpayments.com/PaymentProcessing"
         xsi:type="paymentWithPaymentAccount">
	<merchantID>B2BTestMerchant</merchantID>
	<shopID>AircashProviderShop</shopID>
	<paymentMethod>
		<key>299</key>
		<value>VoucherRedirectDeposit</value>
	</paymentMethod>
	<merchantTransactionID>hc-20230622-183347</merchantTransactionID>
	<paymentID>90af6f40-302b-4633-9a89-32235baa4f01</paymentID>
	<userID>hc20230622183347</userID>
	<paymentProvider>
		<key>209</key>
		<value>Aircash</value>
	</paymentProvider>
	<amount currencyCode="EUR">0.0000</amount>
	<creationType>
		<key>1</key>
		<value>User</value>
	</creationType>
	<userIP>127.0.0.1</userIP>
	<state>
		<id>c4ef00ec-397b-4ede-a318-a8effe1f75bc</id>
		<definition>
			<key>101</key>
			<value>AbortedByCustomer</value>
		</definition>
		<createdOn>2023-06-22T16:35:16.88</createdOn>
		<paymentStateDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderStatusCode</key>
				<value>3</value>
			</detail>
			<detail xsi:type="keyIntValuePair">
				<key>PaymentStateReasonID</key>
				<value>1</value>
			</detail>
		</paymentStateDetails>
	</state>
	<isExecuted>false</isExecuted>
	<baseAmount currencyCode="EUR">0.0000</baseAmount>
	<paymentDetails>
		<detail xsi:type="keyStringValuePair">
			<key>ProviderExternalID</key>
			<value>331</value>
		</detail>
		<detail xsi:type="keyStringValuePair">
			<key>ProviderTransactionID</key>
			<value>57db5400-3bfa-494d-9e1f-0873de217d54</value>
		</detail>
	</paymentDetails>
</payment>
</handlePaymentStateChangedNotificationRequest>