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.
Updated about 3 years ago