Ozow Deposit

Ozow (former i-Pay) Deposit is a online bank transfer deposit payment method for South Africa.

The following method IDs are covered in this section:

IDNameCredit/Debit State
297iPayDepositDepositedByProvider (29)

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

Redirect Integration

Currently not supported.

Backend2BackendIntegration

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)value
SuccessPageUrl
(string, required)
The URL to redirect user in case of successful payment
ErrorPageUrl (string, required)The URL to redirect user in case of unsuccessful payment
CancelPageUrl (string)The URL to redirect user in case of cancellation

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>B2BTestMerchant</merchantID>
	<shopID>iPayDepositShop</shopID>
	<merchantTransactionID>1230d997-b8a8-4881-9d83-b6de6f375169</merchantTransactionID>
	<paymentMethodID>297</paymentMethodID>
	<amount currencyCode="ZAR">150.67</amount>
	<userID>061c601d-0f71-4277-bb66-86ba799b4233</userID>
	<userData>
		<username>061c601d-0f71-4277-bb66-86ba799b4233</username>
		<address>
			<countryCode2>ZA</countryCode2>
		</address>
	</userData>
	<userIP>127.0.0.1</userIP>
	<userSessionID>594844eb-1b94-4217-aa62-d210426b1eb4</userSessionID>
	<creationTypeID>1</creationTypeID>
	<specificPaymentData>
		<data xsi:type="keyStringValuePair">
			<key>SuccessPageUrl</key>
			<value>http://merchant.com/result?param1=success&amp;a=b</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>ErrorPageUrl</key>
			<value>http://merchant.com/result?param1=error&amp;c=d</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>CancelPageUrl</key>
			<value>http://merchant.com/result?param1=cancel&amp;c=d</value>
		</data>
	</specificPaymentData>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<payment xsi:type="paymentWithPaymentAccount">
		<merchantID>B2BTestMerchant</merchantID>
		<shopID>IPayDepositShop</shopID>
		<paymentMethod>
			<key>297</key>
			<value>iPayDeposit</value>
		</paymentMethod>
		<merchantTransactionID>1230d997-b8a8-4881-9d83-b6de6f375169</merchantTransactionID>
		<paymentID>f18f59a8-6c20-43b8-aa1b-d987d78425f7</paymentID>
		<userID>061c601d-0f71-4277-bb66-86ba799b4233</userID>
		<paymentProvider>
			<key>163</key>
			<value>iPay</value>
		</paymentProvider>
		<amount currencyCode="ZAR">150.67</amount>
		<creationType>
			<key>1</key>
			<value>User</value>
		</creationType>
		<userIP>127.0.0.1</userIP>
		<state>
			<id>81d4437c-da5f-4e9b-9422-eb5548d4ffdd</id>
			<definition>
				<key>287</key>
				<value>RedirectDataCreated</value>
			</definition>
			<createdOn>2018-01-11T17:08:12.3390819Z</createdOn>
			<description>http://dev.backend.cqrpayments.com/WebMockProviders/IPayFrontend/Payment
