NodeJs SDK – Refund
It is used to initiate a refund using refund() function
Merchants can use the RefundRequest Builder() to create the refund request and the following are the attributes that merchant can pass.
Parameters:
| Parameter name | Data Type | Mandatory | Description | Constraints |
|---|---|---|---|---|
merchantRefundId | String | yes | Unique merchant refund id generated by merchant | Max Length = 63 characters |
originalMerchantOrderId | String | yes | Original merchant order id against which refund is required | |
amount | Long | yes | Amount in paisa to refund | Min value = 100 (in paise), Max value = order amount |
Example :
import {CustomCheckoutClient, Env, RefundRequest, RefundResponse}
from 'pg-sdk-node'
import { v4
as uuid }
from 'uuid';
const clientId:
string = "<clientId>";
const clientSecret:
string = "<clientSecret>";
const clientVersion:number = <clientVersion>; //insert your client version here
const env = Env.SANDBOX; //change to Env.PRODUCTION when you go live
const client = CustomCheckoutClient.
getInstance(clientId, clientSecret, clientVersion, env);
const refundId =
uuid();
const originalMerchantOrderId = '<MERCHANT_ORDER_ID>'; //merchantOrderId for which order was initiated
const amount = 100; //Amount to be refund
const request = RefundRequest.
builder()
.
amount(amount)
.
merchantRefundId(refundId)
.
originalMerchantOrderId(originalMerchantOrderId)
.
build();
client.
refund(request).
then((response) => {
const state = response.state;
});Returns :
The function returns a RefundResponse Object
| Property | Data Type | Description |
|---|---|---|
refundId | String | PhonePe generated internal refund id |
state | String | The state of the refund initiated. Initially it will be PENDING |
amount | long | Amount in paisa that will be refunded |
NodeJs SDK – Refund Status
It is used to retrieve the status of a refund using getRefundStatus() function.
Parameters
| Parameter Name | Data Type | Mandatory | Description |
|---|---|---|---|
refundId | String | Yes | Refund Id created by the merchant at the time of initiating the refund |
Example :
import {
CustomCheckoutClient,
Env}
from 'pg-sdk-node'
import {
RefundStatusResponse }
from 'pg-sdk-node';
const clientId:string = "<clientId>";
const clientSecret:string = "<clientSecret>";
const clientVersion:number = 1; //insert your client version here
const env =
Env.SANDBOX; //change to Env.PRODUCTION when you go live
const client =
CustomCheckoutClient.
getInstance(clientId, clientSecret, clientVersion, env);
const refundId = '<REFUND_ID>'; //refundId used to initiate the refund
client.
getRefundStatus(refundId).
then((response) => {
const state = response.state;
});Returns:
It returns a RefundStatusResponse Object
RefundStatusResponse
| Property | Data Type | Description |
|---|---|---|
merchantId | String | Merchant Id who initiated the refund |
merchantRefundId | String | Refund Id created by the merchant at the time of refund initiation |
originalMerchantOrderId | String | Order Id for which refund has initiated. Created by the merchant at the time of order creation |
amount | Long | Amount to refund |
state | String | State of the refund |
paymentDetails | list<PaymentRefundDetail> | Contains the list of details of each transaction attempt made corresponding to this particular order |
PaymentRefundDetail :
| Property | Data Type | Description |
|---|---|---|
transactionId | String | Transaction Id generated by the PhonePe |
paymentMode | String | Mode of Payment. It can be anyone of the following modes: 1. UPI_INTENT 2. UPI_COLLECT 3. UPI_QR 4. CARD 5. TOKEN 6. NET_BANKING |
timestamp | Long | Timestamp of the attempted transaction in epoch |
state | String | Attempted transaction state. It can be any one of the following states: 1. PENDING 2. COMPLETED 3. FAILED |
errorCode | String | Error code present only when the transaction state is Failed |
detailedErrorCode | String | Detailed Error Code present only when transaction state is Failed |
splitInstruments | list<InstrumentCombo> | Type of transaction instrument. It can be any one of the following types: 1. ACCOUNT 2. CREDIT_CARD 3. DEBIT_CARD 4. NET_BANKING |