Classic API (NewPayment)

1 Important note

Important changes to the Classic API integration protocol based on the WEBAPI/SOAP interface. Learn more!
Documentation of Classic API is for maintenance purposes only - if you wish to integrate PayU services, please use REST API. Classic API is no longer developed and new features and services are only available through REST API.

2 Creating a new payment

To create a new payment, you need to place an appropriate form on your website which will redirect the customer to PayU, to NewPayment procedure (read more in "PayU URLs"). It is advised to use the POST method; if it is impossible, you may apply the GET method. The list of parameters and their description is available at "new payment parameters".

After the payment is finished, the customer will be redirected to UrlPositive or UrlNegative address using the GET method. It may happen that the customer does not go back to the Shop application, and that is why the information transferred using these addresses is not binding, decisions regarding payments cannot be made on its basis.

The method of transferring information about transactions has been described in "exchange of information".

Example form with a minimal number of parameters:

<form action="https://secure.payu.com/paygw/UTF/NewPayment" method="POST" name="payform">
    Name: <input type="text" name="first_name" value=""><br/>
    Surname: <input type="text" name="last_name" value=""><br/>
    E-mail: <input type="text" name="email" value=""><br/>
    <input type="hidden" name="pos_id" value="178893">
    <input type="hidden" name="pos_auth_key" value="gQJQrgD">
    <input type="hidden" name="session_id" value="Zz0cyTCtkbiR7LOpNzrkddZXkgbFbo6A.">
    <input type="hidden" name="amount" value="1000">
    <input type="hidden" name="desc" value="Payment desc">
    <input type="hidden" name="client_ip" value="123.123.123.123">
    <input type="hidden" name="js" value="0">
    <input type="hidden" name="ts" value="124321879">
    <input type="hidden" name="sig" value="80764dcb147ed9c71b5e2dcde26e7b3bd3879c236ccca96e9e21f2ea9c4e91b6">
    <input type="submit" value="Pay via PayU">
</form>
<script language="JavaScript" type="text/javascript">
    <!--
    document.forms['payform'].js.value=1;
    -->
</script>

3 New payment parameters

We recommend to not use special characters in transaction description. Certain characters are not allowed by the banks.
Parameter Required field Data type Description
pos_id Yes INT value assigned by PayU
pos_auth_key Yes STR {7,7} value assigned by PayU
pay_type No ENUM optional1
session_id Yes STR {1,1024} Payment identifier – unique for every customer (a pair of pos_id and session_id identifiers must be unique in the system, i.e. session_id cannot be repeated within the same POS)
amount Yes NUM {1,10} payment amount specified in the lowest currency unit
desc Yes STR {1,50} short description – shown to customer, included in statements
order_id No STR {1,1024} order number
desc2 No STR {0,1024} any information
trsDesc No STR {0,27} Additional transaction description for bank transfers
first_name Yes STR {1,100} first name
last_name Yes STR {1,100} last name
street No STR {0,100} street
street_hn No STR {0,10} home number
street_an No STR {0,10} flat number
city No STR {0,100} city
post_code No STR {0,20} Postal code
country No STR {0,100} Two-letter customer's country code compliant with ISO-3166.
email No STR {1,100} e-mail address;

If value of this parameter is not provided, user will be asked to enter missing data on the PayU website, additionally Installments and Pay later payments may not be possible.
phone No STR {0,100} phone number, you can enter several numbers separated with commas
language No ENUM language code, ISO-639-1 compliant; it can be used to choose language version of PayU-hosted payment methods page (available values for payment method page: cs, en or pl, available values for card payment form: see available language versions)
client_ip Yes STR {7,15} Customer’s IP address in the D{1,3}.D{1,3}.D{1,3}.D{1,3} format
js No ENUM (0,1) Value defines if the customer’s browser has JavaScript enabled
sig Yes STR {64} Checksum of provided form parameters2
ts Yes STR Time stamp used to calculate the sig value

Depending on a payment method, it may be necessary to enter values defined in the table as not required. Additional information can be found next to descriptions of particular payment methods "payment types".

1 If the pay_type parameter is missing, a window with a selection of all payment types available for a given pos_id will be displayed (list of payment types is available in "payment types")

2 Read more in "signing parameters"

