Offline Bank Transfer Deposit (FNB)

The following method IDs are covered in this section:

IDNameCredit/Debit State
23Offline Bank Transfer DepositDepositedByProvider (29)

Payment method interaction type: Offline Execution (see Interaction Types).

Redirect Integration

Supported.

Backend2Backend Integration

Merchant System needs to make a call to getPaymentInputDataList for getting the bank account data to be displayed to the user and used by her/him to initiate an offline bank transfer deposit using her/his bank channels for doing so.

getPaymentInputDataResponse contains a list of bank details including purpose of payment etc to be displayed to the user.

The generic possible values of getPaymentInputDataListResponse.paymentInputDataList.paymentInputData.data.key are:

key (value type, account type, required)value
PurposeOfPayment (string)The information the user has to enter as purpose of payment (VAN number) in order to can associate the transaction to user
AccountNumber (string)Bank account number
AccountOwner (string)Bank account owner
BankCountryCode2 (string)Bank country code
BankName (string)Bank name
CurrencyCode (string)Bank account currency code
IsActive (boolean)Flag to indicate if account is active or not
PaymentAccountID (string)The payment account ID
UserID (string)User ID
PaymentProviderID (int)The provider identification number

🚧

No payment created yet

After calling the getPaymentInputDataList web method there is no payment created yet. Only if user makes a deposit, provider notifies PXP Financial with the provided information in the getPaymentInputDataListResponse then the payment will be created and corresponding notification sent to merchant.

Example getPaymentInputDataListRequest:

<?xml version="1.0" encoding="utf-8"?>
<getPaymentInputDataRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<merchantID></merchantID>
	<shopID></shopID>
	<user>
		<id>84ff8a91-4216-48c6-bca9-50990f</id>
		<currencyCode>ZAR</currencyCode>
		<address>
			<countryCode2>AT</countryCode2>
		</address>
	</user>
	<paymentMethodID>23</paymentMethodID>
	<details>
		<data xsi:type="keyStringValuePair">
			<key>CurrencyCode</key>
			<value>ZAR</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>CountryCode2</key>
			<value>AT</value>
		</data>
	</details>
</getPaymentInputDataRequest>

Example getPaymentInputDataListResponse:

<?xml version="1.0" encoding="utf-8"?>
<getPaymentInputDataResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<paymentInputData>
		<data xsi:type="keyStringValuePair">
			<key>PurposeOfPayment</key>
			<value>NB1020007</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>AccountNumber</key>
			<value>2000145399</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>AccountOwner</key>
			<value></value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>BankCountryCode2</key>
			<value>ZA</value>
		</data>
     <data xsi:type="keyStringValuePair">
        <key>BankName</key>
        <value>FNB First National Bank</value>
      </data>
		<data xsi:type="keyStringValuePair">
			<key>BranchCode</key>
			<value>210114</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>CurrencyCode</key>
			<value>ZAR</value>
		</data>
		<data xsi:type="keyBooleanValuePair">
			<key>IsActive</key>
			<value>true</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>PaymentAccountID</key>
			<value>FNB_ZAR</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>UserID</key>
			<value>84ff8a91-4216-48c6-bca9-50990f</value>
		</data>
		<data xsi:type="keyIntValuePair">
			<key>PaymentProviderID</key>
			<value>165</value>
		</data>
	</paymentInputData>
</getPaymentInputDataResponse>

Notifications

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

Handling notifications is mandatory for payment methods with Offline Execution, as the payments get created in PXP Financial Payment Service at certain point of time without merchant's involvement, so the Merchant System must be informed about this event and take appropriate action (ship the goods or credit user's account).
The possible payment states in asynchronous handlePaymentStateChangedNotificationRequest are:

Payment StatesDescription
DepositedByProvider (29)Success state; deliver goods

❗️

VAN reference handling

Only references with the format NB + 7 digits, e.g. "NB1234567" will be supported. Payments with a prefix of SBT will be ignored. Payment with references in other formats will be ignored.

Example handlePaymentStateChangedNotificationRequest:

<?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>FNB_shop1</shopID>
    <paymentMethod>
      <key>23</key>
      <value>BankTransferDeposit</value>
    </paymentMethod>
    <merchantTransactionID>4f253a24-acce-4361-81f9-685df16fcc69</merchantTransactionID>
    <paymentID>72f79e39-6f81-4508-83fd-e2270b98ddbf</paymentID>
    <userID>300ae0a6-fb6f-4a0f-b19a-da08b5</userID>
    <paymentProvider>
      <key>165</key>
      <value>FNB</value>
    </paymentProvider>
    <amount currencyCode="ZAR">220.1000</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <state>
      <id>307951b6-6d66-442f-bf43-d74c578a9315</id>
      <definition>
        <key>29</key>
        <value>DepositedByProvider</value>
      </definition>
      <createdOn>2020-02-18T09:54:55.76</createdOn>
      <paymentStateDetails xsi:nil="true" />
    </state>
    <isExecuted>true</isExecuted>
    <baseAmount currencyCode="EUR">16.6500</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>7894</value>
      </detail>
      <detail xsi:type="keyIntValuePair">
        <key>SettlementCurrencyCode</key>
        <value>710</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderTransactionID</key>
        <value>VODS2UNB8KSC</value>
      </detail>
      <detail xsi:type="keyDecimalValuePair">
        <key>SettlementAmount</key>
        <value>220.100000000</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>0</paymentAccountID>
    </paymentAccount>
  </payment>
</handlePaymentStateChangedNotificationRequest>