Callback Verification

This is used to verify whether the callback received is valid or not

You need to pass 4 parameters to the validateCallback() function

Parameter NameData TypeMandatoryDescription
usernameStringYesUnique username configured for the callback url.
passwordStringYesUnique password configured for the callback url.
authorizationStringYesValue of the Authorization header under the callback response.
responseBodyStringYesCallback response body as string.

Example usage :

import com.phonepe.sdk.pg.Env;
import com.phonepe.sdk.pg.payments.v2.StandardCheckoutClient;
import com.phonepe.sdk.pg.common.models.response.CallbackResponse;
 
String clientId = "<clientId>";
String clientSecret = "<clientSecret>";
Integer clientVersion = 1;  //insert your client version here
Env env = Env.SANDBOX;      //change to Env.PRODUCTION when you go live
StandardCheckoutClient client = StandardCheckoutClient.getInstance(clientId, clientSecret,
        clientVersion, env);
 
String username = "<username>";
String password = "<password>";
String authorization = "<authorization>";
String responseBody = "<responseBody>";
 
CallbackResponse callbackResponse = client.validateCallback(username, password, authorization, responseBody);
 
String callbackType = callbackResponse.getType();
String merchantRefundId = callbackResponse.getPayload()
        .getMerchantRefundId();
String state = callbackResponse.getPayload()
        .getState();

Returns :

The function returns a CallbackResponse if the callback is valid, otherwise throws a PhonePeException.

Callback Response:

PropertyData TypeDescription
typeCallbackTypeContains event type of callback received at the merchant end.
payloadCallbackDataContains callback details.

Callback Types

Callback TypeContext
CHECKOUT_ORDER_COMPLETEDOrder completed
CHECKOUT_ORDER_FAILEDOrder failed
PG_REFUND_ACCEPTEDPhonePe has acknowledged the Refund request is valid
PG_REFUND_COMPLETEDRefund request is successfully completed
PG_REFUND_FAILEDRefund request failed

CallbackData Properties :

PropertyData TypeDescription
merchantIdStringThe merchant from which request was initiated.
orderIdStringOrder id generated by PhonePe. (Only present in case of order callbacks)
merchantOrderIdStringOrder id generated by merchant. (Only present in case of order callbacks)
originalMerchantOrderIdStringInternal transaction id for given payment attempt. (Only present in case of refund callback)
refundIdStringRefund id generated by PhonePe. (Only present in case of refund callback)
merchantRefundIdStringRefund id generated by merchant. (Only present in case of refund callback)
stateStringState of the order/refund.
amountLongAmount in Paisa of the order/refund processed
expireAtLongExpiry in epoch.
errorCodeStringError code. (Only present when state is failed)
detailedErrorCodeStringDetailed error code. (Only present when state is failed)
metaInfoMetaInfoAdditional Information about the order
paymentDetailsList<PaymentDetail>Contain list of details of each transaction attempt made corresponding to this particular order

PaymentDetail Object :

PropertyData TypeDescription
transactionIdStringTransaction Id generated by the PhonePe
paymentModeStringMode 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
timestampLongTimestamp of the attempted transaction in epoch
stateStringAttempted transaction state. It can be any one of the following states:
1. COMPLETED
2. FAILED
3. PENDING
errorCodeStringError code present only when the transaction state is Failed
detailedErrorCodeStringDetailed Error Code present only when transaction state is Failed