SiteCode='TSTSTE0001'
CountryCode='ZA'
CurrencyCode='ZAR'
Amount='150.67'
TransactionReference='95'
BankReference='95'
CancelUrl='http://merchant.com/result?param1=cancel&amp;c=d'
ErrorUrl='http://merchant.com/result?param1=error&amp;c=d'
SuccessUrl='http://merchant.com/result?param1=success&amp;a=b'
NotifyUrl='http://dev.backend.cqrpayments.com/ProviderListeners/IPay/Notification'
IsTest='False'
HashCheck='87f4dad9392bc4b6285f5470e17ce079fa3eedd60e144804f95fa3e8aa110fc10202b8fd0c65295979cbcf76a0cce90bbbaeefc1406d9b3e66a8e4d05dcae80c'
			</description>
			<paymentStateDetails>
				<detail xsi:type="keyStringValuePair">
					<key>RedirectionUrl</key>
					<value>http://dev.backend.cqrpayments.com/WebMockProviders/IPayFrontend/Payment</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataSiteCode</key>
					<value>TSTSTE0001</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataCountryCode</key>
					<value>ZA</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataCurrencyCode</key>
					<value>ZAR</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataAmount</key>
					<value>150.67</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataTransactionReference</key>
					<value>95</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataBankReference</key>
					<value>95</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataCancelUrl</key>
					<value>http://merchant.com/result?param1=cancel&amp;c=d</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataErrorUrl</key>
					<value>http://merchant.com/result?param1=error&amp;c=d</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataSuccessUrl</key>
					<value>http://merchant.com/result?param1=success&amp;a=b</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataNotifyUrl</key>
					<value>http://dev.backend.cqrpayments.com/ProviderListeners/IPay/Notification</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataIsTest</key>
					<value>False</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataHashCheck</key>
					<value>87f4dad9392bc4b6285f5470e17ce079fa3eedd60e144804f95fa3e8aa110fc10202b8fd0c65295979cbcf76a0cce90bbbaeefc1406d9b3e66a8e4d05dcae80c</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataKeys</key>
					<value>SiteCode,CountryCode,CurrencyCode,Amount,TransactionReference,BankReference,CancelUrl,ErrorUrl,SuccessUrl,NotifyUrl,IsTest,HashCheck</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PaymentStateReasonID</key>
					<value>1</value>
				</detail>
			</paymentStateDetails>
		</state>
		<isExecuted>false</isExecuted>
		<baseAmount currencyCode="EUR">15.07</baseAmount>
		<paymentDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>95</value>
			</detail>
		</paymentDetails>
		<paymentAccount>
			<paymentAccountID>0</paymentAccountID>
		</paymentAccount>
	</payment>
</initiatePaymentResponse>

Possible payment states in initiatePaymentResponse:

Payment StatesDescription
RedirectDataCreated (287)OK state; Redirect data created.
DuplicatePaymentValidationFailed (369)The payment with same merchantTransactionID already exists.

After the redirect to i-Pay, PXP Financial receives a notification from provider and sends an notification to merchant.

Tokenization flow

If the tokenization flow is activated, additional data is passed to Ozow to initiate the payment.

initiatePaymentRequest (when no token is yet created or after a previous token has been deleted):

<?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>B2BTestMerchant</merchantID>
	<shopID>iPayDepositShop</shopID>
	<merchantTransactionID>fd67eb6b-2c11-498e-9b64-187532a7e278</merchantTransactionID>
	<paymentMethodID>297</paymentMethodID>
	<amount currencyCode="ZAR">150.67</amount>
	<userID>184a25ab-49e4-4997-ab4b-388da8cd5070</userID>
	<userData>
		<username>184a25ab-49e4-4997-ab4b-388da8cd5070</username>
		<firstname xsi:nil="true" />
		<lastname xsi:nil="true" />
		<currencyCode xsi:nil="true" />
		<languageCode xsi:nil="true" />
		<email xsi:nil="true" />
		<address>
			<street xsi:nil="true" />
			<houseName xsi:nil="true" />
			<houseNumber xsi:nil="true" />
			<houseNumberExtension xsi:nil="true" />
			<postalCode xsi:nil="true" />
			<city xsi:nil="true" />
			<state xsi:nil="true" />
			<countryCode2>ZA</countryCode2>
			<telephoneNumber xsi:nil="true" />
		</address>
		<identificationNumberType xsi:nil="true" />
		<drivingLicenseNumber xsi:nil="true" />
		<drivingLicenseIssuingState xsi:nil="true" />
	</userData>
	<userIP>127.0.0.1</userIP>
	<userSessionID>069dd085-92a2-43f3-9fb5-d7b5ec32d396</userSessionID>
	<creationTypeID>1</creationTypeID>
	<specificPaymentData>
		<data xsi:type="keyStringValuePair">
			<key>SuccessPageUrl</key>
			<value>http://merchant.com/result?param1=success&amp;a=b</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>ErrorPageUrl</key>
			<value>http://merchant.com/result?param1=error&amp;c=d</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>CancelPageUrl</key>
			<value>http://merchant.com/result?param1=cancel&amp;c=d</value>
		</data>
	</specificPaymentData>
