Paysafecard
Paysafecard
Paysafecard is a payment method for mainly online shopping. When using my paysafecard
during the payment process in an online shop, there is no need to enter the PIN again, only a username and password are required.
When paying with a paysafecard, the consumer enters the 16-digit number and the amount tendered is deducted from the paysafecard balance. Combining PINs allows consumers to use up any remaining credit on a paysafecard PIN. The current balance of each paysafecard as well as its transaction history and production date can be viewed at the official paysafecard site by entering the respective 16 PIN code.
Payments for goods or services other than Euros are converted into Euros at the conversion rate at the time of purchase. |
Commands
Pre Transaction Commands
The first step is to generate a unique order number with the command CREATEORDER.
Transaction Commands
INITIATEPAYMENT
Request Parameters
Required Parameters | Optional Parameters |
---|---|
Optional request parameters CUSTOMERSTATEMENT
and ORDERREFERENCE
, are more restricted about their length and allowed characters than usual.
Initialization example
Paysafecard payment method can be initialized if the merchant sends PAYSAFECARD for parameter INITTYPE, and PAYSAFECARD for PAYMENTTYPE.
|
-
Send a request.
Example of Request for InitiationCOMMAND=INITIATEPAYMENT& MERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_& INITTYPE=PAYSAFECARD& PAYMENTTYPE=PAYSAFECARD& ORDERNUMBER=6036867& LANGUAGE=en& AMOUNT=1& CURRENCY=EUR& APPLICATIONTYPE=S& SERVICEURL=http://yourimprint.com/& CUSTOMERSTATEMENT=eh3462t3hg346& SUCCESSURL=https://yoursuccessurl.com& ORDERDESCRIPTION=Test& FAILUREURL=https://yourfailureurl.com& CONSUMER_MERCHANT_CRM_ID=13423072& DEPOSITAMOUNT=0
-
The response looks like this:
Example of Response for Initiationheader=Content-Type%3A+text%2Fhtml%0D%0A&body=%3Chtml%3E%3Chead%3E%3Ctitle%3Epaysafecard+redirect%3C%2Ftitle%3E%3C%2Fhead%3E%3Cbody%3E%0D%0A%3Cform+name%3D%22paysafecardForm%22+action%3D%22https%3A%2F%2Fcustomer.test.at.paysafecard.com%2Fpsccustomer%2FGetCustomerPanelServlet%3Fcurrency%3DEUR%26mtid%3D2p1000000840-10006691355787469%26amount%3D1.00%26mid%3D1160000872%26locale%3Dnull%22+method%3D%22post%22%3E%0D%0A%0D%0A%3C%2Fform%3E%0D%0A%3Cscript+type%3D%22text%2Fjavascript%22%3E%0D%0A%3C%21--%0D%0Adocument.paysafecardForm.submit%28%29%3B%0D%0A%2F%2F--%3E%0D%0A%3C%2Fscript%3E%3C%2Fbody%3E%3C%2Fhtml%3E&version=qtillserver+3.23.0.48&status=0
-
Decode the text with URL Decoder. Use Notepad ++ or some other URL Decoder. After decoding the response should look like this.
header=Content-Type: text/html &body=<html><head><title>paysafecard redirect</title></head><body> <form name="paysafecardForm" action="https://customer.test.at.paysafecard.com/psccustomer/GetCustomerPanelServlet?currency=EUR&mtid=2p8000000840-10002709106578534&amount=1.00&mid=1160000872&locale=null" method="post"> </form> <script type="text/javascript"> <!-- document.paysafecardForm.submit(); //--> </script></body></html>&version=qtillserver 3.23.0.47&status=0
-
Beautify code (delete everything above and below html tag and uncomment function, and replace every "+" with empty space).
<html> <head> <title>paysafecard redirect </title> </head> <body> <form name="paysafecardForm" action="https://customer.test.at.paysafecard.com/psccustomer/GetCustomerPanelServlet?currency=EUR&mtid=2p8000000840-10002709106578534&amount=1.00&mid=1160000872&locale=null" method="post"> </form> <script type="text/javascript"> document.paysafecardForm.submit(); </script> </body> </html>
-
Execute the HTML, and the Paysafecard mask should be seen in a browser. Enter specific test data for Paysafecard payment method. After that, the merchant will be redirected to the
successUrl
(which is invalid in this example).
VERIFYPAYMENT
Response Parameters
Required Parameters | Optional Parameters | ||
---|---|---|---|
|
Verifying payment example
-
Send a request.
Request ParametersMERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_& COMMAND=VERIFYPAYMENT& APPLICATIONTYPE=S& ORDERNUMBER=6036867& LANGUAGE=en
-
The response looks like this:
Response Parametersorder.1.amount=1.00& payment.1.1.paymentNumber=6036867& payment.1.1.depositAmount=0.00& order.1.orderText=Test& order.1.contractNumber=72ee7187-cf31-4aae-9773-20d6bec114af& payment.1.1.timeModified=31.10.2022+10%3A13%3A25& payment.1.1.operationsAllowed=DEPOSIT%2CAPPROVEREVERSAL& payment.1.1.paymentType=PAYSAFECARD& order.1.merchantNumber=840& payment.1.1.state=payment_approved& order.1.depositAmount=0& order.1.customerStatement=eh3462t3hg346& order.1.providerContractNumber=72ee7187-cf31-4aae-9773-20d6bec114af& order.1.timeModified=31.10.2022+10%3A10%3A32& payment.1.1.providerReferenceNumber=2p7000000840-10006036867207431& order.1.orderNumber=6036867& payment.1.1.gatewayReferenceNumber=6036867& payment.1.1.orderNumber=6036867& payment.1.1.approveAmount=1.00& order.1.approveAmount=1.00& order.1.credits=0& payment.1.1.merchantNumber=840& order.1.payments=1& order.1.currency=EUR& version=qtillserver+3.23.0.48& order.1.refundAmount=0& payment.1.1.currency=EUR& order.1.timeCreated=31.10.2022+10%3A10%3A31& order.1.state=ORDERED& order.1.orderDescription=Test& orders=1& payment.1.1.timeCreated=31.10.2022+10%3A13%3A25& order.1.acquirer=Paysafecard& order.1.paymentType=PAYSAFECARD& order.1.brand=paysafecard& status=0
Post Transaction Commands
GETORDERDETAILS
Response Parameters
Required Parameters | Optional Parameters | ||
---|---|---|---|
|
Getting order details example
-
Send a request.
Request ParametersMERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_& COMMAND=GETORDERDETAILS& ORDERNUMBER=6036867& ADMIN_PASSWORD=9p3a0m5f& APPLICATIONTYPE=S&
-
The response looks like this:
Response Parametersorder.1.amount=1.00& payment.1.1.paymentNumber=6036867& payment.1.1.depositAmount=1.00& order.1.orderText=Test& order.1.contractNumber=72ee7187-cf31-4aae-9773-20d6bec114af& payment.1.1.timeModified=31.10.2022+10%3A15%3A00& payment.1.1.paymentType=PAYSAFECARD& order.1.merchantNumber=840& payment.1.1.state=payment_deposited& order.1.depositAmount=1.00& order.1.customerStatement=eh3462t3hg346& order.1.providerContractNumber=72ee7187-cf31-4aae-9773-20d6bec114af& order.1.orderNumber=6036867& order.1.timeModified=31.10.2022+10%3A10%3A32& payment.1.1.providerReferenceNumber=2p7000000840-10006036867207431& payment.1.1.gatewayReferenceNumber=6036867& payment.1.1.orderNumber=6036867& objectsTotal=1& payment.1.1.approveAmount=1.00& order.1.approveAmount=0& order.1.credits=0& payment.1.1.merchantNumber=840& order.1.payments=1& order.1.currency=EUR& version=qtillserver+3.23.0.48& order.1.state=ORDERED& order.1.timeCreated=31.10.2022+10%3A10%3A31& payment.1.1.currency=EUR& order.1.refundAmount=0& order.1.orderDescription=Test& orders=1& payment.1.1.timeCreated=31.10.2022+10%3A13%3A25& order.1.paymentType=PAYSAFECARD& order.1.brand=paysafecard& order.1.acquirer=Paysafecard& payment.1.1.batchNumber=300000592& status=0
DEPOSIT
The transaction is automatically deposited for Paysafecard and all payment methods that are part of Paysafecard. |
The transaction can be deposited:
-
By using the command DEPOSIT (see an example!).
This is only possible if the transaction is not deposited in any other way. By default, a Paysafe-Transaction is deposited automatically. |
Deposit
-
Send a request.
Request ParametersMERCHANTKEY=43gADp5.UOZxPTet6O8o8K6o-7RefQB3BO21OMu4chB65LJUI_& COMMAND=DEPOSIT& ORDERNUMBER=6036867& PAYMENTNUMBER=6036867& AMOUNT=1.00& CURRENCY=EUR& LANGUAGE=en& APPLICATIONTYPE=S
-
The response looks like this:
Response Parametersversion=qtillserver+3.23.0.48& paymentNumber=6036867& status=0
Query Commands
For every payment method commands QUERYORDERS, QUERYCREDITS, and QUERYBATCHES are used.
Order Flow Diagram

To interpret this diagram, the successful completion of a NEW PAYMENT is assumed. Starting from this operation it’s possible to carry out different commands.
For an explanation of the different status descriptions included in this diagram have a look at payment.<n>.<m>.state and order.<n>.state which are response parameters of command GETORDERDETAILS.
|
For an explanation of the different status descriptions included in this diagram have a look at payment.<n>.<m>.state and order.<n>.state which are response parameters of command GETORDERDETAILS.
|
All possible commands for specific acquirers are found here. |