ecoPayz Deposit

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

Reversal State

221

ecoPayzDeposit

DepositedByProvider (29)

Cancelled (113)

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

The user should be redirected to the external payment provider where the payment should be confirmed by her/him. After that the ecoPayz provider will send a notification to PXP Financial and the merchant will be asked to confirm or reject the payment. The merchant’s confirmation of the payment will come via a synchronous notification. After the merchant confirms the payment, the ecoPayz provider will redirect the user back to either the SuccessPageURL or the ErrorPageUrl.

Redirect Integration

Currently not supported.

Backend2Backend Integration

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

Parameter

Description

Required

DataType

SuccessPageUrl

The URL to redirect user in case of a successful payment

Yes

String

ErrorPageUrl

The URL to redirect user in case of a successful payment

Yes

String

CustomerID

ID of the customer on merchant. It will be transferred to the provider and it will be displayed to the customer.

No

String

PaymentDescription

Description of the payment. It will be transferred to the provider and it will be displayed to the customer.

No

String

Example initiatePaymentRequest:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <merchantID>AcceptDemo</merchantID>
  <shopID>150001</shopID>
  <merchantTransactionID>d253b911-bdb9-4bb6-84e2-8eb7adea69e2</merchantTransactionID>
  <paymentMethodID>221</paymentMethodID>
  <amount currencyCode="EUR">10.00</amount>
  <userID>5f25cb6c-cd65-4713-859e-9be9cb2bd959</userID>
  <userData>
    <username>5f25cb6c-cd65-4713-859e-be9cb2bd959</username>
  </userData>
  <userIP>127.0.0.1</userIP>
  <userSessionID>dfcf02a0-3dd1-496c-b76e-55d1a521494a</userSessionID>
  <creationTypeID>1</creationTypeID>
  <specificPaymentData>
    <data xsi:type="keyStringValuePair">
      <key>SuccessPageUrl</key>
      <value>http://merchant.com/result?param1=success</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>ErrorPageUrl</q2:key>
      <value>http://merchant.com/result?param1=error</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>PaymentDescription</key>
      <value>Free text string, maximum 255 characters. Must not contain sensitive data.</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>CustomerID</key>
      <value>payer123</value>
    </data>
  </specificPaymentData>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<initiatePaymentResponse 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>AcceptDemo</merchantID>
    <shopID>150001</shopID>
    <paymentMethod>
      <key>221</key>
      <value>ecoPayzDeposit</value>
    </paymentMethod>
    <merchantTransactionID>d253b911-bdb9-4bb6-84e2-8eb7adea69e2</merchantTransactionID>
    <paymentID>cbf84d6e-1821-4052-9db9-6bbb48092ac0</paymentID>
    <userID>5f25cb6c-cd65-4713-859e-9be9cb2bd959</userID>
    <paymentProvider>
      <key>147</:key>
      <value>ecoPayz</value>
    </paymentProvider>
    <amount currencyCode="EUR">10.00</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>b1e00626-ea7d-4017-9f65-020f6b55b6ff</id>
      <definition>
        <key>30</key>
        <value>RedirectURLCreated</value>
      </definition>
      <createdOn>2016-07-28T12:49:37.5555243Z</createdOn>
      <description>http://ecopayz.com/Index?PaymentPageID=2009&amp;TxID=cbf84d6e-1821-4052-9db9-6bbb48092ac0&amp;MerchantAccountNumber=110776&amp;Currency=EUR&amp;Amount=10.00&amp;CustomerIdAtMerchant=payer123&amp;MerchantFreeText=Free+text+string,+maximum+255+characters.+Must+not+contain+sensitive+data.&amp;OnSuccessUrl=http://merchant.com/result?param1=success&amp;OnFailureUrl=http://merchant.com/result?param1=error&amp;CancellationUrl=http://dev.backend.cqrpayments.com/ProviderListeners/Ecopayz/Notification&amp;CallbackUrl=http://dev.backend.cqrpayments.com/ProviderListeners/Ecopayz/Notification&amp;TransferUrl=http://dev.backend.cqrpayments.com/ProviderListeners/Ecopayz/Notification&amp;Checksum=ddd888ae504a9a05a0a77f57be7c57f9</description>
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
          <key>RedirectionUrl</key>
          <value>http://ecopayz.com/Index?PaymentPageID=2009&amp;TxID=cbf84d6e-1821-4052-9db9-6bbb48092ac0&amp;MerchantAccountNumber=110776&amp;Currency=EUR&amp;Amount=10.00&amp;CustomerIdAtMerchant=payer123&amp;MerchantFreeText=Free+text+string,+maximum+255+characters.+Must+not+contain+sensitive+data.&amp;OnSuccessUrl=http://merchant.com/result?param1=success&amp;OnFailureUrl=http://merchant.com/result?param1=error&amp;CancellationUrl=http://dev.backend.cqrpayments.com/ProviderListeners/Ecopayz/Notification&amp;CallbackUrl=http://dev.backend.cqrpayments.com/ProviderListeners/Ecopayz/Notification&amp;TransferUrl=http://dev.backend.cqrpayments.com/ProviderListeners/Ecopayz/Notification&amp;Checksum=ddd888ae504a9a05a0a77f57be7c57f9</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PaymentStateReasonID</key>
          <value>1</value>
        </detail>
      </paymentStateDetails>
    </:state>
    <isExecuted>false</isExecuted>
    <baseAmount currencyCode="EUR">10</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>cbf84d6e-1821-4052-9db9-6bbb48092ac0</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>0</paymentAccountID>
    </paymentAccount>
  </payment>