4 Transaction statuses

Value Description
1 new
2 cancelled
3 rejected
4 started
5 Waiting for acceptance
7 payment rejected – funds received from a customer despite a transaction being cancelled or funds could not be returned automatically; such situations will be monitored and explained by the PayU team
99 payment received – ended
888 incorrect status – user asked to contact PayU

Additional information about transaction statuses

Status 2

„cancelled” will appear automatically a few days (read more in "payment types") after a transaction was created or started (status 1 or 4) if it is not settled until then (funds will not be sent to the PayU system).

This status will also appear after calling the „cancel” action in the Administration Panel or after calling the Payment/cancel method for a transaction with status 1 or 4.

Status 3

„rejected” will appear when the user calls the „cancel” action in the Panel or the Payment/cancel method for a transaction with status 5 – „waiting for acceptance”, and the chosen payment type does not make it possible to automatically return the funds to the customer (in most available payment types). Status 3 – „rejected” will also appear in the case of settling a „cancelled” (status 2) transaction (PayU system received the funds).

Transactions with this status are currently automatically refunded and transited to status 7.

Status 4

„started” is a temporary stage and does not have to take place; the transaction may move to the „waiting for acceptance” or „ended” status (if „Automatic receipt” is enabled) directly from the „new” status.

Status 5

„waiting for acceptance” will only be displayed if „Automatic receipt” is disabled, in such case the Shop has a specified number of days to accept the payment (this period equals the time of automatic payment cancellation specified in the table in "Payment types" and determined separately for every type of payment). If a payment is not accepted within this period of time, it will be automatically cancelled. A payment is accepted by calling the „Payment/confirm” method or in the Administration Panel.

Status 7

„refund to customer” will appear when a transaction received status 3 – „rejected” and the user clicks on „cancel” in the Panel or calls the Payment/cancel method.

4.1 Transaction statuses transitions

If Automatic receipt of payments is disabled:

If Automatic receipt of payments is enabled:

5 Error codes

Value Description
100 Missing or incorrect value of pos_id parameter
101 Missing session_id parameter
102 Missing ts parameter
103 Missing or incorrect value of sig parameter
104 Missing desc parameter
105 Missing client_ip parameter
106 Missing first_name parameter
107 Missing last_name parameter
108 Missing street parameter
109 Missing city parameter
110 Missing post_code parameter
111 Missing amount parameter
112 incorrect bank account number
113 Missing email parameter
114 Missing phone number
200 Other temporary error
201 Other temporary database error
202 POS with the specified id is blocked
203 Forbidden pay_type value for pos_id
204 Specified payment method (pay_type) is temporarily blocked for a given pos_id, e.g. maintenance break of payment gateway
205 transaction amount lower than the minimal value
206 transaction amount higher than the maximal value
207 exceeded value of all transactions for one customer in the last period of time
208 POS works in the ExpressPayment variant but the activation of this variant of cooperation did not take place (we are waiting for the consent of the Customer Service Department)
209 incorrect pos_id or pos_auth_key number
211 incorrect transaction currency
212 transaction request more frequent than one per minute - for not active company
500 no such transaction exists
501 no authorisation for this transaction
502 transaction started earlier
503 transaction already authorised
504 transaction cancelled earlier
505 transaction previously forwarded for acceptance
506 transaction already accepted
507 error when returning funds to Customer
599 incorrect transaction status, e.g. transaction cannot be credited several times, or another one – please contact us
777 creating this transaction would lead to exceeding a transaction limit for companies under verification; the verification process will take one business day
999 other critical error – please repeat the operation

6 Creating Positive and Negative URLs

After a finished payment process, the customer may be redirected to a URL specified by the Shop. The use of a UrlPositive or UrlNegative depends on a transaction status. The return to Shop addresses are of information character only; no decisions can be taken on their basis.

They may contain the following constants to be exchanged for appropriate values, according to the table below:

Constant Description
%transId% identifier of a new transaction created in the PayU application
%posId% pos_id values
%payType% pay_type values
%sessionId% session_id values
%amountPS% amount values – dot as a separator
%amountCS% amount values – comma as a separator
%orderId% order_id values
%error% error number according to the table in "error codes", it is only used for UrlNegative

Examples:

