Menu

Przelewy24

Note: To learn about the features of Przelewy24, there's an overviewhere

How to integrate Przelewy24 payments:

Direct payment request

For Przelewy24 payments, the <shopperEmailAddress> is mandatory:

Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="YOUR_MERCHANT CODE">
  <submit>
    <order orderCode="YOUR_ORDER_CODE"><!--Use a unique order code each time-->
      <description>YOUR_DESCRIPTION</description>
      <amount currencyCode="PLN" value="100" exponent="2" />
    <orderContent>
      <![CDATA[ ]]>
    </orderContent>
      <paymentDetails>
        <PRZELEWY-SSL shopperCountryCode="PL">
          <successURL>http://www.worldpay.com/?successURL</successURL>
          <cancelURL>http://www.worldpay.com/?cancelURL</cancelURL>
          <pendingURL>http://www.worldpay.com/?pendingURL</pendingURL>
        </PRZELEWY-SSL>
      </paymentDetails>
      <shopper>
        <shopperEmailAddress>shopper@worldpay.com</shopperEmailAddress><!--Mandatory-->
      </shopper>
    </order>
  </submit>
</paymentService>
Parameter nameDescription
statementNarrativeCurrently, Przelewy24 does not support this.
## Hosted payment request We recommend that you provide the shopperEmailAddress in the Hosted model. To redirect shoppers directly to the Przelewy24 payment pages, you can append the following string to the end of the redirect URL, which is provided in the XML response from Worldpay: &country=PL&preferredPaymentMethod=PRZELEWY-SSL
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="YOUR_MERCHANT CODE">
  <submit>
    <order orderCode="YOUR_ORDER_CODE" installationId="1234567"><!--Use a unique order code each time. Contact Worldpay if you haven't got an installationID-->
      <description>Test order</description>
      <amount value="100" currencyCode="PLN" exponent="2" />
      <orderContent>
        <![CDATA[ ]]>
      </orderContent>
      <paymentMethodMask>
        <include code="ALL" />
      </paymentMethodMask>
      <shopper>
        <shopperEmailAddress>shopper@worldpay.com</shopperEmailAddress>
      </shopper>
    </order>
  </submit>
</paymentService>
## Payment outcomes ### Successful
Shopper pays
Event 1:The shopper successfully completes a payment for PLN1.00 on the Przelewy24 payment pages and Worldpay receives the asynchronous authorisation from Przelewy24 within 5 seconds.
Behaviour:The email address of the shopper.
URL:N/A
URL Example:http://www.worldpay.com/?success&orderKey=ADMINCODE^MERCHANTCODE^Example_Przelewy24_Order_Code&paymentStatus=AUTHORISED&paymentAmount=100&paymentCurrency=PLN&mac=344df0de5148250e51182fb2eff779ee
Payment Status:The payment status changes to AUTHORISED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN'
'http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService merchantCode="MERCHANTCODE" version="1.4"><!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>
          PRZELEWY-SSL
        </paymentMethod>
        <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        <lastEvent>
          AUTHORISED
        </lastEvent>
        <balance accountType="IN_PROCESS_AUTHORISED">
         <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        </balance>
        <riskScore value="41"/>
      </payment>
      <journal journalType="AUTHORISED">
        <bookingDate>
          <date dayOfMonth="25" month="07" year="2013"/>
        </bookingDate>
        <accountTx accountType="IN_PROCESS_AUTHORISED" batchId="19">
         <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Payment captured
Event 2:WPG captures the payment.
Behaviour:The automatic capture application runs in WPG to automatically capture the payment.
URL:No URL is returned to the shopper as the shopper journey is already complete.
URL Example:N/A
Payment Status:The payment status changes to CAPTURED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService merchantCode="MERCHANTCODE" version="1.4"><!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>
          PRZELEWY-SSL
        </paymentMethod>
        <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        <lastEvent>
          CAPTURED
        </lastEvent>
        <balance accountType="IN_PROCESS_CAPTURED">
          <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        </balance>
        <riskScore value="41"/>
      </payment>
      <journal journalType="CAPTURED">
        <bookingDate>
          <date dayOfMonth="25" month="07" year="2013"/>
        </bookingDate>
        <accountTx accountType="IN_PROCESS_AUTHORISED" batchId="41">
          <amount currencyCode="PLN" debitCreditIndicator="debit" exponent="2" value="100"/>
        </accountTx>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="53">
          <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Payment settled
