APM - INR deposits with UPI Intent (Gateway4)#
Alternative payment methods: deposits with UPI Intent INR transfer
Brief#
In order to create a Fixed Rate Invoice in the payment processing system, you need to make a POST request to the v2/invoices API endpoint.
https://api.xgateway.tech/api/v2/invoices NOTE: UPI deposits are not currently available on Demo Environment due to specifics of the APM.
INR UPI Intent deposits
{
"paymentMethod": "intent",
"orderId": "order-test-prod",
"customerId": "test-prod2025",
"baseCurrency": "INR",
"amount": 1100,
"customerFirstName": "John",
"customerLastName": "Doe",
"paymentCurrency": "INR",
"customerEmail": "[email protected]",
"customerCountry": "AU",
"customerPhone": "1234567890" // Must be a 10 digits number.
}
See the Alternative Payment Methods using Checkout page for the full OpenAPI specification.
The default lifetime of an invoice is 15 minutes.
Our local partners for Alternative Payment Methods may block customers using VPNs. It is generally recommended to warn customers that a payment method cannot be accessed through a VPN.
Details#
Validating limits#
The invoice creation API validates the amount value. The minimum and maximum amount values may differ based on the payment provider used for each specific invoice.
INR deposits with UPI Intent (Gateway4) uses these:
| Currency | Min value | Max value | Increment step |
|---|---|---|---|
| INR | 1 000.01 | 25 000.00 | 1.00 |
Contact the support team if you want to confirm the limits.
Required payload#
| Parameter | Mandatory | Description |
|---|---|---|
| amount | true | Requested amount. String or Number, in d+(.d+)? format. Limits applied |
| customerId | true | Customer id in the merchant system |
| baseCurrency | true | String representation of the requested currency. INR in this case |
| orderId | false | Invoice id in the merchant system. If provided, used as an idempotency key |
| paymentMethod | false | String representation of the payment method. Warning! Defaults to basic if not specified!intent in this case |
| customerFirstName | false | Customer's first name |
| customerLastName | false | Customer's last name |
| customerEmail | false | Customer's email |
| customerCountry | false | Customer's country code, f.e. 'AU' |
| customerPhone | false | Customer's phone, must be a 10-digit number wrapped as string |
| paymentCurrency | false | String representation of the payment currency. INR in this case |
Ensure that no additional parameters, except those specified above, are passed into the invoice creation request.
Payload examples#
The system will skip all XGateway intermediate pages and redirect the customer directly to the payment method only if all required data is provided.
INR UPI deposits
NOTE: UPI deposits are not currently available on Demo Environment due to specifics of the APM.
Minimal payload with orderId to create an invoice and track idempotency on the merchant side
(missing fields will be requested from the customer by the checkout form):
{
"paymentMethod": "intent",
"orderId": "order-test-prod",
"customerId": "test-prod2025",
"baseCurrency": "INR",
"amount": 1100
}
{
"paymentMethod": "intent",
"orderId": "order-test-prod",
"customerId": "test-prod2025",
"baseCurrency": "INR",
"amount": 1100,
"customerFirstName": "John",
"customerLastName": "Doe",
"paymentCurrency": "INR",
"customerEmail": "[email protected]",
"customerCountry": "AU",
"customerPhone": "1234567890" // Must be a 10 digits number.
}
If you get a bad request response without exact information about the erroneous field, please check the syntax of the request.
API Response#
After a successful call, you will receive a 201 - Created response with a link to a Checkout page configured according to your request.
{
"data": "https://checkout.xgateway.tech/ff36a7a5-08fd-418a-a150-f6f2d36676a8",
"success": true
}
The Checkout page will prompt the customer for any data missing from the initial request that is required to create an invoice.
Once all required data is provided, the Checkout page will redirect the customer to the local payment system (UPI).