LiveUpdate Documentation

Last update: Sept 30th, 2016

Summary

  1. How does it work?
  2. LiveUpdate Data
  3. General Data
  4. Order Details
  5. Additional Info
  6. 3DS 2.0 Parameters
  7. Going further - Including Billing and Delivery Information
  8. Authenticating the transaction (HMAC MD5 Signature)
  9. Advanced - One step checkout and Redirect to merchant website
  10. Enabling Google Pay™ for your integration
  11. Installment Payments
  12. Tips and Tricks
  13. Error messages
  14. Complete LiveUpdate Request

1. How does it work?

For each customer that clicks the "Checkout" button in the merchant's website (or mobile application), an HTTP POST must be initiated to https://secure.payu.ro/order/lu.php using the LiveUpdate (LU) API, in order for the order to get started. The customer is then redirected to the PayU payment pages, where he has to enter the data required to authorize the transaction.

2. LiveUpdate Data

The LiveUpdate API is product-based, meaning that any order must contain at least one product, uniquely identified in the merchant's account through it's product code (recommended). The PayU server expects data in the following structure and order:

2.1. General Data

Field Name Description
MERCHANT The merchant's ID, available in Control Panel (Account Management / Account Settings)
ORDER_REF Order reference number in merchant's system (for easier order identification)
ORDER_DATE The date when the order is initiated in the system, in YYYY-MM-DD HH:MM:SS format (e.g.: "2012-05-01 21:15:45")

2.2. Order Details

Field Name Description Optional Field?
ORDER_PNAME[] Array with the product names (maximum length: 155 characters per product name) No
ORDER_PGROUP[] Array with the ID's of the product groups (optional, the group ID's managed in Control Panel - Products / Product Groups ) Yes
ORDER_PCODE[] Array with the product codes (maximum length: 50 characters per product code). If multiple products are sent (in the same or subsequent transactions) with the same product code, PayU will update the product with the corresponding ORDER_PCODE (overwriting all the other product information - name, price, taxes). No
ORDER_PINFO[] Array with additional product info (displayed in the payment pages under the product name) Yes
ORDER_PRICE[] Array with the product prices, positive number, with "." as a decimal separator. No
ORDER_QTY[] Array with the quantities for each product. No
ORDER_VAT[] Array with VAT values for each product in the order. No
ORDER_PRICE_TYPE[] Array that specifies if the ORDER_PRICE[] includes the VAT. Possible values: "GROSS" (VAT included) and "NET" (VAT will be added by PayU). The parameter is optional, but if not specified, the default value is "NET" . Please note that using "NET" and ORDER_VAT[] different from 0 is deprecated and will be removed in the future. Yes
ORDER_SHIPPING Shipping costs for the order. No
PRICES_CURRENCY The currency in which the prices, taxes, shipping costs and discounts are expressed. Accepted values: RON, EUR, USD.
If the parameter is not specified, the default value is RON*.
To transact a different currency than the one in which the prices are specified, use the CURRENCY parameter.
Yes
DISCOUNT The discount value for the order, positive number, with "." as a decimal separator (optional) Yes
DESTINATION_CITY The city where the order delivery is to be made (optional). If the parameter is specified, the customer will not be able to change its value in the PayU payment pages Yes
DESTINATION_STATE The state (county) where the order delivery is to be made (optional). If the parameter is specified, the customer will not be able to change its value in the PayU payment pages. Possible values for validation are in the "State/County List", available in Control Panel . Yes
PAY_METHOD The payment method for the transaction (optional). If the parameter is specified, the customer will not be able to change its value in the PayU payment pages. If the parameter is not specified, a drop-down with the payment methods active on the account will be displayed.

Possible values:
  • CCVISAMC
  • WEBMONEY
  • QIWI
  • MAILRU
  • YANDEX (Do not apply for new customers)
  • EUROSET_SVYAZNOI
  • ALFACLICK
Special value for merchants that have this method active:
  • MASTERPASS
Yes
ORDER_HASH HMAC MD5 signature for the sent data (HMAC is defined in RFC 2104 ). No

2.3. Additional Info

