MoneySafeWithdrawal via MoneySafe

MoneySafe is a secure wallet option accepted online at betting websites. It is a popular payment option in Greece.

The following method IDs are covered in this section:

IDNameCredit/Debit State
296MoneySafeWithdrawalWithdrawnByProvider(20)

Payment method interaction type: Redirection to External Payment Provider (see Interaction Types).
After the user choose the payment method on merchant's site the merchant has to send the initiatePaymentRequest with user's mobile phone number which he/she used when registered with MoneySafe.

Backend2BackendIntegration

The following parameter has to be provided in the initiatePaymentRequest.specificPaymentData xml section:

key (value type, account type, required)value
AccountNumber (string, required)User's account number

Example initiatePaymentRequest:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <merchantID>KalixaAcceptDEMO</merchantID>
    <shopID>KalixaAcceptDEMO</shopID>
    <merchantTransactionID>444v444c-4444-2g22-2222-4gf2f224fhey</merchantTransactionID>
    <paymentMethodID>296</paymentMethodID>
    <amount currencyCode="EUR">10.00</amount>
    <userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
    <userSessionID>df07248d-b65f-450c-a018-64f12e9d62fc</userSessionID>
    <creationTypeID>1</creationTypeID>
    <paymentAccount>
        <specificPaymentAccountData>
            <data xsi:type="keyStringValuePair">
                <key>AccountNumber</key>
                <value>5700007650</value>
            </data>
        </specificPaymentAccountData>
    </paymentAccount>
</initiatePaymentRequest>

Example initiatePaymentResponse (WithdrawnByProvider - success case):

<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>KalixaAcceptDEMO</merchantID>
        <shopID>KalixaAcceptDEMO</shopID>
        <paymentMethod>
            <key>296</key>
            <value>MoneySafeWithdrawal</value>
        </paymentMethod>
        <merchantTransactionID>444v444c-4444-2g22-2222-4gf2f224fhey</merchantTransactionID>
        <paymentID>5f5ec0a0-4ba4-4951-ab0f-ed9a06251970</paymentID>
        <userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
        <paymentProvider>
            <key>161</key>
            <value>MoneySafe</value>
        </paymentProvider>
        <amount currencyCode="EUR">10.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <state>
            <id>bc4d8c62-66de-4215-af54-a1ccb0afc7f1</id>
            <definition>
                <key>20</key>
                <value>WithdrawnByProvider</value>
            </definition>
            <createdOn>2018-08-09T08:08:23.0736723Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseMessage</key>
                    <value></value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>00</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>true</isExecuted>
        <baseAmount currencyCode="EUR">10</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>24635069</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>a057231c-05bb-4f0f-a4f0-480004cda5f7</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Example initiatePaymentResponse (RefusedByProvider):

<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>PayrDepositShop</shopID>
        <paymentMethod>
            <key>296</key>
            <value>MoneySafeWithdrawal</value>
        </paymentMethod>
        <merchantTransactionID>444v444c-4444-2g22-2222-4gf2f225fhey</merchantTransactionID>
        <paymentID>56c395f4-2301-4fa6-9563-a705998a9adc</paymentID>
        <userID>99a3af90-5245-48ca-8c21-b23fdf</userID>
        <paymentProvider>
            <key>161</key>
            <value>MoneySafe</value>
        </paymentProvider>
        <amount currencyCode="EUR">1.00</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <state>
            <id>3441e466-4346-4957-8868-d5f299f4ed38</id>
            <definition>
                <key>100</key>
                <value>RefusedByProvider</value>
            </definition>
            <createdOn>2018-08-09T08:34:25.4230026Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseMessage</key>
                    <value>The amount is less than the minimum requiredtransaction amount</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>204</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">1</baseAmount>
        <paymentDetails>
            <detail xsi:type="keyStringValuePair">
                <key>ProviderExternalID</key>
                <value>24635078</value>
            </detail>
        </paymentDetails>
        <paymentAccount>
            <paymentAccountID>a057231c-05bb-4f0f-a4f0-480004cda5f7</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.

Example handlePaymentStateChangedNotificationRequest for RefusedByProvider state

<?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:q1="http://www.cqrpayments.com/PaymentProcessing" xsi:type="paymentWithPaymentAccount">
    <merchantID>B2BTestMerchant</merchantID>
    <shopID>150001</shopID>
    <paymentMethod>
      <key>293</key>
      <value>MoneySafeDeposit</value>
    </paymentMethod>
    <merchantTransactionID>e231dbd2-611a-40b7-b882-dba734f30951</merchantTransactionID>
    <paymentID>f0798a12-dd7e-4f40-8135-07f3e2175457</paymentID>
    <userID>6895456</userID>
    <paymentProvider>
      <key>161</key>
      <value>MoneySafe</value>
    </paymentProvider>
    <amount currencyCode="EUR">552.7700</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>95a98452-33be-4668-b506-cfe97706b6ca</id>
      <definition>
        <key>100</key>
        <value>RefusedByProvider</value>
      </definition>
      <createdOn>2018-10-12T09:52:13.523</createdOn>
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
          <key>ProviderResponseCode</key>
          <value>552</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>ProviderResponseMessage</key>
          <value>Unable to debit destination account</value>
        </detail>
        <detail xsi:type="keyIntValuePair">
          <key>PaymentStateReasonID</key>
          <value>1</value>
        </detail>
      </paymentStateDetails>
    </state>
    <isExecuted>false</isExecuted>
    <baseAmount currencyCode="EUR">552.7700</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>25406574</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderTransactionID</key>
        <value>e80b299d-f6f8-483b-b1ef-7d33d106f845</value>
      </detail>
    </paymentDetails>
  </payment>
</handlePaymentStateChangedNotificationRequest>

handlePaymentStateChangedNotificationRequest states:

StateDescription
WithdrawnByProviderSuccess state
RefusedByProviderPayment is refused by MoneySafe
WithdrawErrorReportedByProviderError is reported by MoneySafe

State diagram:

Diagram below follows transaction states of Moneysafe Withdraw

589