http://www.sklep.pl/status_ok.html?pos_id=%posId%&session_id=%sessionId%

http://www.sklep.pl/status_error.html?pos_id=%posId%&session_id=%sessionId%&error=%error%

7 PayU application URLs and available procedures

A PayU application URL is created according to the following scheme:

URL = UrlofPlatnosci.pl/Encoding/ProcedureName

where:

UrlofPlatnosci.pl Base address of the PayU application (https://secure.payu.com/paygw)
Encoding One of the following values: ISO, UTF, WIN
ProcedureName One of the following values: NewPayment, Payment/get, Payment/confirm, Payment/cancel

7.1 Encoding

Depending on encoding used by a Shop application, an appropriate charset should be selected for communication with PayU:

Name used in PayU Type of encoding
ISO ISO-8859-2
UTF UTF-8
WIN Windows-1250

Selected encoding should match encoding set in a given POS (point of sale).

7.2 Data format

For the Payment/get, Payment/confirm and Payment/cancel procedures it is also possible to specify a format used for sending data; the formula is the following:

URL = UrlPlatnosci.pl/Encoding/ProcedureName/Format

where the Format may be either “xml” or “txt”; “xml” is selected by default.

8 Signing parameters transferred to a new payment

Shop application must add a checksum of all parameters transferred to the new payment form (NewPayment).

In order to use this option, add additional parameter to the form:

sig Signature of transferred information

Algorithm for signing parameters in the form

  1. Sort all the fields available in the form in the alphabetic, ascending order according to the names of parameters name attribute of the input element. If a given value is not transferred in the form creating a new payment, use an empty string of characters.
  2. Concatenate the keys and values of all the fields according to pre-set order (key=value), separated by the ampersand sign &. The parameters values must be URL encoded (application/x-www-form-urlencoded - a space character is encoded with '+') using appropriate page encoding. Note: capital letters must be used for encoding (e.g. Polish special character "ł" should be "%C5%82", not "%c5%82").
  3. Assign your private key to this sequence of characters (available in the Panel Manager as Second key (MD5)).
  4. Use SHA-256 hash function.

In case the sig value has been calculated incorrectly or the values of other transferred parameters have been changed, the new payment will not be created. The Customer will be redirected to UrlNegative with error code 103.

Pseudo-code of an algorithm for signing parameters in the form

generate_signature(form, secondKey, posId) {
    sortedValues = sortValuesByItsName(form)

    foreach value in sortedValues {
        content = content + parameterName + "=" + urlencode(value) + "&"
    }

    content = content + secondKey
        
    return sha256(content)
}

Signing of example form

Examples of the form for signature:
<form action="https://secure.payu.com/paygw/UTF/NewPayment" method="POST" name="payform">
    Name: <input type="text" name="first_name" value="First Name"><br/>
    Surname: <input type="text" name="last_name" value="Last Name"><br/>
    E-mail: <input type="text" name="email" value="email@email.com"><br/>
    <input type="hidden" name="pos_id" value="999999">
    <input type="hidden" name="pos_auth_key" value="abcDEF">
    <input type="hidden" name="session_id" value="Zz0cyTCtkbiR7LOpNzrkddZXkgbFbo6A.">
    <input type="hidden" name="amount" value="1000">
    <input type="hidden" name="desc" value="Payment desc">
    <input type="hidden" name="client_ip" value="123.123.123.123">
    <input type="hidden" name="js" value="1">
    <input type="hidden" name="ts" value="124321879">
    <input type="submit" value="Pay via PayU">
</form>
Sorting all the fields available in the form in the alphabetic, ascending order according to the names of parameters name attribute of the input element and concatenating the keys and values of all the fields according to pre-set order (key=value), separated by the ampersand sign & with added private key (available in the Panel Manager as Second key (MD5)). Fake second key used in this example is 098f6bcd4621d373cade4e832627b4f6 :
amount=1000&client_ip=123.123.123.123&desc=Payment+desc&email=email%40email.com&first_name=First+Name&js=1&last_name=Last+Name&pos_auth_key=abcDEF&pos_id=999999&session_id=Zz0cyTCtkbiR7LOpNzrkddZXkgbFbo6A.&ts=124321879&098f6bcd4621d373cade4e832627b4f6
The resulting value is used for signing form via hash function SHA-256:
703ca5f6ac791dc244290a30d054039b32ed445c98655568c00ff532e719c6cb                
Form element containing generated signature:
<input type="hidden" name="sig" value="703ca5f6ac791dc244290a30d054039b32ed445c98655568c00ff532e719c6cb">

In case of questions please contact us.

9 Exchange of information about transactions

The Shop application is obliged to verify signatures of transmitted information.

Every command (except for creating new payment) and response generated by PayU is provided with an MD5 signature that makes it possible to verify data integrity.

The signatures are created in accordance with the following formula (where “+” means operation of joining the strings of characters):

sig = md5( pos_id + session_id + value1 + value2 + ... + valuen + ts + key )

where:

pos_id Value assigned by PayU
session_id Payment identifier – unique for each Customer
wartosc1...n A list of additional values specified when describing particular methods
ts Any string of characters, recommended current time in seconds
key String of characters known to PayU and the Shop

In PayU application, there are two key values assigned to a given pos_id,

key1 – key used while checking the signature sent by the Shop (visible as Key(MD5) in the Management Panel)

key2 – key used to generate a signature that is sent to the Shop (visible as Secondary Key(MD5) in the Management Panel)

9.1 Notifying the Shop about a change of transaction status

Each change of transaction status is reported to the Shop application. A POST request is sent to the given UrlOnline address with the following parameters:

Name Description
pos_id POS identifier
session_id value provided by the Shop when creating the payment
ts Timestamp, value required to verify the signature
sig signature of information transferred

Where the sig value is calculated in accordance with the following formula:

sig = md5( pos_id + session_id + ts + key2 )

A message about a change of transaction status does not contain any detailed information. The Shop application MUST individually read transaction data and its current status using mechanisms described in "exchange of information" (section "reading transaction status").

After receiving the request, the Shop application MUST send the “OK” string of characters in response. If another answer is received, it will be saved in the database and the notification will be considered as not received.

The Shop application should take account of situations where a notification is sent several times for the same transaction and the same status. For each repeated notification, the “OK” response should be sent as well.

For one POS, one POST request is sent at a time, but it should be possible to send a few requests for same POS at a time.

Notifications are sent immediately after a payment status changes. If the notification is not received by the Shop application, it will be sent again in accordance with the table below:

Attempt Time since the change od payment's status
1 immediately
2 1 minute
3 2 minutes
4 5 minutes
5 10 minutes
6 30 minutes
7 1 hour
8 2 hours
9 3 hours
10 6 hours
11 9 hours
12 12 hours
13 15 hours
14 18 hours
15 21 hours
16 24 hours
17 36 hours
18 48 hours
19 60 hours
20 72 hours

9.2 Reading the transaction status

In order to read the current state of the SMS transaction, you need to call the Payment/get procedure ("PayU URLs!!!") using the POST method, specifying the following parameters:

Name Description
pos_id POS identifier
session_id value provided by the Shop when creating the payment
ts Timestamp, value required to verify the signature
sig signature of transferred information (read more in "MD5 signatures")

Where the sig value is calculated in accordance with the following formula:

sig = md5( pos_id + session_id + ts + key1 )

In the response you will receive the following pages containing information:

“txt” format:

status:OK
trans_id:7
trans_pos_id:1
trans_session_id:417419
trans_order_id:
trans_amount:200
trans_status:5
trans_pay_type:t
trans_pay_gw_name:pt
trans_desc:Wpłatadlatest@test.pl
trans_desc2:
trans_create:2004-08-2310:39:52
trans_init:2004-08-3113:42:43
trans_sent:2004-08-3113:48:13
trans_recv:
trans_cancel:
trans_auth_fraud:0
trans_ts:1094205761232
trans_sig:b6d68525f724a6d69fb1260874924759
trans_add_client_name: JAN KOWALSKI
trans_add_client_street: UL.NOWOWIEJSKIEGO 8
trans_add_client_city: WARSZAWA
trans_add_client_post_code: 02-638
trans_add_client_account: 80607787095718703296721164
trans_add_client_address: 
            

“xml” format:

<?xml version="1.0"encoding="UTF-8" ?>
<response>
    <status>OK</status>
    <trans>
        <id>7</id>
        <pos_id>1</pos_id>
        <session_id>417419</session_id>
        <order_id></order_id>
        <amount>200</amount>
        <status>5</status>
        <pay_type>t</pay_type>
        <pay_gw_name>pt</pay_gw_name>
        <desc>Wpłatadlatest@test.pl</desc>
        <desc2></desc2>
        <create>2004-08-2310:39:52</create>
        <init>2004-08-3113:42:43</init>
        <sent>2004-08-3113:48:13</sent>
        <recv></recv>
        <cancel></cancel>
        <auth_fraud>0</auth_fraud>
        <ts>1094205828574</ts>
        <sig>a95dc2145079b16a3668175279c35736</sig>
        <add_client_name>JAN KOWALSKI</add_client_name>
        <add_client_street>UL.NOWOWIEJSKIEGO 8</add_client_street>
        <add_client_city>WARSZAWA</add_client_city>
        <add_client_post_code>02-638</add_client_post_code>
        <add_client_account>80607787095718703296721164</add_client_account>
        <add_client_address></add_client_address>
    </trans>
</response>
            

In respect of data sent back by PayU, we calculate the sig value according to the following formula:

sig = md5( pos_id + session_id + order_id + status + amount + desc + ts + key2 )

The meaning of the particular message fields has been described in the following tables:

Basic fields:

Txt field Xml field Meaning
status response/status notification processing status – for correct “OK”
trans_id response/trans/id unique transaction id assigned by PayU
trans_pos_id response/trans/pos_id POS id for which transaction was created
trans_session_id response/trans/session_id value assigned by the Shop application when creating transaction
trans_order_id response/trans/order_id value assigned by the Shop application when creating transaction
trans_amount response/trans/amount current transaction value in the lowest currency unit
trans_status response/trans/status current transaction status matching statuses available at "transaction statuses" subpage
trans_pay_type response/trans/pay_type type of payment matching types available at: "payment types" subpage
trans_pay_gw_name response/trans/pay_gw_name name of the gateway performing the transaction – confidential information of PayU application
trans_desc response/trans/desc value assigned by the Shop application when creating transaction
trans_desc2 response/trans/desc2 value assigned by the Shop application when creating transaction
trans_create response/trans/create transaction creation date
trans_init response/trans/init transaction starting date
trans_sent response/trans/sent date when transaction was transferred for collection
trans_recv response/trans/recv date when transaction was received
trans_cancel response/trans/cance date when transaction was cancelled
trans_auth_fraud response/trans/auth_fraud confidential information of PayU application
trans_ts response/trans/ts value required to calculate signature
trans_sig response/trans/sig notification signature – result of md5 function
trans_add_client_name response/trans/add_client_name client name
trans_add_client_street response/trans/add_client_street client street
trans_add_client_city response/trans/add_client_city client city
trans_add_client_post_code response/trans/add_client_post_code client postal code
trans_add_client_account response/trans/add_client_account client bank account number
trans_add_client_address response/trans/add_client_address client full address

Additional fields – for chosen payment types:

- mBank, BZWBK

Txt field Xml field Meaning
trans_add_cc_number_hash response/trans/add_cc_number_hash hash of the payment sender’s bank account number (field filled out after some time)

- payment card (incl. Masterpass)

Txt field Xml field Meaning
trans_add_cc_classification response/trans/add_cc_classification DEBIT or CREDIT
trans_add_cc_mask_pan response/trans/add_cc_mask_pan masked Primary Account Number /PAN/ (e.g. 543402******4014)
trans_add_cc_number_hash response/trans/add_cc_number_hash hash of the PAN
trans_add_cc_bin response/trans/add_cc_bin BIN – card issuer identification number
trans_add_cc_profile response/trans/add_cc_profile CONSUMER or BUSINESS
trans_add_cc_payment_flow_type response/trans/add_cc_payment_flow_type flow type, e.g. CARD /standard card payment/, MASTERPASS, ONE_CLICK_CARD, ONE_CLICK_CARD_RECURRING
trans_add_cc_scheme response/trans/add_cc_scheme card scheme: VS (Visa), MC (MasterCard and Maestro)
trans_add_cc_response_code response/trans/add_cc_response_code response code, e.g. 000
trans_add_cc_response_code_desc response/trans/add_cc_response_code_desc code description, e.g. 000 - OK
trans_add_cc_3ds_status response/trans/add_cc_3ds_status 3-D Secure result, e.g. AY – OK
trans_add_cc_eci_code response/trans/add_cc_eci_code Electronic Commerce Indicator, e.g. 2 - full authentication (MasterCard), 5 - full authentication (Visa)
trans_add_cc_bin_country response/trans/add_cc_bin_country Two-letter card issuer's country code compliant with ISO-3166, e.g. PL
trans_add_card_installment_proposal_id response/trans/add_card_installment_proposal_id unique identifier of installment proposal *
trans_add_cc_frictionless response/trans/add_cc_frictionless Indicates whether authentication was "challanged" or was "frictionless". More information on this topic can be found in 3DS 2 documentation.
trans_add_cc_3ds_status_desc response/trans/add_cc_3ds_status_desc 3DS status description. More information on this topic can be found in 3DS 2 documentation.

* - used in the service Pay in installments with Mastercard

- ING

Txt field Xml field Meaning
trans_add_cc_number_hash response/trans/add_cc_number_hash hash of the payment sender’s bank account number (field filled out after some time)
trans_add_cc_number response/trans/add_cc_number payment recipient’s bank account number
trans_add_owner_name response/trans/add_owner_name payment recipient’s name
trans_add_owner_address response/trans/add_owner_address payment recipient’s address
trans_add_trans_title response/trans/add_trans_title payment title

- przelew bankowy

Txt field Xml field Meaning
trans_add_cc_number response/trans/add_cc_number payment recipient’s bank account number
trans_add_bank_name response/trans/add_bank_name payment recipient’s bank name
trans_add_owner_name response/trans/add_owner_name payment recipient’s name
trans_add_owner_address response/trans/add_owner_address payment recipient’s address
trans_add_trans_title response/trans/add_trans_title payment title
trans_add_trans_prev response/trans/add_trans_prev link to page with bank transfer form preview
trans_add_trans_add_desc response/trans/add_trans_add_desc additional transaction description placed on the bank transfer form

- płatność testowa

Txt field Xml field Meaning
trans_add_test response/trans/add_test always ”1” value
trans_add_testid response/trans/add_testid transaction identifier

9.3 Receiving payments

In order to receive a payment, i.e. confirm the transaction, we call the Payment/confirm procedure using the POST method, and enter the same parameters as in the case of reading transaction information (read: "exchange of information").

Calling this method is necessary only in case of disabling the “Automatic collection” option for a given payment type.

9.4 Rejecting a payment

In order to cancel or reject a payment, call the Payment/cancel procedure using POST and specify the same parameters as those for retrieving transaction data (see: "exchange of information").

9.5 Transaction status

For the Payment/confirm and Payment/cancel procedures the following pages are retrieved:

Correct execution – “txt” format:

status:OK
trans_id:7
trans_pos_id:1
trans_session_id:417419
trans_ts:1094206530505
trans_sig:9da7c868407fedae6f1b6aca9054632b
                

Correct execution – “xml” format:

<?xml version="1.0" encoding="UTF-8" ?>
<response>
    <status>OK</status>
    <trans>
        <id>7</id>
        <pos_id>1</pos_id>
        <session_id>417419</session_id>
        <ts>1094205828574</ts>
        <sig>a95dc2145079b16a3668175279c35736</sig>
    </trans>
</response>
                

In data returned by PayU, the sig value is calculated according to the following formula:

sig = md5( pos_id + session_id + ts + key2 )

Error – “txt” format:

status:ERROR
error_nr:503
error_message:
                

Error – “xml” format:

<?xml version="1.0" encoding="UTF-8" ?>
<response>
    <status>ERROR</status>
    <error>
        <nr>503</nr>
        <message></message>
    </error>
</response>
                

10 Exchange of information about transactions using WEBAPI/SOAP

Important changes to the Classic API integration protocol based on the WEBAPI/SOAP interface. Learn more!

The described procedures may be used via their WEBAPI/SOAP interface available at:

https://secure.payu.com/api/classic/services/payments

The appropriate WSDL link can be downloaded from:

https://secure.payu.com/api/classic/services/payments?wsdl

11 Website Tools

PayU offers a set of tools which can be used by the Seller to enhance user experience (UX) during the payment process. These tools can be divided into two categories.

The first category is a set of tools which allows for retrieving payment methods in order to display them on the Seller’s system page. A JavaScript tool “injects” available payment methods. The second option allows for retrieving the same data in xml format that can be further processed by the server of Seller’s system.

However, the second category allows for defining the cart with a link. It is a very convenient solution enabling easy integration. You can read more about it in the sections below.

11.1 Dynamic list of payment types – JavaScript

A current payment list for a given POS can be placed on a site by referring to JavaScript code retrieved from PayU.

The code can be found at:

URL = UrlPlatnosci.pl/Encoding/js/PosId/K/paytype.js

where:

UrlPlatnosci.pl Base address of the PayU application (https://secure.payu.com/paygw)
Encoding One of the following values: ISO, UTF, WIN
PosId POS identifier
K First two characters from the Key1 value

Paytype.js contains the following methods:

PlnDrawSelect() Printing the <select> element with an available list of payments
PlnDrawRadio() Printing the list of radio elements with the names of payment types
PlnDrawRadioImg(cols) Printing the list of radio elements with the names and logotypes of payment types; cols parameter – number of columns which will be used to present a table

Example of use:

<script language='JavaScript' type='text/JavaScript'
src='https://secure.payu.com/paygw/ISO/js/1234/xx/paytype.js'>
</script>
<form action="https://secure.payu.com/paygw/ISO/NewPayment"
method="POST" name="payform">
    <input type="hidden" name="pos_id" value="12345">
    <input type="hidden" name="session_id" value="1234565">
    <input type="hidden" name="amount" value="1000">
    <input type="hidden" name="desc" value="Payment description">
    <script language='JavaScript'type='text/JavaScript'>
    PlnDrawSelect();
    </script>
    <input type="hidden" name="client_ip" value="123.123.123.123">
    <input type="hidden" name="js" value="0">
    <input type="submit" value="Pay via PayU">
</form>
<script language="JavaScript" type="text/javascript">
<!--
document.forms['payform'].js.value=1;
-->
</script>
                

11.2 Dynamic list of payment types – xml

A list of the current payment methods for a given POS may be downloaded as xml file.

The appropriate xml file can be found at:

URL = UrlPlatnosci.pl/Encoding/xml/PosId/K/paytype.xml

where:

UrlPlatnosci.pl Base address of the PayU application (https://secure.payu.com/paygw)
Encoding One of the following values: ISO, UTF, WIN
PosId POS identifier
K First two characters from the Key1 value

Example content of the downloaded file:

<?xml version="1.0"encoding="UTF-8" ?>
<paytypes>
    <paytype>
        <type>c</type>
        <name>Payment card</name>
        <enable>true</enable>
        <img>https://secure.payu.com/paygw/images/paytype/on-c.gif</img>
        <min>1.01</min>
        <max>4000.0</max>
    </paytype>
    <paytype>
        <type>m</type>
        <name>mTransfer</name>
        <enable>true</enable>
        <img>https://secure.payu.com/paygw/images/paytype/on-m.gif</img>
        <min>0.5</min>
        <max>999999.99</max>
    </paytype>
...
</paytypes>
                

12 Automatic collection

PayU makes it possible to enable or disable automatic collection in a POS.

Automatic collection enabled

Automatic collection can be configured as other standard payment methods.

If Automatic collection has been enabled, transactions are processed automatically, without manual confirmation.

Automatic collection disabled

Automatic collection can be configured as other standard payment methods.

If Automatic collection has been disabled, transactions are processed only after they have been manually confirmed.

Manual transaction confirmation

To manually confirm a transaction in the Management Panel when Automatic collection is disabled:

  1. Go to the Management Panel.
  2. Go to Transactions > List of transactions.
  3. In the Status field, select Waiting for collection. Optionally, set other search parameters.
  4. Click on Show.
  5. To confirm the transaction, in the Action column, click on Collect.
  6. Check if data is correct and click on OK.

Note: Information about transaction support via API is available in the Information exchange section.

Configuring Automatic collection

Automatic collection can be configured as other standard payment methods.

Related information

Transaction statuses transitions