Field Name Description Optional Field?
TESTORDER Text parameter ("TRUE" or "FALSE"), used to initiate transactions in TEST MODE (optional). If the parameter is active, the PayU payment form will be pre-filled with test payment details (you don't need any credit card test numbers). Yes
DEBUG Boolean parameter ("0" or "1"), used to require the PayU support team's assistance during the implementation (optional). If the parameter is active, you can request logs of the communication between your server and PayU. Yes
LANGUAGE Allows setting a specific language for the payment interface (and overriding the language detected by the geolocation) (optional).
Possible values:
  • RO - Romanian
  • EN - English
  • HU - Hungarian
  • EL - Greek
  • BG - Bulgarian
Yes
ORDER_TIMEOUT Sets the interval in which the order can be placed (optional, takes a number of seconds as a value). Yes
TIMEOUT_URL SETS the URL for the redirect of the customer, in case the ORDER_TIMEOUT expired (optional). Yes
AIRLINE_INFO Parameter to be used by airline services operators; see below for structure of this parameter. Yes
Airline Information

The airline information parameter, AIRLINE_INFO, should be provided by any airline services operator merchant. This parameter contains basic information about the passenger and his/her flight ticket.

Parameter Description Required
PASSENGER_NAME First name and last name of the passenger (max. 20 characters) Yes
TICKET_NUMBER Ticket number (max. 14 characters) No
RESTRICTED_REFUND Possibility of refund (0 - no restrictions, 1 - non refundable) No
RESERVATION_SYSTEM Name of reservation system (e.g. ATS = Delta, SABR = Sabre) (max. 4 characters) No
TRAVEL_AGENCY_CODE The code of travel agency (max. 8 characters) No
TRAVEL_AGENCY_NAME The name of travel agency (max. 25 characters) No
FLIGHT_SEGMENTS

An array containing information about this flight transits. First element should have 0 as key, second should have 1 as key etc. The structure of these elements is defined below:

Parameter Description Required
DEPARTURE_DATE Departure date in the format YYYY-MM-DD Yes
DEPARTURE_AIRPORT Departure airport code (max. 3 characters) Yes
DESTINATION_AIRPORT Destination airport code (max. 3 characters) Yes
AIRLINE_CODE Airline 2-letters code No
AIRLINE_NAME Airline name ((max. 20 characters)) No
SERVICE_CLASS Ticket type (class) (economy, business class, etc.) (max. 1 char) No
STOPOVER Displays the possibility of stop-over for the given ticket; 1 = Stop-over is allowed, 0 - not allowed No
FARE_CODE Tariff code (max. 6 characters) No
FLIGHT_NUMBER Flight number (max. 5 characters) No

For instance, the DEPARTURE_DATE of first flight transit/segment would be referenced as the POST variable AIRLINE_INFO[FLIGHT_SEGMENTS][0][DEPARTURE_DATE].

Yes
3ds 2.0 Parameters All the parameters from below, if sent, are included in the signature.

Parameter Description Length Format Mandatory/Optional
ADDRESS_MATCH Indicates whether the cardholder's shipping address and billing address are the same. 2-3 characters String
Values accepted:
  • YES: Shipping address matches billing address
  • NO: Shipping address does not match billing address
Optional
BILL_ADDRESS3 Third line of the street address or equivalent local portion of the cardholder's billing address associated with the card used for this purchase. Variable, maximum 50 characters String
Optional
BILL_STATE_CODE The state or province of the cardholder's billing address associated with the card used for this purchase. Variable, maximum 7 characters String
Format:
The ISO-3166-2 code of the country subdivision:
country - subdivision

Examples:
RO-VN (Romania - Vrancea)
GB-LND (United Kingdom - London)
Optional
HOME_PHONE_COUNTRY_PREFIX The country code of the home phone number. Variable, maximum 3 characters String
Refer to ITU-E.164 for additional information on format.
Optional
HOME_PHONE_SUBSCRIBER The cardholder's home phone number (without the country code). Variable, maximum 15 characters String
Refer to ITU-E.164 for additional information on format.
Optional
MOBILE_PHONE_COUNTRY_PREFIX The country code of the mobile phone number. Variable, maximum 3 characters String
Refer to ITU-E.164 for additional information on format.
Optional
MOBILE_PHONE_SUBSCRIBER The cardholder's mobile phone number (without the country code). Variable, maximum 15 characters String
Refer to ITU-E.164 for additional information on format.
Optional
WORK_PHONE_COUNTRY_PREFIX The country code of the work phone number. Variable, maximum 3 characters String
Refer to ITU-E.164 for additional information on format.
Optional
WORK_PHONE_SUBSCRIBER The cardholder's work phone number (without the country code). Variable, maximum 15 characters String
Refer to ITU-E.164 for additional information on format.
Optional
DELIVERY_ADDRESS3 Third line of the street address or equivalent local portion of the shipping address requested by the cardholder. Variable, maximum 50 characters String
Optional
DELIVERY_STATE_CODE The state or province of the shipping address. Variable, maximum 7 characters String
Format:
The ISO-3166-2 code of the country subdivision:
country - subdivision

Examples:
RO-VN (Romania - Vrancea)
GB-LND (United Kingdom - London)
Optional
CARDHOLDER_FRAUD_ACTIVITY Indicates whether the merchant experienced suspicious activity on the account. 2-3 characters String
Values accepted:
  • YES: Suspicious activity observed
  • NO: No suspicious activity
Optional
DEVICE_CHANNEL Indicates the type of channel interface being used to initiate the transaction. 2 characters String
Values accepted:
  • 01: The transaction was initiated through the mobile SDK.
  • 02: The transaction was initiated through a web browser.
  • 03: 3DS Requestor Initiated. The 3DS Requestor Initiated device channel allows 3-D Secure authentication without the presence of the cardholder.
Optional
CHALLENGE_INDICATOR Indicates whether a challenge is requested for this transaction. For example, for Payment Authentication, a 3DS Requestor may have concerns about the transaction, and request a challenge. 2 characters String
Values accepted:
  • 01: No challenge requested
  • 02: Challenge requested (3DS Requestor Preference)
  • 03: Challenge requested (Mandate)
Optional
CHALLENGE_WINDOW_SIZE An override field that you can pass in to set the challenge window size to display to the end cardholder. The Access Control Server (ACS) will reply with content that is formatted appropriately to this window size to allow for the best user experience. The sizes are width x height in pixels of the window displayed in the cardholder browser window. 2 characters String
Values accepted:
  • 01: 250x400
  • 02: 390x400
  • 03: 500x600
  • 04: 600x400
  • 05: Full page
Optional
ACCOUNT_ADDITIONAL_INFORMATION Additional information about the cardholder’s account provided by the 3DS Requestor. Variable String Optional
TRANSACTION_TYPE Identifies the type of transaction being authenticated. 2 characters String
Values accepted:
  • 01: Goods/ Service Purchase
  • 10: Account Funding
  • 11: Quasi-Cash Transaction
  • 28: Prepaid Activation and Load
Optional
SHIPPING_INDICATOR The shipping method selected by the customer. 2 characters String
Values accepted:
  • 01: Ship to cardholder billing address
  • 02: Ship to another verified address on file with merchant
  • 03: Ship to address that is different than billing address
  • 04: Ship to store (store address should be populated on request)
  • 05: Digital goods
  • 06: Travel and event tickets, not shipped
  • 07: Other
Optional
PREORDER_INDICATOR Indicates whether cardholder is placing an order for merchandise with a future availability or release date. 2 characters String
Values accepted:
  • 01: Merchandise available
  • 02: Future availability
Optional
PREORDER_DATE Expected date that a pre-ordered purchase will be available. 10 characters String
Format: YYYY-MM-DD
Optional
DELIVERY_TIME_FRAME Indicates the merchandise delivery time frame. 2 characters String
  • 01: Electronic delivery
  • 02: Same day shipping
  • 03: Overnight shipping
  • 04: Two or more days shipping
Optional
REORDER_INDICATOR Indicates whether the cardholder is reordering previously purchased merchandise. 2 characters String
  • 01: First time ordered
  • 02: Reordered
Optional
MERCHANT_FUNDS_AMOUNT For prepaid or gift card purchase, the purchase amount total of prepaid or gift card(s) in major units. Maximum 15 digits Numeric Optional
MERCHANT_FUNDS_CURRENCY For prepaid or gift card purchase, currency code of the gift card. 3 characters String
Format: ISO 4217
Optional
RECURRING_FREQUENCY_DAYS Indicates the minimum number of days between authorizations. Maximum 4 digits Numeric Optional
RECURRING_EXPIRY_DATE It is the date after which no further authorizations shall be performed. 10 characters String
Format: YYYY-MM-DD
Optional
ACCOUNT_CREATE_DATE It is the date when the cardholder opened the account with the 3DS Requstor. 10 characters String
Format: YYYY-MM-DD
Optional
ACCOUNT_DELIVERY_ADDRESS_FIRST_USED_DATE It is the date when the shipping address used for this transaction was first used with the 3DS Requestor. 10 characters String
Format: YYYY-MM-DD
Optional
ACCOUNT_DELIVERY_ADDRESS_USAGE_INDICATOR Indicates when the shipping address used for this transaction was first used with the 3DS Requestor. 2 characters String
Values accepted:
  • 01: This transaction
  • 02: Less than 30 days
  • 03: 30-60 days
  • 04: More than 60 days
Optional
ACCOUNT_NUMBER_OF_TRANSACTIONS_LAST_YEAR Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous year. Maximum 3 digits Numeric Optional
ACCOUNT_NUMBER_OF_TRANSACTIONS_LAST_DAY Number of transactions (successful and abandoned) for this cardholder account with the 3DS Requestor across all payment accounts in the previous 24hours. Maximum 3 digits Numeric Optional
ACCOUNT_NUMBER_OF_PURCHASES_LAST_SIX_MONTHS Number of purchases with this cardholder account during the previous six months. Maximum 4 digits Numeric Optional
ACCOUNT_CHANGE_DATE It is the date when the cardholder’s account with the 3DS Requestor was last changed, including Billing or Shipping address, new payment account, or new user(s) added. 10 characters String
Format: YYYY-MM-DD
Optional
ACCOUNT_CHANGE_INDICATOR Length of time since the cardholder’s account information with the 3DS Requestor was last changed, including billing or shipping address, new payment account, or new user(s) added. 2 characters String
Values accepted:
  • 01: Changed during transaction
  • 02: Less than 30 days
  • 03: 30-60 days
  • 04: More than 60 days
Optional
ACCOUNT_AGE_INDICATOR Length of time that the cardholder has had the account with the 3DS Requestor. 2 characters String
Values accepted:
  • 01: No Account
  • 02: Created during transaction
  • 03: Less than 30 days
  • 04: 30-60 days
  • 05: More than 60 days
Optional
ACCOUNT_PASSWORD_CHANGED_DATE It is the date when cardholder’s account with the 3DS Requestor had a password change or account reset. 10 characters String
Format: YYYY-MM-DD
Optional
ACCOUNT_PASSWORD_CHANGED_INDICATOR Indicates the length of time since the cardholder’s account with the 3DS Requestor had a password change or account reset. 2 characters String
Values accepted:
  • 01: No change
  • 02: Changed during transaction
  • 03: Less than 30 days
  • 04: 30-60 days
  • 05: More than 60 days
Optional
ACCOUNT_NAME_TO_RECIPIENT_MATCH Indicates if the cardholder name on the account is identical to the shipping name used for this transaction. 2-3 characters String
Values accepted:
  • YES: Account name identical to shipping name
  • NO: Account name different from shipping name
Optional
ACCOUNT_ADD_CARD_ATTEMPTS_DAY Indicates the number of attempts to add a card to cardholder's account in merchant's system within last 24 hours. Maximum 3 digits Numeric Optional
ACCOUNT_AUTH_METHOD Mechanism used by the cardholder to authenticate to the 3DS Requestor. 2 characters String
Values accepted:
  • 01: No authentication occurred (e.g. Guest Checkout)
  • 02: Login to the cardholder account at the merchant system using merchant system credentials
  • 03: Login to the cardholder account at the merchant system using a Federated ID
  • 04: Login to the cardholder account at the merchant system using issuer credentials
  • 05: Login to the cardholder account at the merchant system using third-party authentication
  • 06: Login to the cardholder account at the merchant system using FIDO Authenticator
Optional
ACCOUNT_AUTH_DATETIME Date and time of the cardholder authentication (in UTC). 19 characters String
Format: YYYY-MM-DD HH:MM:SS
Optional
REQUESTOR_AUTHENTICATION_DATA Information about how the 3DS Requestor authenticated the cardholder before or during the transaction. Variable String Optional
ACCOUNT_CARD_ADDED_INDICATOR Indicates if and when the card was stored in the merchant account. 2 characters String
Values accepted:
  • 01: No account (guest checkout)
  • 02: During the transaction
  • 03: Less than 30 days
  • 04: 30-60 days
  • 05: More than 60 days
Optional
ACCOUNT_CARD_ADDED_DATE Date when card has been stored in the merchant account. 10 characters String
Format: YYYY-MM-DD
Optional

2.4. Going further - Including Billing and Delivery Information

Merchant stores have the opportunity of including the billing and delivery information in the LiveUpdate requests made. This presents the advantage of pre-filling the sent information in the PayU payment pages, so that the customer doesn't have to.

The billing and delivery parameters are optional, not included in the HMAC MD5 calculation, and only the sent values in request will be pre-filled in the payment interface.

Billing
Field Name Description Optional?
BILL_FNAME Customer's first name Yes
BILL_LNAME Customer's last name Yes
BILL_CITYPE Shopper's ID type - mandatory for UPT. Accepted values: PERSONALID (identity card), PASSPORT (passport), DRVLICENSE (driving license) Yes
BILL_CISERIAL ID Card Series (for RO residents) Yes
BILL_CINUMBER ID Card Number (for RO or TR residents) Yes
BILL_CIISSUER ID Card Issuer (for RO residents) Yes
BILL_CNP Numeric Personal Code (for RO residents) Yes
BILL_COMPANY Legal company name for billing Yes
BILL_FISCALCODE Company's Fiscal Code (CUI/VAT ID) Yes
BILL_REGNUMBER Company's Registration Number at the Commerce Registry. Yes
BILL_BANK Company's bank Yes
BILL_BANKACCOUNT Company's bank account Yes
BILL_EMAIL Customer's email address Yes
BILL_PHONE Phone number Yes
BILL_FAX Fax number Yes
BILL_ADDRESS Customer's/Company's address Yes
BILL_ADDRESS2 Customer's/Company's address (additional) Yes
BILL_ZIPCODE Customer's/Company's ZIP/Postal Code Yes
BILL_CITY City Yes
BILL_STATE State/County Yes
BILL_COUNTRYCODE Country Code (RO for Romania) Yes
Delivery
Field Name Description Optional?
DELIVERY_FNAME Customer's first name Yes
DELIVERY_LNAME Customer's last name Yes
DELIVERY_COMPANY Legal company name for delivery Yes
DELIVERY_PHONE Phone number Yes
DELIVERY_ADDRESS Customer's/Company's Address Yes
DELIVERY_ADDRESS2 Customer's/Company's Address (additional) Yes
DELIVERY_ZIPCODE Customer's/Company's ZIP/Postal Code Yes
DELIVERY_CITY City Yes
DELIVERY_STATE State/County Yes
DELIVERY_COUNTRYCODE Country Code (RO for Romania) Yes

NOTE: If the parameters DESTINATION_CITY, DESTINATION_STATE or DESTINATION_COUNTRY are sent, these will override the values for the parameters DELIVERY_CITY, DELIVERY_STATE, DELIVERY_COUNTRYCODE.

3 Authenticating the transaction (HMAC MD5 Signature)

Let's construct a LiveUpdate request, for the following transaction information:

Information Parameter Value Length
General Data MERCHANT PAYUDEMO [8]
ORDER_REF 112457 [6]
ORDER_DATE 2012-05-01 15:51:35 [19]
Cart contents ORDER_PNAME[] "MacBook Air 13 inch", "iPhone 4S" [19, 9]
ORDER_PCODE[] "MBA13", "IP4S" [5, 4]
ORDER_PINFO[] "Extended Warranty - 5 Years", "" [27, 0]
ORDER_PRICE[] "2000", "400.50" [4, 6]
ORDER_PRICE_TYPE[] "GROSS", "NET" [5, 3]
ORDER_QTY[] "1", "2" [1, 1]
ORDER_VAT[] "24", "24" [2, 2]
ORDER_SHIPPING "50" [2]
PRICES_CURRENCY "EUR" [3]
DISCOUNT "10" [2]
DESTINATION_CITY "București" [10]
DESTINATION_STATE "București" [10]
DESTINATION_COUNTRY "RO" [2]
PAY_METHOD "CCVISAMC" [8]
Additional Info TESTORDER "TRUE" Mandatory in HMAC signature when set to "TRUE"
LANGUAGE "EN" Not included in HMAC signature

To validate this information when the order is placed, a HMAC MD5 signature is required, as a value for the ORDER_HASH parameter. The calculation is made using the secret key of the merchant (or demo) account, available in Control Panel, in the Account Management / Account Settings section.

The signature is calculated on a string, composed of each of the values above, with their corresponding lengths prepended (in UTF-8 bytes). The order of the parameters is important and must be the same as defined in the list above.

For the information used as a sample order in the table above, the resulting string of the concatenated lengths and values of the request parameters is the following:

8PAYUDEMO6112457192012-05-01 15:51:3519MacBook Air 13 inch9iPhone 4S5MBA134IP4S27Extended Warranty - 5 Years0420006500.5011122242242503EUR21010București10București2RO8CCVISAMC5GROSS3NET4TRUE

NOTE that for the second product, there was no value for the ORDER_PINFO[] parameter, but because the parameter was specified, we have to take into account it's length (0) in the string composition.

The TESTORDER parameter is taken into account for string composition and HMAC MD5 calculation only when the value is set to "TRUE", otherwise it is optional for HMAC MD5 calculation.

The LANGUAGE parameter is not taken into account for string composition and HMAC MD5 calculation.

The data has to be transported in UTF-8 format, in order to correctly calculate the lengths on both ends (your server and the PayU platform).

If the secret key for the merchant account is SECRET_KEY, the resulting HMAC MD5 (and value for the ORDER_HASH parameter) is efb6260ea1764d2ccb555bb048cd441c.

The sample LiveUpdate HTTP POST request can be created with the following HTML form:

        

4. Advanced - One step checkout and Redirect to merchant website

Merchants can configure the amount of personal data that is transited through the PayU system from the Control Panel, in the Account Management / Payment Form Settings section. The information set as mandatory there should be also sent through LiveUpdate, if we want to redirect the customer straight to the last step of the payment process.

As a minimum, if all the fields are set to optional/hidden, PayU requires for antifraud purposes the following fields: BILL_FNAME, BILL_LNAME, BILL_EMAIL, BILL_PHONE and BILL_COUNTRYCODE. The validation for the BILL_PHONE field is although relaxed (so if you, as a merchant, do not collect / use the phone number of the customer, you can use a dash "-" as a value).

If this information is sent through LiveUpdate, for the redirect to the final step of the order (e.g. card data entry, for CCVISAMC) the request must also contain the AUTOMODE parameter, with the value "1".

NOTE: This parameter will function properly only if all the required fields are sent. Otherwise, the process will begin with the page in which the billing/delivery data are collected.

        <input name="AUTOMODE" value="1" type="hidden" />
    

In order to redirect the customer back to the website (her account or a customized thank you message), you can use the BACK_REF parameter with a URL. The BACK_REF redirect is, by default, made only if the used payment method is one with instant authorization (e.g. will be made for CCVISAMC, but not for regular WIRE transfer).

A merchant could use GET parameters in order to specify an order or customer identifier, as below:

        <input name="BACK_REF" value="{*}http://domain.com/process.php?order=123456*" type="hidden" />
    

To make sure that the redirect comes from PayU, a control variable is attached to the URL to which the redirect is made. The control variable (a GET parameter, ctrl) is also HMAC MD5, calculated on a string composed from the URL (with all parameters) to which PayU redirects, with the length of that URL (parameters included) prepended.

Sample:

For url: http://www.yourdomain.com/process.php?order=123456&ctrl=741fcf35a297e256f4090c4dfc0ed65
The source string for the ctrl HMAC MD5 calculation is: http://www.yourdomain.com/process.php?order=123456

5. Installment Payments

The PayU Platform can also handle installment payments. This can be done using two different technical ways, based on the user's selection of the payment method. If the merchant is simply redirecting the user to the PayU pages then installment options will be available by default. This way, implementing additional payments is a seamless process for the merchant. The user will see all the payment options available in the first page of the payment process, below the personal details form.

If the user will select the payment method on the merchant's site, then the merchant will have to send to PayU the specific PAY_METHOD value. When the PAY_METHOD variable has a predefined value, then PayU will use the value received from the merchant and the user will be unable to change the payment method from the PayU pages.

PAY_METHOD

        <input name="PAY_METHOD" value="STARBT" type="radio" /> StarBT
    

Additionally, the number of installments can be selected on the merchant's site and sent to PayU with the "SELECTED_INSTALLMENTS_NO" value, as shown below:

PAY_METHOD

        <select name="SELECTED_INSTALLMENTS_NO">
            <option value="1">Direct Payment</option>
            <option value="3">3 Payments</option>
            <option value="6">6 Payments</option>
            <option value="12">12 Payments</option>
        </select>
    

NOTE: If AUTOMODE is used then the use of the PAY_METHOD is MANDATORY since the user will no longer see the first page of the payment process.

Enabling Google Pay™ for your integration

PayU can provide you with the Google Pay button on our payment page. This allows your customers to use a saved card from their Google account to finish the payment, instead of entering their card details.

This doesn't require any technical change on your side, but our operational team must perform changes on your account to use this feature. For more details, please reach out to our team.

6. Tips and Tricks

Charging in another currency than the one in which prices are specified.

If you have more than one currency activated for your account, the customers can choose in the payment form the currency in which they will make the payment.

If you want to force the order's collecting using another currency than the one in which the prices are set (PRICES_CURRENCY), you can send the optional parameter:

        <input name="CURRENCY" value="USD" type="hidden" />
    

7. Error Messages

If you get errors when trying to transmit your data, see the list below for problem descriptions for each type of error:

Error Description
ACCES DENIED Your access to the PayU interface is not allowed. Please contact the PayU support team.
Invalid account The MERCHANT parameter is incorrect or not specified
Access not permitted You access to the LiveUpdate feature is restricted. You should contact your PayU Account Manager
Invalid Data The data you have transmitted is not correctly formed. Please check the arrays
Invalid product code The ORDER_PCODE[] array is incorrectly formed
Invalid product name The ORDER_PNAME[] array is incorrectly formed
Invalid product group The ORDER_PGROUP[] array is incorrectly formed
Invalid price The ORDER_PRICE[] array is incorrectly formed
Invalid VAT The ORDER_VAT[] array is incorrectly formed
Invalid Price The calculated total is incorrect. Check the DISCOUNT and ORDER_SHIPPING parameters
Invalid Signature The HMAC_MD5 signature is incorrectly calculated for the sent data
VAT calculation not supported for this integration type The ORDER_PRICE_TYPE[] is "NET" and ORDER_VAT[] different from 0.
Invalid price type ORDER_PRICE_TYPE[] must have one of the following values: NET or GROSS
Invalid Billing Country Code Invalid BILL_COUNTRYCODE value
Invalid number of installments The installments number sent in SELECTED_INSTALLMENTS_NO is not supported

8. Complete LiveUpdate Request

A request containing all the data above, placing a TEST transaction in the PayU demo account, and using both the AUTOMODE and BACK_REF features, is available in example: example.php