Citadel Direct Deposit

Payment Method Citadel Direct Deposit is used for online banking deposits in the US.

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

156

CitadelDirectDeposit

DepositedByProvider (29)

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

📘

Citadel Direct Deposit Returns

Refer to Bank Transfer (and Wallet) Deposit Returns for information on how to correctly handle the notifications for Bank Transfer Deposit Returns

Redirect Integration

Currently not supported.

Backend2BackendIntegration

The following table contains the fields to be sent in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)

value

MerchantNotificationUrl
(string, required)

The URL where the user will be
redirected after payment execution with payment execution result.

PendingPageUrl (string, required)

The URL to redirect user in case of pending payment

CountryCode2 (string, required)

The two letter ISO code of the country

Example initiatePaymentRequest:

<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <merchantID>YourMerchantID</merchantID>
    <shopID>YourShopID</shopID>
    <merchantTransactionID>d1424c6c-61a6-4b22-b271-a9d9ca873377</merchantTransactionID>
    <paymentMethodID>156</paymentMethodID>
    <amount currencyCode="EUR">10</amount>
    <userID>061d3d1c-0a93-4ab8-8936-6a6896</userID>
    <userData>
        <username>061d3d1c-0a93-4ab8-8936-6a6896</username>
        <firstname xsi:nil="true"/>
        <lastname xsi:nil="true"/>
        <currencyCode xsi:nil="true"/>
        <languageCode xsi:nil="true"/>
        <email xsi:nil="true"/>
        <address xsi:nil="true"/>
    </userData>
    <userIP>127.0.0.1</userIP>
    <userSessionID>86aefacf-193c-433e-b042-a945c6108856</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>MerchantNotificationUrl</key>
            <value>http://notification.url</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>PendingPageUrl</key>
            <value>http://pending/</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>CountryCode2</key>
            <value>at</value>
        </data>
    </specificPaymentData>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <payment xsi:type="paymentWithPaymentAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <merchantID>YourMerchantID</merchantID>
        <shopID>YourShopID</shopID>
        <paymentMethod>
            <key>156</key>
            <value>CitadelDirectDeposit</value>
        </paymentMethod>
        <merchantTransactionID>d1424c6c-61a6-4b22-b271-a9d9ca873377</merchantTransactionID>
        <paymentID>c5d6a9e5-f364-4159-ab31-7fc82a6102ff</paymentID>
        <userID>061d3d1c-0a93-4ab8-8936-6a6896</userID>
        <paymentProvider>
            <key>111</key>
            <value>Citadel</value>
        </paymentProvider>
        <amount currencyCode="EUR">10</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>d84ab002-3a50-4728-96cb-b81715154c7c</id>
            <definition>
                <key>287</key>
                <value>RedirectDataCreated</value>
            </definition>
            <createdOn>2012-07-12T16:19:20.1106805Z</createdOn>
            <description>http://dev.backend.cqrpayments.com/WebMockProviders/Citadel.aspxmerchant_store_id='CITADEL'merchant_legal_name='B2BTestMerchant'merchant_reference='379'merchant_customer_id='061d3d1c-0a93-4ab8-8936-6a6896'country_code=''currency_code='EUR'amount='10.00'merchant_site_url='http://pending/'payment_notification_url='http://dev.backend.cqrpayments.com/ProviderListeners/CitadelDirectDeposit.aspx'</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>RedirectionUrl</key>
                    <value>http://dev.backend.cqrpayments.com/WebMockProviders/Citadel.aspx</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDatamerchant_store_id</key>
                    <value>CITADEL</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDatamerchant_legal_name</key>
                    <value>B2BTestMerchant</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDatamerchant_reference</key>
                    <value>379</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDatamerchant_customer_id</key>
                    <value>061d3d1c-0a93-4ab8-8936-6a6896</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDatacountry_code</key>
                    <value>at</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDatacurrency_code</key>
                    <value>EUR</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataamount</key>
                    <value>10.00</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDatamerchant_site_url</key>
                    <value>http://pending/</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDatapayment_notification_url</key>
                    <value>http://dev.backend.cqrpayments.com/ProviderListeners/CitadelDirectDeposit.aspx</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PostDataKeys</key>
                    <value>merchant_store_id,merchant_legal_name,merchant_reference,merchant_customer_id,country_code,currency_code,amount,merchant_site_url,payment_notification_url</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">10</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>379</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>0</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

The possible payment states in initiatePaymentResponse are listed below:

Payment States

Description

RedirectDataCreated (287)

OK state; Redirect user to the URL

DuplicatePaymentValidationFailed (369)

