Payment Page

With Solidgate Payment Page, you can create a payment page and share a URL to it with your customers or embed it on your website.

Payment Page supports payments via credit and debit cards, PayPal, Apple Pay, and Google Pay.

It is important to note that the list of currencies available for PayPal is limited.

In addition, the payment page is translated into five languages and automatically matches your customer’s preferred browser language. We will enable language selection directly on the payment page if we have defined a language other than English. 

Payment Page URL Generation

To get an URL to the payment page, you need to follow these steps:

  1. Create the request body.
  2. Generate the Signature from the JSON body.
  3. Add the Merchant and Signature to the header of Request.
  4. Make a POST request with the Headers & Body.

A detailed description of each step is described below.

You can use our postman collection to generate a Payment Page link. You only need to pass the mandatory fields and your channel data.

Create the request body

The body includes two objects: order information and page customization. The mandatory body parameters are described in the following table.

orderobjectObject with the information required to create an order in the Solidgate system. 
order:order_idstringOrder ID specified in your system. Must be a unique value for your channel.13-gbj-e34-nf
order:currencystringThe field is mandatory if you use the non-Subscription flow.USD
order:amountintegerThe field is mandatory if you use the non-Subscription flow.1000
order:product_idstringThe field is mandatory if you use the Subscription flow. ID of the predefined productfaf3b86a-1fe6-4ae5-84d4-ab0651d75db2
order:customer_account_idstringThe field is mandatory if you use the Subscription flow. Customer ID in the merchant's system.12345
order:order_descriptionstringThe order description in your system and for bank processing.Premium Package
page_customizationobjectObject with the required information to be displayed on the Payment Page. 
page_customization:public_namestringThe shop name. It is possible to fill in the HUB Public Information section  and after it is visible to customers on the Payment Page.Public Name
page_customization:order_titlestringThe name of goods or services you sell; Is visible to customers on the Payment Page. The length must be between 1 and 101 symbols.Order Title
page_customization:order_descriptionstringOrder description that appears on the Payment Page. The length must be between 1 and 401 symbols.Order Description

Additionally, in the HUB Public Information section you can define Channel Logo (JPEG, PNG, GIF up to 1024 kb). 

You can also pass more order or/and page customization information, but these parameters are optional. The list of optional body parameters is described in the table below.

page_customizationobjectObject with the required information to be displayed on the Payment Page. 
page_customization:payment_methodsarrayTo generate a Payment Page with additional payment methods, must pass the method name in the Array. PayPal is now only available, and the field is required for this method.paypal
page_customization:back_urlstringThe URL where the customer will be redirected in case of clicks the back button. Passing this parameter will add a back button on your payment and status pages.
page_customization:terms_urlstringThe URL for the Merchant Terms & Conditions will be shown by the Terms and conditions button on the footer of the Payment Page.
page_customization:button_font_colorstringThe color of the font on the Pay Button. Please use HEX format. #FFFFFF
page_customization:button_colorstringThe color of the Pay Button. Please use HEX format. #FFFFFF
page_customization:font_namestringThe font name on the Payment Page. Please, use the Google Font name.Open Sans
page_customization:is_cardholder_visiblebooleanDisplay the field cardholder on the payment page. If the field is accepted as true, it will be displayed.true
orderobjectObject with the information required to create an order in the Solidgate system. 
order:customer_account_idstringCustomer ID in the merchant's system. Optional for non subscription flow1234user
order:languagestringThe payment page language. The customer can always switch the display to English. Available values: en, uk, es, pt,
order:force3dsbooleanRouting payments flag for 3DS flow (enabled by Solid account manager).true
order:typestringParameter for transaction authorization through a payment form.auth
order:settle_intervalintegerTime (in hours) when auto-settle should be done. Maximum value is 168 hours.36
order:order_numberintegerThe number of payments by the customer.3
order:transaction_sourcestringSource of transactions.telegram
order:verifiedbooleanThe flag of the verified customer on the shop side.true
order:retry_attemptintegerNumber of retry payment1
order:websitestringThe website from which the transaction took place.
order:customer_phonestringCustomer telephone number4975123456789
order:customer_first_namestringCustomer first nameJohn
order:customer_last_namestringCustomer last nameSnow
order:customer_date_of_birthstringCustomer birth date in format YYYY-MM-DD2000-11-21
order:fraudulentbooleanA customer was detected on the merchant end to be a suspicious false
order:order_datestringThe date of order creation  
order:order_itemsstringOrder itemsitem1, item2
order:fail_urlstringProvide this URL if you want to redirect a customer on your own Fail Screen. Solidgate will turn customers to Solidgate Fail Screen if you do not provide the URL. 
order:success_urlstringProvide this URL if you want to redirect a customer on your own Success Screen. Solidgate will turn customers to Solidgate Success Screen if you do not provide the URL. 
order:traffic_sourcestringSource of traffic 
order:google_pay_allowed_auth_methodsarray of stringsThe array of allowed Google Pay authorization methods. “PAN_ONLY”, “CRYPTOGRAM_3DS”