Event 3:The payment is settled internally in WPG.
Behaviour:The automatic capture application runs in WPG to automatically settle the payment.
URL:No URL is returned to the shopper as the shopper journey is already complete.
URL Example:N/A
Payment Status:The payment status changes to SETTLED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService merchantCode="MERCHANTCODE" version="1.4"><!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>
          PRZELEWY-SSL
        </paymentMethod>
        <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        <lastEvent>
          SETTLED
        </lastEvent>
        <balance accountType="SETTLED_BIBIT_COMMISSION">
          <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="1"/>
        </balance>
        <balance accountType="SETTLED_BIBIT_NET">
          <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="19"/>
        </balance>
        <riskScore value="41"/>
      </payment>
      <journal description="1 PLN = 0.20128 GBP" journalType="SETTLED">
        <bookingDate>
          <date dayOfMonth="31" month="07" year="2013"/>
        </bookingDate>
        <accountTx accountType="SETTLED_BIBIT_COMMISSION">
          <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="1"/>
        </accountTx>
        <accountTx accountType="SETTLED_BIBIT_NET" batchId="34">
          <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="19"/>
        </accountTx>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="53">
          <amount currencyCode="PLN" debitCreditIndicator="debit" exponent="2" value="100"/>
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>

Invalid data entry

Incorrect login
Event:The shopper provides incorrect login credentials on their banks login page
Behaviour:The credentials are validated on the shopper’s banks login page. The shopper remains on their banks login page until the shopper either:
  • Types valid data
  • Closes down their web browser session
URL:N/A
URL Example:No URL is returned as the shopper's bank has not returned the shopper to WorldPay through Przelewy24.
Payment Status:The payment status remains as SHOPPER_REDIRECTED
Notification Example:No notification is produced

Time out

Time out (redirect)
Event 1:The shopper's order has timed out before they re-direct to their bank account's login page
Behaviour:A time-out error message is displayed on the Przelewy24 website with an error code of ‘err102’. The shopper remains on the Przelewy24 website until the shopper either:
  • Selects ‘Next…’ to return to merchant
  • Closes down their web browser session
URL:pendingURL with a status of OPEN
URL Example:http://www.worldpay.com/?pending&orderKey=ADMINCODE^MERCHANTCODE&Example_Przelewy24_Order_Code&status=OPEN
No URL is returned if the shopper closes down their web browser session.
Payment Status:The payment status remains at SHOPPER_REDIRECTED
Notification Example:No notification is generated.
Time out (payment)
Event 2:The shopper's order has timed out before they submit their payment after logging into their bank account
Behaviour:A time out error message appears on the Przelewy24 website with an error code of err102. The shopper remains on the Przelewy24 website until the shopper either:
  • Selects Next to return to the merchant
  • Closes down their web browser session
URL:pendingURL with a status of OPEN
URL Example:http://www.worldpay.com/?pending&orderKey=ADMINCODE^MERCHANTCODE&Example_Przelewy24_Order_Code&status=OPEN
No URL is returned if the shopper closes down their web browser.
Payment Status:The payment status remains at SHOPPER_REDIRECTED
Notification Example:No notification is generated

Exception conditions

Authorisation + 5 seconds
Event 1:Worldpay receives the asynchronous authorisation from Przelewy24 more than 5 seconds after the shopper has completed their journey.
Behaviour:pendingURL with status=OPEN is returned
URL:pendingURL
URL Example:http://www.worldpay.com/?pending&orderKey=ADMINCODE^MERCHANTCODE^Example_Przelewy24_Order_Code&status=OPEN
Payment Status:The payment status changes to AUTHORISED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService merchantCode="MERCHANTCODE" version="1.4"><!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>
          PRZELEWY-SSL
        </paymentMethod>
        <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        <lastEvent>
          AUTHORISED
        </lastEvent>
        <balance accountType="IN_PROCESS_AUTHORISED">
          <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        </balance>
        <riskScore value="41"/>
      </payment>
      <journal journalType="AUTHORISED">
        <bookingDate>
          <date dayOfMonth="25" month="07" year="2013"/>
        </bookingDate>
        <accountTx accountType="IN_PROCESS_AUTHORISED" batchId="19">
          <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Error with PSP
