ProFee redirect deposit

ProFee redirect deposit is an e-wallet payment method developed by Sibilla Solutions Ltd (regulated as an EMI by the Central Bank of Cyprus). ProFee is designed to meet all needs: from an ordinary Internet user to a large online shop. Customer processes payments through an account in an electronic wallet that securely stores users’ payment information and passwords for numerous payment methods and websites.

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

303

ProfeeRedirectDeposit

DepositedByProvider(29)

In addition to the typical e-wallet solution, ProFee also offer merchants the possibility to initiate a card payment transaction that is known as Cards by ProFee. For more details please see section Cards by ProFee

Payment method interaction type: Redirection to External Payment Provider (see Interaction Types).
After choosing the payment method on the merchant's site the user is redirected to the provider's site to enter credentials and SMS code for confirmation. When the payment is executed, ProFee send a notification about the result.

Redirect Integration

Currently not supported.

Sequence diagram

Following diagram describes ProFee deposit

Backend2BackendIntegration

The following table contains the fields to be sent in the initiatePaymentRequest.xml and have special format:

key (value type, account type, required)

value

amount (decimal, required)

Deposit amount. Must be numeric in following format: ####.##

specificPaymentData xml section explained

key (value type, account type, required)

value

SuccessPageUrl
(string, required)

URL to which the user will be redirected if
transaction is successful

ErrorPageUrl
(string, required)

URL to which the user will be redirected if
transaction is unsuccessful

BrowserHeaderUserAgent

Software used by the client. Expected format: soft vX.Y.. Optional field.

specificPaymentAccountData xml section explained

key (value type, account type, required)

value

AccountNumber
(string, required)

User’s phone number. The key parameter of a ProFee user account, there can be only one wallet per number

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>MyMerchant</merchantID>
    <shopID>MyShop</shopID>
    <merchantTransactionID>512-12755-n568-g32662-hgrghhh7</merchantTransactionID>
    <paymentMethodID>303</paymentMethodID>
    <amount currencyCode="RUB">155</amount>
    <userID>c3ba0665-68ef-4daf-a3e6-8e70a1</userID>
    <userIP>127.0.0.1</userIP>
    <userSessionID>8da7fe3c-da36-45c0-b107-ff9f91d71db6</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>BrowserHeaderUserAgent</key>
            <value>Mozilla/5.0</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>SuccessPageUrl</key>
            <value>https://success/?a=b</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>ErrorPageUrl</key>
            <value>https://error/?a=b</value>
        </data>
    </specificPaymentData>
    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>AccountNumber</key>
                <value>79250000000</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>

Example 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>MyMerchant</merchantID>
        <shopID>MyShop</shopID>
        <paymentMethod>
            <key>303</key>
            <value>ProfeeRedirectDeposit</value>
        </paymentMethod>
        <merchantTransactionID>512-12755-n568-g32662-hgrghhh7</merchantTransactionID>
        <paymentID>7eeb6082-1c00-4827-bb0b-ffa2729f037b</paymentID>
        <userID>c3ba0665-68ef-4daf-a3e6-8e70a1</userID>
        <paymentProvider>
            <key>167</key>
            <value>ProFee</value>
        </paymentProvider>
        <amount currencyCode="RUB">155</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>abdc4b1a-c8a9-42ea-874f-371d19d5f4dc</id>
            <definition>
                <key>30</key>
                <value>RedirectURLCreated</value>
            </definition>
            <createdOn>2018-04-03T13:51:38.4471554Z</createdOn>
            <description>http://dev.backend.cqrpayments.com/WebMockProviders/ProFee/Index?paymentID=1613741</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>RedirectionUrl</key>
                    <value>http://dev.backend.cqrpayments.com/WebMockProviders/ProFee/Index?paymentID=1613741</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">3.82</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>999</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>1613741</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>135e618f-f2d0-4e1b-a85a-4bf92f18819a</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 provider notifies PXP Financial on payments that are either Successful (state DepositedByProvider) or Declined (state RefusedByProvider).

Shop notification states:

State

Description

DepositedByProvider

Transaction was successful

RefusedByProvider

Unsuccessful transaction reported by provider

DepositErrorReportedByProvider

Unsuccessful transaction due to redirect URL failure reported by provider

AbortedByCustomer

Unsuccessful transaction aborted by the user

Example Shop notification:

