Paysafecard Withdrawal

Payment Method Paysafecard Withdrawals allows to withdraw funds to user that have registered for myPaysafecard.

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

17

PaysafecardWithdrawal

ExecutedByProvider (114)

Payment method interaction type: Synchronous execution (see Interaction Types).

📘

Request validation

Withdrawal requests can additionally be pre-validated before executing them. This will allow to check the eMail address and the myPaysafecard account associated with in prior to performing a withdrawal.

Once the workflow is activated for a merchant, the merchant can initiate a Paysafecard withdrawal payment, and display messages to customer if the payment goes to state ValidationFailed.

If payment is validated correctly, it can be executed atuomatically or manually upon the merchant calling executePaymentAction at any time.

Redirect Integration

Currently not supported.

Backend2BackendIntegration

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)

value

eMailAddress
(string)

PaysafeCard user email address

Example initiatePaymentRequest:

<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <merchantID>YourMerchant</merchantID>
  <shopID>YourShop</shopID>
  <merchantTransactionID> ce6f2cc3-4564-4297-896b</merchantTransactionID>
  <paymentMethodID>200</paymentMethodID>
  <amount currencyCode="USD">25.90</amount>
  <userID>YourUserID</userID>
  <userIP>127.0.0.1</userIP>
  <userSessionID>6a956eae-d903-4a01-8170-20dae92673d1</userSessionID>
  <creationTypeID>1</creationTypeID>
  <specificPaymentData>
    <data xsi1:type="keyStringValuePair">
      <key>EmailAddress</key>
      <value>[email protected]</value>
    </data>
  </specificPaymentData>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing">
  <payment xsi:type="paymentWithPaymentAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <merchantID>YourMerchant</merchantID>
    <shopID>YourShop</shopID>
    <paymentMethod>
      <key>17</key>
      <value>Paysafecard Withdrawal</value>
    </paymentMethod>
    <merchantTransactionID>194112723</merchantTransactionID>
    <paymentID>ff6d6108-7e29-4a81-9ad6-a6a713f485a5</paymentID>
    <userID>1132712</userID>
    <paymentProvider>
      <key>118</key>
      <value>PaysafecardSOPG</value>
        </paymentProvider>
      <amount currencyCode="USD">23.90</amount>
      <creationType>
        <key>1</key>
        <value>User</value>
      </creationType>
      <userIP>127.0.0.1</userIP>
      <state>
        <id>2cdc779f-20d5-4506-855b-13ae5d327f91</id>
        <definition>
          <key>142</key>
          <value>ExecutedByProvide </value>
        </definition>
        <createdOn>2015-03-11T06:28:05.6007387Z</createdOn>
        <paymentStateDetails>
          <detail xsi:type="keyStringValuePair">
            <key>PaymentStateReasonID</key>
            <value>1</value>
          </detail>
        </paymentStateDetails>
      </state>
      <isExecuted>false</isExecuted>
      <baseAmount currencyCode="EUR">19.46</baseAmount>
      <paymentDetails xsi:nil="true"/>               

      </payment>
    </initiatePaymentResponse>

Possible payment states in initiatePaymentResponse:

Payment States

Description

ExecutedByProvider (114)

Success state

DuplicatePaymentValidationFailed (369)

Error state; Duplication of payment.

RefusedByProvider (100)

The payment was refused by provider

ExecuteRequestSentToProvider CommunicationErrorOccurred (339)

Error state due to communication error.

ProviderCommunicationErrorOccurred (233)

Error state due to communication error.

When pre-validation is activated, possible states in initiatePaymentResponse are:

Payment States

Description

VerificationPassed (520)

Pre-validation was successful.

VerificationFailed (521)

Pre-validation with Paysafecard has failed.

Example initiatePaymentResponse (VerificationPassed):

<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>YourMerchant</merchantID>
        <shopID>YourShop</shopID>
        <paymentMethod>
            <key>17</key>
            <value>Paysafecard Withdrawal</value>
        </paymentMethod>
        <merchantTransactionID>PXPTestTransaction_psc09</merchantTransactionID>
        <paymentID>19fffbde-c98a-4ecd-af13-4360ad73c105</paymentID>
        <userID>PXPTestUser</userID>
        <paymentProvider>
            <key>118</key>
            <value>PaysafecardSOPG</value>
        </paymentProvider>
        <amount currencyCode="EUR">1</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>43d85c5d-888a-4625-bea0-1c31056d28e4</id>
            <definition>
                <key>520</key>
                <value>VerificationPassed</value>
            </definition>
            <createdOn>2020-07-10T10:06:22.3735048Z</createdOn>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="USD">1.12</baseAmount>
        <paymentDetails></paymentDetails>
        <paymentAccount>
            <paymentAccountID>0</paymentAccountID>
        </paymentAccount>
    </payment>
