ecoPayz Deposit

The following method IDs are covered in this section:

IDNameCredit/Debit StateReversal State
221ecoPayzDepositDepositedByProvider (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:

ParameterDescriptionRequiredDataType
SuccessPageUrl The URL to redirect user in case of a successful paymentYesString
ErrorPageUrl The URL to redirect user in case of a successful paymentYesString
CustomerID ID of the customer on merchant. It will be transferred to the provider and it will be displayed to the customer.NoString
PaymentDescription Description of the payment. It will be transferred to the provider and it will be displayed to the customer.NoString

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 StatesDescription
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 StatesDescription
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 StatesDescription
DepositedByProvider (29)Success state
RefusedByMerchant (342)Error state