<?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 xsi:type="paymentWithPaymentAccount">
        <merchantID>MyMerchant</merchantID>
        <shopID>MyShop</shopID>
        <paymentMethod>
            <key>303</key>
            <value>ProfeeRedirectDeposit</value>
        </paymentMethod>
        <merchantTransactionID>512-12755-n568-g32662-hgrghhh7</merchantTransactionID>
        <paymentID>7eeb6082-1c00-4827-bb0b-ffa2729f037b</paymentID>
        <userID>c3ba0665-68ef-4daf-a3e6-8e70a1</userID>
        <paymentProvider>
            <key>167</key>
            <value>ProFee</value>
        </paymentProvider>
        <amount currencyCode="RUB">155.0000</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>7892d0d7-3fda-4a27-ba7b-1a4bed05d825</id>
            <definition>
                <key>29</key>
                <value>DepositedByProvider</value>
            </definition>
            <createdOn>2018-04-03T15:09:20.463</createdOn>
            <description />
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderReasonCode</key>
                    <value>paid</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">3.8200</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>1613741</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>999</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>135e618f-f2d0-4e1b-a85a-4bf92f18819a</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>accountNumber</key>
                    <value>79250000000</value>
                </detail>
            </details>
        </paymentAccount>
    </payment>
</handlePaymentStateChangedNotificationRequest>

Cards by ProFee

Backend2BackendIntegration

The following table contains the fields to be sent in the initiatePaymentRequest.xml and have special format:

key (value type, account type, required)

value

amount (decimal, required)

Deposit amount. Must be numeric in following format: ####.##

specificPaymentData xml section explained

key (value type, account type, required)

value

SuccessPageUrl
(string, required)

URL to which the user will be redirected if
transaction is successful

ErrorPageUrl
(string, required)

URL to which the user will be redirected if
transaction is unsuccessful

BrowserHeaderUserAgent

Software used by the client. Expected format: soft vX.Y.. Optional field.

IsCardPayment

Should be "true" if the Cards by ProFee method flow needs to be triggered. If "false" or if the key-value pair is not sent at all, the Wallet method flow is triggered. Optional field.

specificPaymentAccountData xml section explained

key (value type, account type, required)

value

AccountNumber
(string, required)

User’s phone number. The key parameter of a ProFee user account, there can be only one wallet per number

Example initiatePaymentRequest:

<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>ProviderTestShop2</shopID>
    <merchantTransactionID>512-12756-n119-g32925-hgrgh4</merchantTransactionID>
    <paymentMethodID>303</paymentMethodID>
    <amount currencyCode="RUB">12</amount>
    <userID>c3ba0665-68ef-4daf-a3e6-8e70a1</userID>
    <userIP>127.0.0.1</userIP>
    <userSessionID>8da7fe3c-da36-45c0-b107-ff9f91d71db6</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>BrowserHeaderUserAgent</key>
            <value>Mozilla/5.0</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>SuccessPageUrl</key>
            <value>https://success/?a=b</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>ErrorPageUrl</key>
            <value>https://error/?a=b</value>
        </data>
        <data xsi:type="keyBooleanValuePair">
            <key>IsCardPayment</key>
            <value>true</value>
        </data>
    </specificPaymentData>
    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>AccountNumber</key>
                <value>359879027658</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>