</initiatePaymentRequest>

The POST data for the first Ozow Pay deposit will include the following additional details:

RegisterTokenProfileThe value RegisterTokenProfile will be set as 'True"
TokenNotificationUrlListener URL at PXP to receive token data
TokenDeletedNotificationUrlListener URL at PXP to receive delete token data

initiatePaymentResponse:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<payment xsi:type="paymentWithPaymentAccount">
		<merchantID>B2BTestMerchant</merchantID>
		<shopID>iPayDepositShop</shopID>
		<paymentMethod>
			<key>297</key>
			<value>iPayDeposit</value>
		</paymentMethod>
		<merchantTransactionID>fd67eb6b-2c11-498e-9b64-187532a7e278</merchantTransactionID>
		<paymentID>b9c013b6-18c3-46fc-84d0-185a30725a5d</paymentID>
		<userID>184a25ab-49e4-4997-ab4b-388da8cd5070</userID>
		<paymentProvider>
			<key>163</key>
			<value>iPay</value>
		</paymentProvider>
		<amount currencyCode="ZAR">150.67</amount>
		<creationType>
			<key>1</key>
			<value>User</value>
		</creationType>
		<userIP>127.0.0.1</userIP>
		<state>
			<id>17fd5c72-8890-460a-ab45-31f4cf805753</id>
			<definition>
				<key>287</key>
				<value>RedirectDataCreated</value>
			</definition>
			<createdOn>2021-03-17T10:39:41.9637636Z</createdOn>
			<description>https://api.test2.kalixa.com/WebMockProviders/IPayFrontend/Payment
SiteCode='TSTSTE0001'
CountryCode='ZA'
CurrencyCode='ZAR'
Amount='150.67'
TransactionReference='b9c013b6-18c3-46fc-84d0-185a30725a5d'
BankReference='fd67eb6b-2c11-498e-9'
CancelUrl='http://merchant.com/result?param1=cancel&amp;c=d'
ErrorUrl='http://merchant.com/result?param1=error&amp;c=d'
SuccessUrl='http://merchant.com/result?param1=success&amp;a=b'
NotifyUrl='https://api.test2.kalixa.com/ProviderListeners/IPay/Notification'
IsTest='True'
HashCheck='c2aac16c98726fb624f3d430339da4c68883b8574b5dbeeffc488ca171b9ae39c5eeacdf67aa60badd7437c102f58f6a9980422c64071adea11fbcd6cef21fa5'
RegisterTokenProfile='True'
TokenNotificationUrl='https://api.test.kalixa.com/WebMockProviders/Proxy?url=https%3A//api.test2.kalixa.com/ProviderListeners/providers/163/notifications'
TokenDeletedNotificationUrl='https://api.test.kalixa.com/WebMockProviders/Proxy?url=https%3A//api.test2.kalixa.com/ProviderListeners/providers/163/notifications'
</description>
			<paymentStateDetails>
				<detail xsi:type="keyStringValuePair">
					<key>RedirectionUrl</key>
					<value>https://api.test2.kalixa.com/WebMockProviders/IPayFrontend/Payment</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataSiteCode</key>
					<value>TSTSTE0001</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataCountryCode</key>
					<value>ZA</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataCurrencyCode</key>
					<value>ZAR</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataAmount</key>
					<value>150.67</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataTransactionReference</key>
					<value>b9c013b6-18c3-46fc-84d0-185a30725a5d</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataBankReference</key>
					<value>fd67eb6b-2c11-498e-9</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataCancelUrl</key>
					<value>http://merchant.com/result?param1=cancel&amp;c=d</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataErrorUrl</key>
					<value>http://merchant.com/result?param1=error&amp;c=d</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataSuccessUrl</key>
					<value>http://merchant.com/result?param1=success&amp;a=b</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataNotifyUrl</key>
					<value>https://api.test2.kalixa.com/ProviderListeners/IPay/Notification</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataIsTest</key>
					<value>True</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataHashCheck</key>
					<value>c2aac16c98726fb624f3d430339da4c68883b8574b5dbeeffc488ca171b9ae39c5eeacdf67aa60badd7437c102f58f6a9980422c64071adea11fbcd6cef21fa5</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataRegisterTokenProfile</key>
					<value>True</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataTokenNotificationUrl</key>
					<value>https://api.test.kalixa.com/WebMockProviders/Proxy?url=https%3A//api.test2.kalixa.com/ProviderListeners/providers/163/notifications</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataTokenDeletedNotificationUrl</key>
					<value>https://api.test.kalixa.com/WebMockProviders/Proxy?url=https%3A//api.test2.kalixa.com/ProviderListeners/providers/163/notifications</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PostDataKeys</key>
					<value>SiteCode,CountryCode,CurrencyCode,Amount,TransactionReference,BankReference,CancelUrl,ErrorUrl,SuccessUrl,NotifyUrl,IsTest,HashCheck,RegisterTokenProfile,TokenNotificationUrl,TokenDeletedNotificationUrl</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>PaymentStateReasonID</key>
					<value>1</value>
				</detail>
			</paymentStateDetails>
		</state>
		<isExecuted>false</isExecuted>
		<baseAmount currencyCode="EUR">11.4</baseAmount>
		<paymentDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>b9c013b6-18c3-46fc-84d0-185a30725a5d</value>
			</detail>
		</paymentDetails>
	</payment>
