Load the Hosted Payment Page

View as MarkdownOpen in Claude

When your customer is ready to pay, you need to load the Hosted Payment Page. To do this, add a button to your checkout page that sends a POST request to our gateway. When we receive the POST request, the Hosted Payment Page loads and the customer can submit their payment details.

Note: The Hosted Payment Page doesn’t return a transaction type in the transaction response. Because you can run sales, run pre-authorizations, and save a customer’s payment details, we recommend that you record the transaction type in your system.

Before you begin

Make sure you have the unique identifier that we assigned to the merchant’s terminal. Send this in your POST request in the TERMINALID parameter.

Send a POST request to load the Hosted Payment Page

To load the page, send a POST request to the Payment Page URL.

Request parameters

Note: You can send additional optional parameters to enhance your request. For more information about what you can add, go to Optional Parameters.

To create the body of your request, use the following parameters:

ParameterTypeSizeDescription
TERMINALIDString1-50 charactersUnique identifier that we assigned to the terminal.
ORDERIDString1-24 charactersUnique identifier that the merchant assigns to the transaction.
CURRENCYString3 charactersCurrency of the transaction. The value for the currency follows the ISO 4217 standard.
AMOUNTDoubleSubtotal of the transaction including taxes. Don’t include surcharges or convenience fees.
DATETIMEStringDate and time that you send the request. Send this value in DD-MM-YYYY:HH:MM:SS:SSS format, for example, 06-02-2026:12:23:23:719.
HASHString1-128 charactersSHA-512 hash value that you generate with values from the request parameters and the terminal secret. For more information about how to create your HASH, go to Authenticate your requests.

Example request

1 <html>
2 <body>
3 <form action="https://payments.uat.payroc.com/merchant/paymentpage” method="post">
4 <input type="hidden" name="TERMINALID" value="3204004" />
5 <input type="hidden" name="ORDERID" value="HPP874417810" />
6 <input type="hidden" name="CURRENCY" value="USD" />
7 <input type="hidden" name="AMOUNT" value="10.00" />
8 <input type="hidden" name="DATETIME" value="09-02-2026:14:37:58:558" />
9 <input type="hidden" name="HASH" value="3fd844ad29c7bb0866ee412922dce796f4249587302d739ad4876dd606f5346cd2615c0c92350b3c062889037728390be813008af35e915a336f9da8c2c280ec" />
10 <input type="submit" value="Pay Now" />
11 </form>
12 </body>
13 </html>

Errors

INVALID HASH

If we can’t authenticate your request, the Hosted Payment Page displays INVALID HASH in plain text. Check that you have set up your HASH correctly. For more information about the hash, go to Authenticate your requests.

Validation Errors

The Hosted Payment Page runs basic validation checks on the customer’s input. If the customer enters incorrect information, for example, a card number that is too short, the page displays an error message and prompts the customer to correct the information.

Your integration doesn’t need to handle these validation errors because the Hosted Payment Page handles these errors for you.

Next steps