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:

IDNameCredit/Debit State
303ProfeeRedirectDepositDepositedByProvider(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

711

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
BrowserHeaderUserAgentSoftware 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:

StateDescription
DepositedByProviderTransaction was successful
RefusedByProviderUnsuccessful transaction reported by provider
DepositErrorReportedByProviderUnsuccessful transaction due to redirect URL failure reported by provider
AbortedByCustomerUnsuccessful 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
BrowserHeaderUserAgentSoftware used by the client. Expected format: soft vX.Y.. Optional field.
IsCardPaymentShould 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:

StateDescription
DepositedByProviderTransaction was successful
RefusedByProviderUnsuccessful transaction reported by provider
DepositErrorReportedByProviderUnsuccessful transaction due to redirect URL failure reported by provider
AbortedByCustomerUnsuccessful 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>