</initiatePaymentResponse>

Once the token has been created, on TokenProfileID and Token will be included in the next payment´s IniitatePaymentResponse.

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>XXXX</merchantID>
	<shopID>XXXX</shopID>
	<merchantTransactionID>ProviderTesting_iPay_Try015</merchantTransactionID>
	<paymentMethodID>297</paymentMethodID>
	<amount currencyCode="ZAR">5.00</amount>
	<userID>4fe41496-5d7b-465f-97c9-a1d1ffc19221</userID>
	<userData>
		<username>4fe41496-5d7b-465f-97c9-a1d1ffc19221</username>
		<firstname xsi:nil="true" />
		<lastname xsi:nil="true" />
		<currencyCode xsi:nil="true" />
		<languageCode xsi:nil="true" />
		<email xsi:nil="true" />
		<address>
			<street xsi:nil="true" />
			<houseName xsi:nil="true" />
			<houseNumber xsi:nil="true" />
			<houseNumberExtension xsi:nil="true" />
			<postalCode xsi:nil="true" />
			<city xsi:nil="true" />
			<state xsi:nil="true" />
			<countryCode2>ZA</countryCode2>
			<telephoneNumber xsi:nil="true" />
		</address>
		<identificationNumberType xsi:nil="true" />
		<drivingLicenseNumber xsi:nil="true" />
		<drivingLicenseIssuingState xsi:nil="true" />
	</userData>
	<userIP>127.0.0.1</userIP>
	<userSessionID>04d2b51e-cad2-4a37-bc2c-285d238dc5c0</userSessionID>
	<creationTypeID>1</creationTypeID>
	<specificPaymentData>
		<data xsi:type="keyStringValuePair">
			<key>SuccessPageUrl</key>
			<value>http://sample.com?result=success</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>ErrorPageUrl</key>
			<value>http://sample.com?result=error</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>CancelPageUrl</key>
			<value>http://sample.com?result=cancel</value>
		</data>
	</specificPaymentData>
</initiatePaymentRequest>
TokenProfileIDToken profile ID
TokenToken hash

The initatePayment response includes the following addtional parameters:

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>XXXX</merchantID>
        <shopID>XXXX</shopID>
        <paymentMethod>
            <key>297</key>
            <value>iPayDeposit</value>
        </paymentMethod>
        <merchantTransactionID>ProviderTesting_iPay_Try015</merchantTransactionID>
        <paymentID>7e32894f-b61d-45a5-90d1-366b9c3fd3c2</paymentID>
        <userID>4fe41496-5d7b-465f-97c9-a1d1ffc19221</userID>
        <paymentProvider>
            <key>163</key>
            <value>iPay</value>
        </paymentProvider>
        <amount currencyCode="ZAR">5.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>ace28359-beaf-437a-9fef-aef38d509fef</id>
            <definition>
                <key>287</key>
                <value>RedirectDataCreated</value>
            </definition>
            <createdOn>2021-03-17T10:27:59.6030222Z</createdOn>
            <description>https://stagingpay.ozow.com&#xD;
