Contest Dispute


To contest the Dispute using disputedId and contestAmount

EnvironmentHttp MethodAPI
SandboxPOSThttps://api-preprod.phonepe.com/apis/pg-sandbox/v1/disputes/{disputeId}/contest
ProductionPOSThttps://api.phonepe.com/apis/pg/v1/disputes/{disputeId}/contest
Request Headers
Header NameHeader Value
Content-Typeapplication/json
AuthorizationO-Bearer <access_token>
Request Sample
{
    "type" : "FULL_CONTEST" or "PARTIAL_CONTEST",
    "contestAmount": 500
}
Request Parameters
Request ParameterTypeDescription
typeENUMType of the contest. 

Note: the possible value could be
“FULL_CONTEST” or
“PARTIAL_CONTEST”
if FULL_CONTEST given we are not checking contest amount, we will assume the merchant done contest for the amount equal to dispute amount
contestAmountLONGThe amount for which the user wants to contest (in Paise)

Note: This should be greater than 0 and lesser or equal to dispute amount
Response Parameter
{
    "merchantId": "merchantId",
    "disputeId": "D29238",
    "merchantOrderId": "MO2327",
    "orderId": "OMO241",
    "transactionId": "OM944",
    "transactionCompletedAt": <epoch-timestamp>,
    "transactionAmount": 1000,
    "disputeAmount": 500,
    "refundAmount": 0,
    "contestAmount": 500,
    "status": "UNDER_REVIEW",
    "stage": "CHARGEBACK",
    "dueDate": <epoch-timestamp>,
    "createdAt": <epoch-timestamp>,
    "updatedAt": <epoch-timestamp>,   
    "evidences": {
        "explanationLetter": [{
            "evidenceId": "D1",
            "label" : "dummmy"
        }],
        "customerRecallLetter": [],
        "serviceConfirmation":[],
        "refundConfirmation": [],
        "serviceCancellation": [],
        "deliveryProof": [],
        "shippingProof": [],
        "accessActivityLog":[]
    }
}
Request Parameters
Parameter NameTypeDescription
merchantIdStringUnique MerchantID assigned to the merchant by PhonePe
Note: merchantId length will be less than 38 characters.
disputeIdStringUnique DisputeId assigned to a dispute
merchantOrderIdStringUnique merchant order id generated by merchant
orderIdStringPhonePe generated order Id
transactionIdStringUnique transaction id generated by phonepe
transactionCompletedAtLongEpoch timestamp of the transaction completion time
(in milliseconds)
transactionAmountLongAmount of the transaction
disputeAmountLongAmount for which dispute is raised, will be lesser than or equal to transactionAmount
refundAmountLongAfter the status of dispute moved to LOST or WON, The amount that is given back to the customer
contestAmountLongAmount for which merchant does the contest
statusEnumStatus of the dispute
Note: The value could be
“ACTION_REQUIRED”, “UNDER_REVIEW”, “WON” or “LOST”
stageEnumStage of the dispute 

Note: The value could be
“CHARGEBACK” or “PRE_ARBITRATION”
dueDateLongEpoch timestamp the last date to respond for a dispute for merchant
(in milliseconds)
createdAtLongEpoch timestamp, Creation date of the dispute
(in milliseconds)
updatedAtLongEpoch timestamp, Last updated date of a dispute
(in milliseconds)
evidencesObject Map of String and List containing the type as key and List of evidence object as value that merchant uploaded by upload evidence api

⚠️ Dispute Status Action Rules!


A dispute can be accepted only when its status is ACTION_REQUIRED. If the status is different, the API will return a 409 error.

Error Scenarios
Error ScenarioResponse CodeResponse
Dispute not found404{
   “message”: “Dispute Not Found”,
   “code”: “DISPUTE_NOT_FOUND”
}
When you are contesting again or you have accepted the dispute than contesting it409{
   “message”: “Transition not allowed”,
   “code”: “INVALID_TRANSITION”
}
Any issue at PhonePe end500{
   “message”: “Something went wrong, please try again”,
   “code”: “SOMETHING_WENT_WRONG”
}
Contest amount is greater than dispute amount400{
   “message”: “Contested amount cannot be greater than disputed amount”,
   “code”: “INVALID_CONTESTED_AMOUNT”
}
Contest amount is not positive400{
   “message”: “Contest amount must be greater than zero”,
   “code”: “CONTESTED_AMOUNT_NOT_POSITIVE”
}
Is this article helpful?