Generate the Signature from the JSON body

The signature allows verifying whether the request is genuine on the Solidgate server. The signature is generated from the JSON body on your Backend.

The detailed process of generating the Solid Payment Form initialization signature is presented in the following article.

To authenticate to Solidgate API, you should add the following headers to each request:

  • Merchant - public_key of your channel keys;
  • Signature - that you receive in the previous step.

To display PayPal on the payment page, you need to use API keys with “All” type. For more information about credential types, contact your Account manager.

Make a POST request with the Headers & Body

To get a Payment Page URL, you need to make a POST request with the headers and body JSON to the Solidgate endpoint:

An example of a request with a minimum set of parameters to get a Payment Page URL is below.

Request Body Sample

   "order": { 
        "currency": "EUR", 
        "amount": 1690, 
        "order_id": "135udhyu5-3h", 
        "order_description": "order_description",
        "customer_email":  ""
    "page_customization": { 
        "public_name": "Shop Name", 
        "order_title": "Title Sample", 
        "order_description": "Order Description Sample"

As a response, you will receive the JSON with the URL and guid of the Payment Page link created.

Response Body Sample

    "url": "",
    "guid": "1b9a536f-57eb-4f79-9597-1319097882fa"

Track your payment

When a payment is completed using the Payment Page, Solidgate sends the webhook that you can use for fulfillment and reconciliation. For more information, see the guide for notifications.

You can also find the order completed by Payment Page in Solidgate HUB - home of your payments.


Payment Page Sample

Currency list for PayPal

AUD Australian DollarAustralia, Christmas Island(CX), Cocos (Keeling) Islands(CC), Heard Island and McDonald Islands(HM), Kiribati(KI), Nauru(NR), Norfolk Island(NF), Tuvalu(TV)
BRL Brazilian RealBrazil
CAD Canadian DollarCanada
CHF Swiss FrancSwitzerland, Liechtenstein (LI)
CZK Czech KorunaCzechia
DKK Danish KroneDenmark, Faroe Islands (FO), Greenland (GL)
EUR EuroÅland Islands (AX), European Union (EU), Andorra (AD), Austria (AT), Belgium (BE), Cyprus (CY), Estonia (EE), Finland (FI), France (FR), French Southern and Antarctic Lands (TF), Germany (DE), Greece (GR), Guadeloupe (GP), Ireland (IE), Italy (IT), Latvia (LV), Lithuania (LT), Luxembourg (LU), Malta (MT), French Guiana (GF), Martinique (MQ), Mayotte (YT), Monaco (MC), Montenegro (ME), Netherlands (NL), Portugal (PT), Réunion (RE), Saint Barthélemy (BL), Saint Martin (MF), Saint Pierre and Miquelon (PM), San Marino (SM), Slovakia (SK), Slovenia (SI), Spain (ES), Vatican City (VA)
GBP Pound sterlingUnited Kingdom, Isle of Man (IM, see Manx pound), Jersey (JE, see Jersey pound), Guernsey (GG, see Guernsey pound), Tristan da Cunha (SH-TA)
HKD Hong Kong DollarHong Kong
HUF Hungarian ForintHungary
ILS Israeli New SheqelIIsrael
JPY Japanese YenJapan (The number of digits after the decimal separator is absent. For instance, 1020 USD means 10 USD and 20 cents, then 1000 means 1000 JPY.)
MXN Mexican PesoMexico
MYR Malaysian RinggitMalaysia
NOK Norwegian KroneNorway, Svalbard and Jan Mayen (SJ), Bouvet Island (BV)
NZD New Zealand DollarNew Zealand, Cook Islands (CK), Niue (NU), Pitcairn Islands (PN; see also Pitcairn Islands dollar), Tokelau (TK)
PHP Philippine PesoPhilippines
PLN Polish ZłotyPoland
RUB Russian RubleRussia
SEK Swedish KronaSweden
SGDSingapore DollarSingapore
THB Thai BahtThailand
TWD New Taiwan DollarTaiwan
USD United States DollarUnited States, American Samoa (AS), British Indian Ocean Territory (IO) (also uses GBP), British Virgin Islands (VG), Caribbean Netherlands (BQ – Bonaire, Sint Eustatius and Saba), Ecuador (EC), El Salvador (SV), Guam (GU), Marshall Islands (MH), Federated States of Micronesia (FM), Northern Mariana Islands (MP), Palau (PW), Panama (PA) (as well as Panamanian Balboa), Puerto Rico (PR), Timor-Leste (TL), Turks and Caicos Islands (TC), U.S. Virgin Islands (VI), United States Minor Outlying Islands (UM)