SiteCode='TSTSTE0001'&#xD;
CountryCode='ZA'&#xD;
CurrencyCode='ZAR'&#xD;
Amount='5.00'&#xD;
TransactionReference='7e32894f-b61d-45a5-90d1-366b9c3fd3c2'&#xD;
BankReference='ProviderTesting_iPay'&#xD;
CancelUrl='http://sample.com?result=cancel'&#xD;
ErrorUrl='http://sample.com?result=error'&#xD;
SuccessUrl='http://sample.com?result=success'&#xD;
NotifyUrl='https://api.test.kalixa.com/WebMockProviders/Proxy?url=https%3A%2F%2Fapi.test2.kalixa.com%2FProviderListeners%2FIPay%2FNotification'&#xD;
IsTest='True'&#xD;
HashCheck='971789f53029fd240c0ac578d5a63ccb04aa12c948ead5a97ce2a7e489a918fb7a9221a12c6e45ce1748e21b35e31fa813da5e5e5334d90582947ef1d2796fd8'&#xD;
TokenProfileId='9321b77d-f353-46f2-b4a3-cc4281000361'&#xD;
Token='AQICAHhMYfne6NjHfftc8rC5lfRBPvy0taawYUYeFhWIVUPGAwFxxcIfdCPzhNcwdgk5g2tJAAABADCB/QYJKoZIhvcNAQcGoIHvMIHsAgEAMIHmBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDJhpgv6mM4SxCJvCDQIBEICBuFL3RWfnWhbEqaLQapwBz0Xup9Md1P+sKBvt43yYdTzf5A0NonMFn/U8gXWlnZmBp/a5/fSv/1I+ceMIT8In+z3FFFB/2DS0mldLUkR+xpEaKp0PExEeNFRohph6gmZrn/pam1m76ZNnz0JjmdIKohfs/g4eVVgQG9ox6CxhSD83mp2QbOljbVzCEfZ81qd+lUj8V0EHkEXpZqaZpQHsW3C0q0P3juZQ+Pc0ohQmyFsbPyYP41OAgXY='&#xD;
</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>RedirectionUrl</key>
                    <value>https://stagingpay.ozow.com</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataSiteCode</key>
                    <value>TSTSTE0001</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataCountryCode</key>
                    <value>ZA</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataCurrencyCode</key>
                    <value>ZAR</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataAmount</key>
                    <value>5.00</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataTransactionReference</key>
                    <value>7e32894f-b61d-45a5-90d1-366b9c3fd3c2</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataBankReference</key>
                    <value>ProviderTesting_iPay</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataCancelUrl</key>
                    <value>http://sample.com?result=cancel</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataErrorUrl</key>
                    <value>http://sample.com?result=error</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataSuccessUrl</key>
                    <value>http://sample.com?result=success</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataNotifyUrl</key>
                    <value>https://api.test.kalixa.com/WebMockProviders/Proxy?url=https%3A%2F%2Fapi.test2.kalixa.com%2FProviderListeners%2FIPay%2FNotification</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataIsTest</key>
                    <value>True</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataHashCheck</key>
                    <value>971789f53029fd240c0ac578d5a63ccb04aa12c948ead5a97ce2a7e489a918fb7a9221a12c6e45ce1748e21b35e31fa813da5e5e5334d90582947ef1d2796fd8</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataTokenProfileId</key>
                    <value>9321b77d-f353-46f2-b4a3-cc4281000361</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataToken</key>
                    <value>AQICAHhMYfne6NjHfftc8rC5lfRBPvy0taawYUYeFhWIVUPGAwFxxcIfdCPzhNcwdgk5g2tJAAABADCB/QYJKoZIhvcNAQcGoIHvMIHsAgEAMIHmBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDJhpgv6mM4SxCJvCDQIBEICBuFL3RWfnWhbEqaLQapwBz0Xup9Md1P+sKBvt43yYdTzf5A0NonMFn/U8gXWlnZmBp/a5/fSv/1I+ceMIT8In+z3FFFB/2DS0mldLUkR+xpEaKp0PExEeNFRohph6gmZrn/pam1m76ZNnz0JjmdIKohfs/g4eVVgQG9ox6CxhSD83mp2QbOljbVzCEfZ81qd+lUj8V0EHkEXpZqaZpQHsW3C0q0P3juZQ+Pc0ohQmyFsbPyYP41OAgXY=</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataKeys</key>
                    <value>SiteCode,CountryCode,CurrencyCode,Amount,TransactionReference,BankReference,CancelUrl,ErrorUrl,SuccessUrl,NotifyUrl,IsTest,HashCheck,TokenProfileId,Token</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="ZAR">5</baseAmount>
        <paymentDetails></paymentDetails>
        <paymentAccount>
            <paymentAccountID>f64cd5c4-f918-406c-b363-265cec78e582</paymentAccountID>
        </paymentAccount>
    </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.

