UPI
PZ Integration option
Payment flow
- Your customer selects UPI as a payment method.
- You request a wallet number from PaySage.io and show it to the customer.
- The customer makes a transfer on the given wallet.
- The customer copies the transaction ID from the receipt and enters it on your payment form.
- You create a payment through PaySage.io API and pass that transaction ID.
- Then, PaySage.io activates the payment and notify you when the transaction will be completed.
This integration option supports the following transaction types:
Wallet number request
Request
Send a GET request to https://api.paysage.io/beyag/pkm/upi/wallet/{currency}
, where {currency} stands for the payment currency in the ISO-4217 format, for example USD.
Response
You will get a 200
response status code if your request was processed successfully, or not successfully.
Successful response example
{
"wallet": "123456789",
"status": "ok"
}
Error response example
{
"status": "fail",
"message": "An error has occurred while fetching a wallet. Try again later, please."
}
Payment
Request
Info
Confirm supported currencies and countries with your manager.
After your customer sent you the transaction ID, send a payment request with the following data:
Parameter | Type | Description |
---|---|---|
method | object | A section of the payment method. |
type * required |
string | upi |
account * conditionally required |
string | A UPI account. Contact Tech Support Team for details. |
customer | object | A section of information about your customer. |
first_name * conditionally required |
string | The customer's first name. Contact Tech Support Team for details. |
last_name * conditionally required |
string | The customer's last name. Contact Tech Support Team for details. |
string | The customer's email address. | |
additional_data | object | A section of additional transaction data. |
transaction_id * conditionally required |
string | The transaction ID received from the customer. Contact Tech Support Team for details. |
Response
The upi
response section will have parameters copied from a request. Additionally, you'll get the form
parameter to build a form where the customer should be redirected to finalize the payment.
Payout
Request
Info
A fraction of the amount is ignored. For example, if you pass amount = 123456, then the actual amount is 123400.
Send a payout request with the following data:
Parameter | Type | Description |
---|---|---|
method | object | A section of the payment method. |
type * required |
string | imps_ib |
channel * required |
string | A unique identifier of the user making the payment. |
account * required |
string | The bank account number. |
account_name * required |
string | The name of the bank account holder. |
bank_code * required |
string | A unique ID assigned by the country's central bank, IFSC code. |
Response
The imps_ib
response section will have parameters copied from a request.
PF Integration Option
This integration option supports the payment transaction:
Payment
Payment flow
- Customer selects UPI as a payment method on the merchant's website and submits their VPA (Virtual Payment Address).
- Merchant sends the payment request to PaySage.io.
- PaySage.io returns the payment status to the merchant:
pending
orfailed
. - Customer receives a payment confirmation request in their UPI application.
- Customer confirms the payment in their UPI application.
- PaySage.io sends a webhook notification with
successful
,failed
orpending
status.
Request
Send a payment request with the following additional parameters:
Parameter | Type | Description |
---|---|---|
method | object | A section of the payment method. |
type * required |
string | upi |
account * required |
string | VPA/UPI ID of the customer. |
customer * required |
object | A section of information about the customer. |
first_name * required |
string | The customer's first name. |
last_name * required |
string | The customer's last name. |
state * required | string (2) | The customer's billing state. Set as the 2 last symbols of the code in the ISO 3166-2 format. |
city * required | string (100) | The customer's billing city. |
zip * required | string | The post code of the customer's billing address. |
address * required | string (100) | The customer's address. |
phone * required |
string (14) | The customer's phone number. |
email * required |
string | The customer's email address. |
Request example
{
"request": {
"amount": 10042,
"currency": "INR",
"description": "description",
"test": false,
"customer": {
"first_name": "John",
"last_name": "Doe",
"state": "KA",
"city": "Bangalore",
"zip": "560002",
"address": "1st Street",
"phone": "17777777777",
"email": "user@example.com"
},
"method": {
"type": "upi",
"account": "1234"
}
}
}
Response
The upi
response section will have the same parameters as in the request.