Event 2:The payment cannot be processed due to technical issues at Przelewy24.
Behaviour:pendingURL with a status = ERROR is returned..
URL:pendingURL
URL Example:http://worldpay.com/?pending&orderKey=ADMINCODE^MERCHANTCODE&EXAMPLE_Przelewy24_Order_Code&status=ERROR
Payment Status:The payment status remains at SHOPPER_REDIRECTED
Notification Example:No notification is generated
Invalid amount
Event 3:The Merchant submits a XML direct order request that is above the maximum and below the minimum transaction amount, for the Przelewy24 payment method.
Behaviour:The Merchant’s system receives a synchronous error code 7 response.
A response message of ‘Payment Method PRZELEWY-SSL is unknown; The Payment Method is not available.’appears.
URL:N/A
URL Example:N/A
Payment Status:An order with no payment status is created.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService merchantCode="MERCHANTCODE" version="1.4"><!--Will contain the merchant code used in the request-->
  <reply>
    <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
      <error code="7">
        <![CDATA[Payment Method PRZELEWY-SSL is unknown; The Payment Method is not available.]]>
      </error>
    </orderStatus>
  </reply>
</paymentService>
Invalid amount
Event 4:The Merchant submits a XML redirect order request that is above the maximum and below the minimum transaction amount, for the Przelewy24 payment method.
Behaviour:On the Worldpay hosted payment pages, the Przelewy24 payment method is not available for the shopper to select.
URL:N/A
URL Example:N/A
Payment Status:An order with no payment status is created
Notification Example:No notification is generated as the shopper is not able to chose the Przelewy24 payment method.

Cancellation

Shopper cancels (payment page)
Event 1:The shopper cancels their order on the Przelewy24 payment page.
Behaviour:Przelewy24 currently has no cancel option their payment page.
URL:N/A
URL Example:N/A
Payment Status:The payment status remains at SHOPPER_REDIRECTED
Notification Example:No notification is generated.
Shopper cancels (bank)
Event 2:The shopper cancels their order after logging into their bank account.
Behaviour:A payment status cannot be determined message is displayed on the Przelewy24 website with an error code of ‘err04’.
The shopper remains on the Przelewy24 website until the shopper either:
  • Selects ‘Next…’ to return to merchant
  • Closes down their web browser session
URL:pendingURL with a status of ERROR.
URL Example:http://www.worldpay.com/?pending&orderKey=ADMINCODE^MERCHANTCODE&Example_Przelewy24_Order_Code&status=ERROR
No URL is returned if the shopper closes their web browser session.
Payment Status:The payment status remains at SHOPPER_REDIRECTED
Notification Example:No notification is generated.

Refunds

Refund requested
Event 1:The Merchant requests a refund of 1.00 PLN from the Merchant Interface (MI).
Behaviour:The merchant requests a refund of the settled payment on the MI. The Merchant’s settlement currency in the example below is GBP.
URL:N/A
URL Example:N/A
Payment Status:The payment status changes to SENT_FOR_REFUND.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN' 'http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService merchantCode="MERCHANTCODE" version="1.4"><!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>
          PRZELEWY-SSL
        </paymentMethod>
        <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        <lastEvent>
          SENT_FOR_REFUND
        </lastEvent>
        <balance accountType="SETTLED_BIBIT_COMMISSION">
          <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="1"/>
        </balance>
        <balance accountType="SETTLED_BIBIT_NET">
          <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="19"/>
        </balance>
        <balance accountType="IN_PROCESS_CAPTURED">
         <amount currencyCode="PLN" debitCreditIndicator="debit" exponent="2" value="100"/>
        </balance>
        <riskScore value="1"/>
      </payment>
      <journal journalType="SENT_FOR_REFUND">
        <bookingDate>
          <date dayOfMonth="27" month="08" year="2013"/>
        </bookingDate>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="66">
          <amount currencyCode="PLN" debitCreditIndicator="debit" exponent="2" value="100"/>
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Refund sent
Event 2:The refund request is successfully sent to Przelewy24.
Behaviour:The Worldpay Payment Service successfully submits the refund request to Przelewy24. The Merchants settlement currency in the below example is GBP. The Worldpay settlement currency in the below example is PLN.
URL:N/A
URL Example:N/A
Payment Status:The payment status changes to REFUNDED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN' 'http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService merchantCode="MERCHANTCODE" version="1.4"><!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>
            PRZELEWY-SSL
          </paymentMethod>
          <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
          <lastEvent>
          REFUNDED
         </lastEvent>
         <balance accountType="SETTLED_BIBIT_COMMISSION">
          <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="1"/>
         </balance>
         <balance accountType="SETTLED_BIBIT_NET">
           <amount currencyCode="GBP" debitCreditIndicator="debit" exponent="2" value="1"/>
         </balance>
         <riskScore value="1"/>
       </payment>
      <journal description="1 PLN = 0.19568 GBP" journalType="REFUNDED">
        <bookingDate>
         <date dayOfMonth="13" month="11" year="2013"/>
        </bookingDate>
        <accountTx accountType="SETTLED_BIBIT_NET" batchId="63">
          <amount currencyCode="GBP" debitCreditIndicator="debit" exponent="2" value="20"/>
        </accountTx>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="97">
          <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Refund fails