The final execution status about the payment will come within a payment state change notification to the merchant.

The possible payment states are listed below:

Payment StatesDescription
DepositedByProvider (29)Success state; Payment has been executed.
DepositErrorReportedByProvider (152)Error state; Communication error with provider occurred.
AbortedByCustomerError state; The Payment has been aborted by the customer.
Expired (102)Error state. The payment has been abandoned by the customer and the session has expired.
PendingOnProvider (120)Intermediate state. The bank is delaying the payment for some reason. The can change status within a few hours.
OnInvestigation (341)Intermediate state. The bank has intervened fully and the merchant has to wait for the money being reflected in the merchant´s bank account. The merchant´s operator may then manually move the payment to DepositedByProvider.

Example handlePaymentStateChangedNotificationRequest:

<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<payment xsi:type="paymentWithPaymentAccount">
		<merchantID>B2BTestMerchant</merchantID>
		<shopID>IPayDepositShop</shopID>
		<paymentMethod>
			<key>297</key>
			<value>iPayDeposit</value>
		</paymentMethod>
		<merchantTransactionID>2f8ec4ba-fc56-45a9-9077-61369d3bf314</merchantTransactionID>
		<paymentID>235f0eb8-3f30-43c0-bf01-9b9c94afabcc</paymentID>
		<userID>96326cc4-9fb4-4f3c-b9b7-e5c529bbd820</userID>
		<paymentProvider>
			<key>163</key>
			<value>iPay</value>
		</paymentProvider>
		<amount currencyCode="ZAR">150.6700</amount>
		<creationType>
			<key>1</key>
			<value>User</value>
		</creationType>
		<userIP>127.0.0.1</userIP>
		<state>
			<id>792d5bba-409b-4d2a-86f2-047623f4785c</id>
			<definition>
				<key>29</key>
				<value>DepositedByProvider</value>
			</definition>
			<createdOn>2018-01-12T11:39:27.503</createdOn>
			<description>Result 'Complete' received from the provider.</description>
			<paymentStateDetails>
				<detail xsi:type="keyStringValuePair">
					<key>ProviderResult</key>
					<value>Complete</value>
				</detail>
			</paymentStateDetails>
		</state>
		<isExecuted>true</isExecuted>
		<baseAmount currencyCode="EUR">15.0700</baseAmount>
		<paymentDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>98</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderTransactionID</key>
				<value>c86a5b1a-84b6-43f0-bebe-c7775aa58b66</value>
			</detail>
		</paymentDetails>
		<paymentAccount>
			<paymentAccountID>0</paymentAccountID>
		</paymentAccount>
	</payment>