</initiatePaymentResponse>

Possible payment states in initiatePaymentResponse:

Payment States

Description

DuplicatePaymentValidationFailed (369)

A payment with the same merchantTransactionID already exists.

RedirectURLCreated (30)

This is the regular correct state. Redirect the user to the URL.

A notification is received from provider and a notification is sent to merchant to confirm the payment.

Possible payment states after the provider notification was processed

Payment States

Description

InquiryRequestReceivedFromProvider (529)

The payment was confirmed by customer on provider side and merchant will be notified to confirm or abort payment.

The merchant will receive also the following additional information about the customer from provider in order so that the merchant can perform risk scoring:
Payment details: ‘UserFirstname’, ‘UserLastname’, ‘UserPostalCode’, ‘ClientIP’, ‘UserCountry’

RefusedByProvider

Error state. Payment was refused by provider. Error code received from provider will be provided as a payment state detail ‘ProviderErrorCode’ and ‘ProviderErrorMessage’

DepositErrorReportedByProvider (152)

Error state. Payment was not processed by provider. Reason will be provided as a payment state detail ‘ProviderStatusCode’ and ‘ProviderStatusDescription’

AbortedByCustomer (101)

Error state. User aborted the payment. Redirect user to cancel page.

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 with state=InquiryRequestReceivedFromProvider:

<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest
    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>AcceptDemo</merchantID>
    <shopID>150001</shopID>
    <paymentMethod>
      <key>221</key>
      <value>ecoPayzDeposit</value>
    </paymentMethod>
    <merchantTransactionID>d253b911-bdb9-4bb6-84e2-8eb7adea69e2</merchantTransactionID>
    <paymentID>cbf84d6e-1821-4052-9db9-6bbb48092ac0</paymentID>
    <userID>5f25cb6c-cd65-4713-859e-9be9cb2bd959</userID>
    <paymentProvider>
      <key>147</key>
      <value>ecoPayz</value>
    </paymentProvider>
    <amount currencyCode="EUR">10.0000</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>b361011c-5806-4992-856c-0eacc5a6ac46</id>
      <definition>
        <key>529</key>
        <value>InquiryRequestReceivedFromProvider</value>
      </definition>
      <createdOn>2016-08-11T12:58:11.2806229Z</createdOn>
      <description>Status:'4'</description>
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
          <key>ProviderStatusCode</key>
          <value>4</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>ProviderStatusDescription</key>
          <value>TransactionRequires MerchantConfirmation</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>ce5cdba8-3cfc-4e26-9100-2e114194971f</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>UserFirstname</key>
        <value>John</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>UserLastname</key>
        <value>Doe</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>UserPostalCode</key>
        <value>12345</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ClientIP</key>
        <value>127.0.0.1</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>UserCountry</key>
        <value>GB</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>0</paymentAccountID>
    </paymentAccount>
  </payment>
</handlePaymentStateChangedNotificationRequest>

Example handlePaymentStateChangedNotificationResponse (successful case):

<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationResponse 
    xmlns="http://www.cqrpayments.com/PaymentProcessing" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <resultCode>
    <key>0</key>
    <value>ProcessedSuccessfully</value>
  </resultCode>
  <resultMessage>Approved payment</resultMessage>
</handlePaymentStateChangedNotificationResponse>

Example handlePaymentStateChangedNotificationResponse (error case):

<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationResponse 
    xmlns="http://www.cqrpayments.com/PaymentProcessing"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <resultCode>
        <key>15</key>
        <value>BlockedByMerchant</value>
    </resultCode>
    <resultMessage>Rejected payment</resultMessage>
</handlePaymentStateChangedNotificationResponse>

Possible payment states after handlePaymentStateChangedNotificationResponse:

Payment States

Description

DepositedByProvider (29)

Success state

RefusedByMerchant (342)

Error state