Event 3:The refund fails.
Behaviour:The Worldpay Payment Service receives confirmation that the payment has not been successfully sent to the shopper’s bank account.

In the below example, the authorised amount is 1.00 PLN and the refund amount that has failed is 1.00 PLN. The Merchants settlement currency is GBP.
URL:N/A
URL Example:N/A
Payment Status:The payment status changes to REFUND_FAILED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService merchantCode="MERCHANTCODE" version="1.4"><!--Will contain the merchant code used in the request-->
  <notify>
   <orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>
          PRZELEWY-SSL
        </paymentMethod>
        <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        <lastEvent>
          REFUND_FAILED
        </lastEvent>
        <balance accountType="SETTLED_BIBIT_COMMISSION">
          <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="1"/>
        </balance>
        <balance accountType="SETTLED_BIBIT_NET">
          <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="19"/>
        </balance>
        <riskScore value="21"/>
      </payment>
      <journal description="test" journalType="REFUND_FAILED">
        <bookingDate>
          <date dayOfMonth="19" month="12" year="2013"/>
        </bookingDate>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="103">
          <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>

Transfer reports

Settled

This is an example of a settled transaction in an XML transfer report for PLN 1.00 where the merchant's account settles in GBP.

Copied!
<?xml version="1.0" encoding="UTF-8"?>
<orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
  <payment>
    <paymentMethod>
      PRZELEWY-SSL
    </paymentMethod>
    <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
    <lastEvent>
      SETTLED
    </lastEvent>
    <balance accountType="SETTLED_BIBIT_NET">
      <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="19"/>
    </balance>
    <balance accountType="SETTLED_BIBIT_COMMISSION">
      <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="1"/>
    </balance>
  </payment>
  <journal description="1 PLN = 0.20128 GBP" journalType="SETTLED">
    <bookingDate>
      <date dayOfMonth="31" hour="17" minute="16" month="7" second="17" year="2013"/>
    </bookingDate>
    <accountTx accountType="SETTLED_BIBIT_COMMISSION">
      <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="1"/>
    </accountTx>
    <accountTx accountType="SETTLED_BIBIT_NET" batchId="34">
      <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="19"/>
    </accountTx>
    <accountTx accountType="IN_PROCESS_CAPTURED" batchId="53">
      <amount currencyCode="PLN" debitCreditIndicator="debit" exponent="2" value="100"/>
    </accountTx>
  </journal>
</orderStatusEvent>

Refunded

Copied!
<?xml version="1.0" encoding="UTF-8"?>
<orderStatusEvent orderCode="ORDER_CODE"><!--Will contain the order code used in the request-->
  <payment>
    <paymentMethod>
      PRZELEWY-SSL
    </paymentMethod>
    <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
    <lastEvent>
      REFUNDED
    </lastEvent>
    <balance accountType="SETTLED_BIBIT_NET">
      <amount currencyCode="GBP" debitCreditIndicator="debit" exponent="2" value="1"/>
    </balance>
    <balance accountType="SETTLED_BIBIT_COMMISSION">
      <amount currencyCode="GBP" debitCreditIndicator="credit" exponent="2" value="1"/>
    </balance>
  </payment>
  <journal description="1 PLN = 0.19576 GBP" journalType="REFUNDED">
    <bookingDate>
       <date dayOfMonth="30" hour="9" minute="42" month="8" second="2" year="2013"/>
    </bookingDate>
    <accountTx accountType="SETTLED_BIBIT_NET" batchId="42">
      <amount currencyCode="GBP" debitCreditIndicator="debit" exponent="2" value="20"/>
    </accountTx>
    <accountTx accountType="IN_PROCESS_CAPTURED" batchId="66">
      <amount currencyCode="PLN" debitCreditIndicator="credit" exponent="2" value="100"/>
    </accountTx>
  </journal>
</orderStatusEvent>