</handlePaymentStateChangedNotificationRequest>
<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.cqrpayments.com/PaymentProcessing">
       <payment xsi:type="paymentWithPaymentAccount">
              <merchantID>B2BTestMerchant</merchantID>
              <shopID>iPayDepositShop</shopID>
              <paymentMethod>
                     <key>297</key>
                     <value>iPayDeposit</value>
              </paymentMethod>
              <merchantTransactionID>a94f8861-9af3-4607-aaf2-aa0c5ee62fce</merchantTransactionID>
              <paymentID>50800f87-1244-42bd-958c-f5a5da9508dd</paymentID>
              <userID>6772c5d3-c1f0-4cfb-b48e-3c640e761fc4</userID>
              <paymentProvider>
                     <key>163</key>
                     <value>iPay</value>
              </paymentProvider>
              <amount currencyCode="ZAR">150.6700</amount>
              <creationType>
                     <key>1</key>
                     <value>User</value>
              </creationType>
              <userIP>127.0.0.1</userIP>
              <state>
                     <id>a022b51e-877f-4812-8e03-79ee3953270d</id>
                     <definition>
                           <key>152</key>
                           <value>DepositErrorReportedByProvider</value>
                     </definition>
                     <createdOn>2018-01-17T15:03:57.857</createdOn>
                     <paymentStateDetails>
                           <detail xsi:type="keyIntValuePair">
                                  <key>PaymentStateReasonID</key>
                                  <value>1</value>
                           </detail>
                     </paymentStateDetails>
              </state>
              <isExecuted>false</isExecuted>
              <baseAmount currencyCode="EUR">11.4000</baseAmount>
              <paymentDetails>
                     <detail xsi:type="keyStringValuePair">
                           <key>ProviderExternalID</key>
                           <value>358</value>
                     </detail>
                     <detail xsi:type="keyStringValuePair">
                           <key>ProviderTransactionID</key>
                           <value>22cb616d-c7e3-4cd2-9878-e619d18ad89b</value>
                     </detail>
              </paymentDetails>
              <paymentAccount>
                     <paymentAccountID>0</paymentAccountID>
              </paymentAccount>
       </payment>
</handlePaymentStateChangedNotificationRequest>
<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.cqrpayments.com/PaymentProcessing">
       <payment xsi:type="paymentWithPaymentAccount">
              <merchantID>B2BTestMerchant</merchantID>
              <shopID>iPayDepositShop</shopID>
              <paymentMethod>
                     <key>297</key>
                     <value>iPayDeposit</value>
              </paymentMethod>
              <merchantTransactionID>c8bc5d91-24e4-43b3-a460-ee27ae6356f0</merchantTransactionID>
              <paymentID>52ab690f-48a5-4f0e-9822-76529944811b</paymentID>
              <userID>6105d15b-5c1a-479c-8b3e-d24c263068a6</userID>
              <paymentProvider>
                     <key>163</key>
                     <value>iPay</value>
              </paymentProvider>
              <amount currencyCode="ZAR">150.6700</amount>
              <creationType>
                     <key>1</key>
                     <value>User</value>
              </creationType>
              <userIP>127.0.0.1</userIP>
              <state>
                     <id>db26e786-1677-4199-9eb6-96ee48749924</id>
                     <definition>
                           <key>120</key>
                           <value>PendingOnProvider</value>
                     </definition>
                     <createdOn>2018-01-17T15:01:26.97</createdOn>
                     <paymentStateDetails>
                           <detail xsi:type="keyIntValuePair">
                                  <key>PaymentStateReasonID</key>
                                  <value>1</value>
                           </detail>
                     </paymentStateDetails>
              </state>
              <isExecuted>false</isExecuted>
              <baseAmount currencyCode="EUR">11.4000</baseAmount>
              <paymentDetails>
                     <detail xsi:type="keyStringValuePair">
                           <key>ProviderExternalID</key>
                           <value>356</value>
                     </detail>
                     <detail xsi:type="keyStringValuePair">
                           <key>ProviderTransactionID</key>
                           <value>72764077-962a-49a1-aa04-bd619e04e42a</value>
                     </detail>
              </paymentDetails>
              <paymentAccount>
                     <paymentAccountID>0</paymentAccountID>
              </paymentAccount>
       </payment>