</initiatePaymentResponse>

Example initiatePaymentResponse (VerificationPassed):

<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>YourMerchant</merchantID>
        <shopID>YourShop</shopID>
        <paymentMethod>
            <key>17</key>
            <value>Paysafecard Withdrawal</value>
        </paymentMethod>
        <merchantTransactionID>PXPTestTransaction_psc012</merchantTransactionID>
        <paymentID>58d3596f-af85-4dc6-adac-c836be64c5e3</paymentID>
        <userID>c3a81e52-41fb-4213-a474-3d2a61ad7059</userID>
        <paymentProvider>
            <key>118</key>
            <value>PaysafecardSOPG</value>
        </paymentProvider>
        <amount currencyCode="EUR">150</amount>
        <creationType>
            <key>1</key>
            <value>User</value>
        </creationType>
        <userIP>127.0.0.1</userIP>
        <state>
            <id>58c38db0-1320-410c-824f-577a4d6566b9</id>
            <definition>
                <key>521</key>
                <value>VerificationFailed</value>
            </definition>
            <createdOn>2021-10-12T09:20:25.1939527Z</createdOn>
            <description>Customer balance exceeded.</description>
            <paymentStateDetails>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseCode</key>
                    <value>3167</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>ProviderResponseMessage</key>
                    <value>Customer balance exceeded.</value>
                </detail>
                <detail xsi:type="keyStringValuePair">
                    <key>PaymentStateReasonID</key>
                    <value>1</value>
                </detail>
            </paymentStateDetails>
        </state>
        <isExecuted>false</isExecuted>
        <baseAmount currencyCode="EUR">150</baseAmount>
        <paymentDetails></paymentDetails>
    </payment>
</initiatePaymentResponse>

When the payment goes to state VerificationFailed, the payment has the PaymentStateAdditionalDetails ProviderResponseCode and ProviderResponseMessage. The column Suggested communication below indicates suggested messages from Paysafecard to display to the customer when these errors appear.

ProviderResponseCode

ProviderResponseMessage

Suggested communication

3162

mypaysafecard account not found by provided credentials

Unfortunately, no my paysafecard account exists under the e-mail address
you have entered.
Please check the address for a typing error. If you do not have a my paysafecard
account, you can register for one online now for free.

3195

Customer account details do not match.

The personal details associated with your my paysafecard account do not
match the details of this account. Please check the first names, surnames and
dates of birth entered in both accounts and request the payout again.

3167

Customer balance exceeded.

Unfortunately, the payout could not be completed due to a problem which
has arisen with your my paysafecard account. paysafecard has already sent
you an e-mail with further information on this. Please follow the instructions
found in this e-mail before requesting the payout again.

3168

Feature not activated in this country for this KYC Level

see above

3170

Top-up limit exceeded

see above

3194

Customer yearly payout limit exceeded.

see above

3197

There is already the maximum number of pay-out accounts assigned to this merchantClient.

see above

3198

There is already the maximum number of pay-out merchant clients assigned to this account

see above

All other errors

Unfortunately, it was not possible to complete the payout due to a
technical problem. Please try again at a later time. If the problem persists,
please contact our service team at ... (the merchant should list here his support contact details).

Execution of payment (optional)

When the payment goes to VerificationPassed, the merchant can execute the payment by called executePaymentAction with actionID 95030. As a result, the payment will go to state ExecutedByProvider.

executePaymentActionRequest:

<executePaymentActionRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <merchantID>YourMerchant</merchantID>
         <shopID>YourShop</shopID>
         <paymentID>19fffbde-c98a-4ecd-af13-4360ad73c105</paymentID>
         <actionID>95030</actionID>
  <remark>test</remark>
</executePaymentActionRequest>

executePaymentActionResponse:

<executePaymentActionResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <statusCode>1</statusCode>
    <actionResults>
        <result xsi:type="keyStringValuePair">
            <key>lastStateDefinition</key>
            <value>142</value>
        </result>
    </actionResults>
</executePaymentActionResponse>

lastStateDefiniton

Description

142

ExecutedByProvider state

Notifications

The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.