UpGate API documentation (1.2)
UpGate is a world-class payment orchestration platform. Our mission is to simplify payments and make it easier for merchants to reach global customers. We use the latest technologies to help you achieve better conversions and global user monetization.
https://docs.upgate.com/_mock/openapi/
https://api.sandbox.upgate.com/v1/
Changelog
[1.1.42] - 2025-07-09
Changed
- New payment methods added
[1.1.41] - 2025-07-03
Added
- Field card_bin_country_name has been added to data in transaction postbacks
- Field card_bin_country_code has been added to data in transaction postbacks
- Field card_bin_type has been added to data in transaction postbacks
[1.1.40] - 2025-07-02
Added
- New endpoint cit-sale
[1.1.39] - 2025-07-01
Changed
- New payment methods added
- FAQ updated
[1.1.38] - 2025-06-20
Added
- New response code '2120 Invalid amount'
[1.1.37] - 2025-05-29
Added
- Add new response code group 'PENDING'
Changed
- Response code 1200 moved to group 'PENDING'
[1.1.36] - 2025-05-26
Added
- New fields transaction_fee_amount, transaction_tax_amount, transaction_tax_type, transaction_tax_label, transaction_tax_percentage to postback payment
- New fields rebill_transaction_fee_amount, rebill_transaction_fee_currency_code, rebill_transaction_tax_amount, rebill_transaction_tax_currency_code to postback products
- New fields transaction_fee_amount, transaction_fee_currency_code, transaction_tax_amount, transaction_tax_currency_code, transaction_tax_type, transaction_tax_label, transaction_tax_percentage to postback subscription
- New fields transaction_fee_amount, transaction_tax_amount, transaction_tax_type, transaction_tax_label, transaction_tax_percentage to response payment
- New fields rebill_transaction_fee_amount, rebill_transaction_fee_currency_code, rebill_transaction_tax_amount, rebill_transaction_tax_currency_code to response products
- New fields transaction_fee_amount, transaction_fee_currency_code, transaction_tax_amount, transaction_tax_currency_code, transaction_tax_type, transaction_tax_label, transaction_tax_percentage to response subscription
[1.1.35] - 2025-05-23
Added
- New response code '2016 Crypto address is invalid'
[1.1.34] - 2025-05-19
Added
taxOverride
object was added to Checkout request
[1.1.33] - 2025-04-25
Added
- New response code '2908 Payment token is not valid'
[1.1.32] - 2025-04-14
Added
- New payment methods added
[1.1.31] - 2025-04-03
Added
- New fields rebill_transaction_amount, rebill_transaction_currency_code to transaction product postback & response
[1.1.30] - 2025-04-07
Added
- New payment methods added
[1.1.29] - 2025-03-05
Added
- New field customer_selected_country_code to postback payment details
[1.1.28] - 2025-02-24
Added
- New transaction types: RDR and RDR_REVERSAL
[1.1.27] - 2025-02-17
Added
- New fields customer_phone_number, customer_email, customer_first_name, customer_last_name, payment_token_type to postback payment details
- New fields processor_response_text, cascade_attempt, has_been_cascaded to postback transaction details
[1.1.26] - 2025-01-28
Added
- New response code '2907 Payment type not supported for payment method'
[1.1.25] - 2025-01-27
Changed
- Updated the page structure
[1.1.24] - 2025-01-15
Added
paymentFormOverride
object was added to Checkout request- Override theme chapter
[1.1.23] - 2024-12-15
Added
- New response code '2309 Customer blacklisted'
[1.1.22] - 2024-11-26
Added
- Field version has been added to data in transaction postbacks
- Field version has been added to data in subscription postbacks
[1.1.21] - 2024-10-16
Removed
- Payment detail card_token_id has been removed from data.transactions.payment_details in postbacks
- Payment detail card_token_id has been removed from data.transactions.payment_details in response to synchronous mit-sale and mit-authorize
[1.1.20] - 2024-10-03
Changed
- Field payment_token_id as a required for MIT Sale Request and MIT Authorize Request
- Field methods as an optional field for Checkout Request
- Field shop_name max length from 64 to 128 characters in Checkout Request
- Field merchant_product_id max length from 64 to 128 characters in Checkout Request
Updated
[1.1.19] - 2024-09-17
Changed
- Changed max length for field success_url from 2048 to 512
- Changed max length for field failure_url from 2048 o 512
[1.1.18] - 2024-07-23
Added
- Added request subscription by transaction ID
[1.1.17] - 2024-04-12
Added
- Added Subscription state request by subscription id
[1.1.16] - 2024-04-10
Added
- For callback added fields transaction_amount, transaction_currency_code and product_transaction_price
[1.1.15] - 2024-04-04
Changed
- Update response codes
[1.1.14] - 2024-02-20
Added
- Added Direct payment flow section
- Added Checkout flow section
- Added Checkout request examples
- Added description of Embedded flow for Checkout
- Added new APM payment methods
[1.1.13] - 2023-12-12
Added
- Added fields shop_name and shop_url
- For subscription added fields retry_at, retry_count and created_at
- Added new APM payment methods
Changed
- Update response codes
[1.1.12] - 2023-09-05
Added
- Create token endpoint
Changed
- Update response codes
[1.1.11] - 2023-03-05
Changed
- For subscription renamed field customer_id to merchant_customer_id
- For subscription renamed field is_enabled to is_rebill_enabled
- Changed max length for field success_url from 64 to 2048
- Changed max length for field failure_url from 64 to 2048
- Changed max length for field email from 64 to 320
- Changed that the amount for Authorize can be 0
Removed
- Required header X-Merchant-ID from all requests
For example, you would like to have a subscription that costs 10 Euros monthly, but you would like to have a one time extra payment. This can be solved by including 2 products into a sale request, one SALE product and one RECURRING product.
{
"payment_data": {
"merchant_payment_id": "P_001",
"methods": ["CARD"],
"type": "SALE",
"amount": 25.0,
"currency_code": "EUR"
},
"customer": {
"merchant_customer_id": "U_001"
},
"callback": {
"success_url": "https://example.com/success",
"failure_url": "https://example.com/failure"
},
"products": [
{
"type": "SALE",
"name": "One-time fee",
"description": "One-time fee",
"price": 15.0
},
{
"type": "SUBSCRIPTION",
"name": "Monthly fee",
"description": "Monthly fee",
"price": 10.0,
"charge": {
"value": 30,
"interval": "DAY"
}
}
]
}
UpGate allows you to skip the checkout form for APM methods. If all the requested information is provided in the checkout sale request, the checkout form for gathering the customer data will be skipped.
- Enable the direct flow. Go to Payment Operations -> Payment Firm Settings -> Checkout Form

- Include additional_info object to your request as below in the sale request:
{
"payment_data": {
"merchant_payment_id": "P_001",
"methods": ["KAKAO_PAY"],
"type": "SALE",
"amount": 9.99,
"currency_code": "EUR"
},
"customer": {
"merchant_customer_id": "U_001",
"email": "eka@upgate.com"
},
"callback": {
"success_url": "https://example.com/success",
"failure_url": "https://example.com/failure"
},
"additional_info": {
"email": "eka@gmail.com",
"phone": "+34 611643310",
"customer_full_name": "EKA"
},
"products": [
{
"type": "SALE",
"name": "Test product name",
"description": "Test product description",
"price": 9.99
}
]
}
Please include the customer email address in the customer object as well, as this would be displayed in UpGate backoffice.

The list of supported country codes is sourced from the official ISO website.