</handlePaymentStateChangedNotificationRequest>
<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.cqrpayments.com/PaymentProcessing">
       <payment xsi:type="paymentWithPaymentAccount">
              <merchantID>B2BTestMerchant</merchantID>
              <shopID>iPayDepositShop</shopID>
              <paymentMethod>
                     <key>297</key>
                     <value>iPayDeposit</value>
              </paymentMethod>
              <merchantTransactionID>5f84307e-131d-4e87-b7b7-d4a348450c49</merchantTransactionID>
              <paymentID>f7be31ad-fbc2-4a94-9e9c-a331aae84a14</paymentID>
              <userID>df7763f7-b155-4e3d-abc2-1c8197863666</userID>
              <paymentProvider>
                     <key>163</key>
                     <value>iPay</value>
              </paymentProvider>
              <amount currencyCode="ZAR">150.6700</amount>
              <creationType>
                     <key>1</key>
                     <value>User</value>
              </creationType>
              <userIP>127.0.0.1</userIP>
              <state>
                     <id>16d94e46-de63-447e-8896-ab48bd899d70</id>
                     <definition>
                           <key>341</key>
                           <value>OnInvestigation</value>
                     </definition>
                     <createdOn>2018-01-17T15:01:43.107</createdOn>
                     <paymentStateDetails>
                           <detail xsi:type="keyIntValuePair">
                                  <key>PaymentStateReasonID</key>
                                  <value>1</value>
                           </detail>
                     </paymentStateDetails>
              </state>
              <isExecuted>false</isExecuted>
              <baseAmount currencyCode="EUR">11.4000</baseAmount>
              <paymentDetails>
                     <detail xsi:type="keyStringValuePair">
                           <key>ProviderExternalID</key>
                           <value>357</value>
                     </detail>
                     <detail xsi:type="keyStringValuePair">
                           <key>ProviderTransactionID</key>
                           <value>6ddfa899-1940-4db3-81ca-7fb49ac115f7</value>
                     </detail>
              </paymentDetails>
              <paymentAccount>
                     <paymentAccountID>0</paymentAccountID>
              </paymentAccount>
       </payment>
</handlePaymentStateChangedNotificationRequest>
<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<payment xsi:type="paymentWithPaymentAccount">
		<merchantID>YouMerchantID</merchantID>
		<shopID>YouShopID</shopID>
		<paymentMethod>
			<key>297</key>
			<value>iPayDeposit</value>
		</paymentMethod>
		<merchantTransactionID>a782a20b-b6ec-4e3f-bbd8-80ec4387b850</merchantTransactionID>
		<paymentID>c27ebe7c-9550-4a3e-a574-245382d80a87</paymentID>
		<userID>44b88c7d-e501-48e9-919d-288de9047038</userID>
		<paymentProvider>
			<key>163</key>
			<value>iPay</value>
		</paymentProvider>
		<amount currencyCode="ZAR">150.6700</amount>
		<creationType>
			<key>1</key>
			<value>User</value>
		</creationType>
		<userIP>127.0.0.1</userIP>
		<state>
			<id>8593478c-a48e-4436-ae7b-3200974dc0de</id>
			<definition>
				<key>152</key>
				<value>DepositErrorReportedByProvider</value>
			</definition>
			<createdOn>2018-01-19T17:32:07.283</createdOn>
			<description>Result 'Error' received from the provider.</description>
			<paymentStateDetails>
				<detail xsi:type="keyStringValuePair">
					<key>ProviderResult</key>
					<value>Error</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>ProviderResultMessage</key>
					<value>Message regarding the status of the transaction. This field will not always have a value.</value>
				</detail>
				<detail xsi:type="keyIntValuePair">
					<key>PaymentStateReasonID</key>
					<value>1</value>
				</detail>
			</paymentStateDetails>
		</state>
		<isExecuted>false</isExecuted>
		<baseAmount currencyCode="EUR">15.0700</baseAmount>
		<paymentDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>c27ebe7c-9550-4a3e-a574-245382d80a87</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderTransactionID</key>
				<value>29a79a0f-f28d-411c-9677-d973e1a6c5d3</value>
			</detail>
		</paymentDetails>
		<paymentAccount>
			<paymentAccountID>0</paymentAccountID>
		</paymentAccount>
	</payment>
</handlePaymentStateChangedNotificationRequest>