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:

IDNameCredit/Debit State
17PaysafecardWithdrawalExecutedByProvider (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 StatesDescription
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 StatesDescription
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.

ProviderResponseCodeProviderResponseMessageSuggested communication
3162mypaysafecard account not found by provided credentialsUnfortunately, 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.
3195Customer 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.
3167Customer 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.
3168Feature not activated in this country for this KYC Levelsee above
3170Top-up limit exceededsee above
3194Customer yearly payout limit exceeded.see above
3197There is already the maximum number of pay-out accounts assigned to this merchantClient.see above
3198There is already the maximum number of pay-out merchant clients assigned to this accountsee above
All other errorsUnfortunately, 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>
lastStateDefinitonDescription
142ExecutedByProvider 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.