The payment with same merchantTransactionID already exists.

handleProviderNotificationToMerchantRequest (optional, step 2)

When the merchant receives a notification on their listener they should send it to PXP Financial.

It is possible that the notification from the Provider comes first to the PXP Financial listener and that is the reason why the merchant notification is optional. When PXP Financial receives the notification from the merchant, the payment will be either AbortedByCustomer or PXP Financial will wait for the provider notification and the state of the payment will be PendingOnProvider.

handleProviderNotificationToMerchantRequest:

<handleProviderNotificationToMerchantRequest xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <merchantID>YourMerchantID</merchantID>
    <providerID>111</providerID>
   <content>merchant_reference=379&amp;payment_reference=PR0000001891&amp;status=CANCELLED&amp;amount=10&amp;currency_code=EUR&amp;store_id=MyMerchant&amp;internal_reference=39326233-cb12-45f8-a7d9-974f7573a80b</content>
</handleProviderNotificationToMerchantRequest>

handleProviderNotificationToMerchantResponse:

<handleProviderNotificationToMerchantResponse xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <payment xsi:type="paymentWithPaymentAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <merchantID>YourMerchantID</merchantID>
        <shopID>YourShopID</shopID>
        <paymentMethod>
            <key>156</key>
            <value>CitadelDirectDeposit</value>
        </paymentMethod>
        <merchantTransactionID>d1424c6c-61a6-4b22-b271-a9d9ca873377</merchantTransactionID>
        <paymentID>c5d6a9e5-f364-4159-ab31-7fc82a6102ff</paymentID>
        <userID>061d3d1c-0a93-4ab8-8936-6a6896</userID>
        <paymentProvider>
            <key>111</key>
            <value>Citadel</value>
        </paymentProvider>
        <amount currencyCode="EUR">10.0000</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>21e1acc9-b6a4-4b2c-8f88-7aa1936434b7</id>
            <definition>
                <key>101</key>
                <value>AbortedByCustomer</value>
            </definition>
            <createdOn>2012-07-12T16:19:20.6001805Z</createdOn>
            <description>merchant_reference=379&amp;payment_reference=PR0000001891&amp;status=CANCELLED&amp;amount=10&amp;currency_code=EUR&amp;store_id=MyMerchant&amp;internal_reference=39326233-cb12-45f8-a7d9-974f7573a80b</description>
            <paymentStateDetails xsi:nil="true"/>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">10.0000</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>379</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>39326233-cb12-45f8-a7d9-974f7573a80b</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>0</paymentAccountID>
        </paymentAccount>
    </payment>
</handleProviderNotificationToMerchantResponse>

The possible payment states in handleProviderNotificationToMerchantResponse are:

Payment States

Description

PendingOnProvider (120)

Pending state.

AbortedByCustomer (101)

Error state; The Payment has been aborted by the customer.

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:

<handlePaymentStateChangedNotificationRequest 
    xmlns="http://www.cqrpayments.com/PaymentProcessing" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <payment xsi:type="paymentWithPaymentAccount">
    <merchantID>YourMerchantID</merchantID>
    <shopID>YourShopID</shopID>
    <paymentMethod>
      <key>156</key>
      <value>CitadelDirectDeposit</value>
    </paymentMethod>
    <merchantTransactionID>2d28dfd6-0316-4240-847c-a9869558c046</merchantTransactionID>
    <paymentID>5b9e509b-ab6a-4ca4-a6de-0a78958c47c4</paymentID>
    <userID>a564e6d8-2e06-43b5-a3b2-3b8625</userID>
    <paymentProvider>
      <key>111</key>
      <value>Citadel</value>
    </paymentProvider>
    <amount currencyCode="EUR">10.0000</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>0adf0f58-b877-4155-9879-8a14cc2fb2a6</id>
      <definition>
        <key>29</key>
        <value>DepositedByProvider</value>
      </definition>
      <createdOn>2012-07-13T08:52:31.477</createdOn>
      <description/>
      <paymentStateDetails xsi:nil="true"/>
    </state>
    <isExecuted>true</isExecuted>
    <baseAmount currencyCode="EUR">10.0000</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>380</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>GroupID</key>
        <value>1234</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderTransactionID</key>
        <value>27464</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>0</paymentAccountID>
    </paymentAccount>
  </payment>
</handlePaymentStateChangedNotificationRequest>

The possible payment states are listed below:

Payment States

Description

DepositedByProvider (29)

Success state.

Cancelled (113)

Success state; The payment was cancelled.

ProviderResponseValidationFailed (409)

Error state; Validation failed.