Example 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>B2BTestMerchant</merchantID>
        <shopID>ProviderTestShop2</shopID>
        <paymentMethod>
            <key>303</key>
            <value>ProfeeRedirectDeposit</value>
        </paymentMethod>
        <merchantTransactionID>512-12756-n119-g32925-hgrgh4</merchantTransactionID>
        <paymentID>7e52098f-50d6-47d4-b50c-1f91b933a353</paymentID>
        <userID>c3ba0665-68ef-4daf-a3e6-8e70a1</userID>
        <paymentProvider>
            <key>167</key>
            <value>ProFee</value>
        </paymentProvider>
        <amount currencyCode="RUB">12</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>4bfe5ed0-3efe-44d9-b020-fa548b06a62a</id>
            <definition>
                <key>30</key>
                <value>RedirectURLCreated</value>
            </definition>
            <createdOn>2020-05-27T14:49:53.6751304Z</createdOn>
            <description>https://terminal-stage.profee.com/app/wallet/invoice/73DD71840A0C42950B070A1BE45EFA7327AAB98A?t=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJ3YWxJZFwiOlwiV0wtMTAwMDAwMDAwMDAxMjIwOFwiLFwiand0Um9sZVwiOlwiR1VFU1RcIixcInBheW1lbnRJZFwiOm51bGx9IiwiaXNzIjoib25saW5lIiwiaWF0IjoxNTkwNTkwOTkzLCJleHAiOjE1OTA1OTgxOTMsImF1ZCI6InJlc3QtYXBpLHRlcm1pbmFsIn0.RMoR--Ce4e19SDWaCJLUhb7Q0xgAoYSX-0Nr1YSpIuHKUy4-9xv_BBzO661Gtx3I-Pg5iS3yZVAXrYIotMT8EQ</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>RedirectionUrl</key>
                    <value>https://terminal-stage.profee.com/app/wallet/invoice/73DD71840A0C42950B070A1BE45EFA7327AAB98A?t=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJ3YWxJZFwiOlwiV0wtMTAwMDAwMDAwMDAxMjIwOFwiLFwiand0Um9sZVwiOlwiR1VFU1RcIixcInBheW1lbnRJZFwiOm51bGx9IiwiaXNzIjoib25saW5lIiwiaWF0IjoxNTkwNTkwOTkzLCJleHAiOjE1OTA1OTgxOTMsImF1ZCI6InJlc3QtYXBpLHRlcm1pbmFsIn0.RMoR--Ce4e19SDWaCJLUhb7Q0xgAoYSX-0Nr1YSpIuHKUy4-9xv_BBzO661Gtx3I-Pg5iS3yZVAXrYIotMT8EQ</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">0.27</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyBooleanValuePair">
                <key>IsCardPayment</key>
                <value>true</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderTransactionID</key>
                <value>176692</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>RedirectURL</key>
                <value>https://terminal-stage.profee.com/app/wallet/invoice/73DD71840A0C42950B070A1BE45EFA7327AAB98A?t=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJ3YWxJZFwiOlwiV0wtMTAwMDAwMDAwMDAxMjIwOFwiLFwiand0Um9sZVwiOlwiR1VFU1RcIixcInBheW1lbnRJZFwiOm51bGx9IiwiaXNzIjoib25saW5lIiwiaWF0IjoxNTkwNTkwOTkzLCJleHAiOjE1OTA1OTgxOTMsImF1ZCI6InJlc3QtYXBpLHRlcm1pbmFsIn0.RMoR--Ce4e19SDWaCJLUhb7Q0xgAoYSX-0Nr1YSpIuHKUy4-9xv_BBzO661Gtx3I-Pg5iS3yZVAXrYIotMT8EQ</value>
            </detail>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>32047742</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>ab5c2227-7eb3-4a7c-b2be-5442427190fa</paymentAccountID>
            <details>
                <detail xsi:type="keyStringValuePair">
                    <key>accountNumber</key>
                    <value>359879027658</value>
                </detail>
            </details>
        </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 provider notifies PXP Financial on payments that are either Successful (state DepositedByProvider) or Declined (state RefusedByProvider).

Shop notification states:

State

Description

DepositedByProvider

Transaction was successful

RefusedByProvider

Unsuccessful transaction reported by provider

DepositErrorReportedByProvider

Unsuccessful transaction due to redirect URL failure reported by provider

AbortedByCustomer

Unsuccessful transaction aborted by the user

Example Shop notification:

<?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>ProviderTestShop2</shopID>
    <paymentMethod>
      <key>303</key>
      <value>ProfeeRedirectDeposit</value>
    </paymentMethod>
    <merchantTransactionID>512-12756-n119-g32925-hgrgh4</merchantTransactionID>
    <paymentID>7e52098f-50d6-47d4-b50c-1f91b933a353</paymentID>
    <userID>c3ba0665-68ef-4daf-a3e6-8e70a1</userID>
    <paymentProvider>
      <key>167</key>
      <value>ProFee</value>
    </paymentProvider>
    <amount currencyCode="RUB">12.0000</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>4e92ef51-6e72-4477-b514-819e0b037ef2</id>
      <definition>
        <key>29</key>
        <value>DepositedByProvider</value>
      </definition>
      <createdOn>2020-05-27T14:50:50.637</createdOn>
      <paymentStateDetails xsi:nil="true" />
    </state>
    <isExecuted>true</isExecuted>
    <baseAmount currencyCode="EUR">0.2700</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>32047742</value>
      </detail>
      <detail xsi:type="keyBooleanValuePair">
        <key>IsCardPayment</key>
        <value>true</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderTransactionID</key>
        <value>176692</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>RedirectURL</key>
        <value>https://terminal-stage.profee.com/app/wallet/invoice/73DD71840A0C42950B070A1BE45EFA7327AAB98A?t=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJ3YWxJZFwiOlwiV0wtMTAwMDAwMDAwMDAxMjIwOFwiLFwiand0Um9sZVwiOlwiR1VFU1RcIixcInBheW1lbnRJZFwiOm51bGx9IiwiaXNzIjoib25saW5lIiwiaWF0IjoxNTkwNTkwOTkzLCJleHAiOjE1OTA1OTgxOTMsImF1ZCI6InJlc3QtYXBpLHRlcm1pbmFsIn0.RMoR--Ce4e19SDWaCJLUhb7Q0xgAoYSX-0Nr1YSpIuHKUy4-9xv_BBzO661Gtx3I-Pg5iS3yZVAXrYIotMT8EQ</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>ab5c2227-7eb3-4a7c-b2be-5442427190fa</paymentAccountID>
      <details>
        <detail xsi:type="keyStringValuePair">
          <key>accountNumber</key>
          <value>359879027658</value>
        </detail>
      </details>
    </paymentAccount>
  </payment>
</handlePaymentStateChangedNotificationRequest>