Prerequisite
Ensure you have completed the mandatory set up procedures.Understand dispute lifecycle stages
Every dispute goes through defined stages from creation to resolution. Understanding them helps you determine the required actions and responses at each stage.- Inquiry stage
- Claim stage
- Dispute resolution
The inquiry or dispute stage begins immediately when a customer files a dispute. This is a pre-claim stage designed to reduce the occurrence of chargebacks and claims. PayPal provides a platform for both parties to communicate and resolve issues directly without its intervention. This stage only applies to cases with the item/service not received (INR) and significantly not as described (SNAD) issues.The inquiry stage lasts up to 20 days unless escalated to a claim. If the dispute remains unresolved, either party can escalate it to a claim within the 20-day inquiry period. If not, PayPal considers the dispute canceled and closes the case.If you do not want to engage with buyers directly, you can opt out of the inquiry stage. In this case, all disputes are created directly in the claim stage. To opt out of the inquiry stage, contact PayPal or your PayPal account manager.For this stage, the value of
dispute_life_cycle_stage parameter in Show dispute details response is INQUIRY.The inquiry stage is only applicable for internal disputes.
Gather dispute information
You can use the Disputes API to gather information about disputes associated with your account. The following sections describe how to list all disputes and retrieve details of a specific dispute.List disputes
Use a valid access token and make aGET call to the /v1/customer/disputes endpoint to view all the disputes associated with an account.
200 OK response. The response includes the following parameter:
| Parameter | Description | Further action |
|---|---|---|
items[].dispute_idstring | Unique identifier for the dispute. | Use this value to retrieve the dispute details and respond to the dispute. |
For information on all response parameters, see API reference.
Show dispute details
Use a valid access token and make aGET call to the /v1/customer/disputes/{id} endpoint to retrieve details of a specific dispute.
Path parameter: {id} is the dispute_id returned in the List disputes response.
200 OK response. The response includes the following parameters:
| Parameter | Description | Further action |
|---|---|---|
dispute_idstring | Unique identifier for the dispute. | Use this value to respond to a dispute. |
reasonstring | Reason for the dispute. For more information about the dispute reasons, see Dispute reasons. | Use this value to determine and provide the required evidence. |
statusstring | Current status of the dispute. Possible values: OPEN, WAITING_FOR_SELLER_RESPONSE, WAITING_FOR_BUYER_RESPONSE, UNDER_REVIEW, RESOLVED.PayPal may request additional evidence multiple times throughout the dispute’s lifecycle and the WAITING_FOR_SELLER_RESPONSE status indicates that you need to provide evidence. | Use this value to determine your response to a dispute. |
dispute_life_cycle_stagestring | Current stage of the dispute lifecycle. Possible values: INQUIRY, CHARGEBACK, PRE_ARBITRATION, ARBITRATION.For more information, see Understand dispute lifecycle stages. | Use this value to determine your response to a dispute. |
evidencesarray | Array of evidence documents. | Use this array to find the evidence requested for the dispute and share it using the Provide evidence endpoint. |
evidences.evidence_typestring | Type of evidence requested by PayPal. Possible values: PROOF_OF_FULFILLMENT, PROOF_OF_REFUND, OTHER, and so on. | Use this value to determine the evidence you need to provide. |
evidences.sourcestring | Source of the evidence. | If the value is REQUESTED_FROM_SELLER, you need to provide the evidence. |
seller_response_due_datestring | Due date and time by which you need to respond to the dispute. | Respond within this timeline to prevent the dispute from automatically closing in the customer’s favor. |
allowed_response_optionsobject | Allowed response options for the dispute. Response options:
| Use this value to respond with one of the following options: |
linksarray | Array of HATEOAS links that list the applicable actions for the dispute at its current stage. | Use these links to take further actions on the dispute. |
For information on all response parameters, see API reference.
Respond to a dispute
After gathering dispute information, you can determine the appropriate response action using the following key parameters from the Show dispute details response:- Use the HATEOAS
linksto understand the actions available at any stage of the dispute case lifecycle. - Review the values of the
dispute_life_cycle_stageandstatusparameters. Based on these values, the following table lists the possible response actions you can perform to ensure proper dispute handling:
| Stage | Status | Description | Possible response actions |
|---|---|---|---|
INQUIRY | OPEN | Dispute is created. | None |
INQUIRY | WAITING_FOR_SELLER_RESPONSE | Waiting for merchant response. | |
INQUIRY, CHARGEBACK, PRE_ARBITRATION, or ARBITRATION | UNDER_REVIEW | PayPal is reviewing the dispute. | Provide supporting information |
INQUIRY, CHARGEBACK, PRE_ARBITRATION, or ARBITRATION | WAITING_FOR_BUYER_RESPONSE | Waiting for buyer response. | None |
CHARGEBACK, PRE_ARBITRATION, or ARBITRATION | WAITING_FOR_SELLER_RESPONSE | Waiting for merchant response. |
|
INQUIRY, CHARGEBACK, PRE_ARBITRATION, or ARBITRATION | RESOLVED | Dispute is resolved. | None |
Send message to other party
You can send a message to the other party during the inquiry stage to share information that helps resolve the dispute. Use a valid access token and make aPOST call to the /v1/customer/disputes/{id}/send-message endpoint with the request parameter.
Path parameter: {id} is the dispute_id returned in the List disputes response.
200 OK response and a HATEOAS link for the dispute.
Make offer to resolve dispute
You can make an offer to the buyer to resolve the dispute. To determine which offer types are available for a specific dispute, check theallowed_response_options.make_offer.offer_types parameter in the Show dispute details response.
Use a valid access token and make a POST call to the /v1/customer/disputes/{id}/make-offer endpoint with the request parameters.
Path parameter: {id} is the dispute_id returned in the List disputes response.
200 OK response and a HATEOAS link for the dispute.
Accept claim
You can accept liability for a dispute by accepting the claim. This closes the dispute in the buyer’s favor, and PayPal automatically refunds the buyer. To determine which refund types are available for a specific dispute, check theallowed_response_options.accept_claim.accept_claim_types parameter in the Show dispute details response.
Use a valid access token and make a POST call to the /v1/customer/disputes/{id}/accept-claim endpoint with the request parameters. You can also include the accept claim reason or invoice ID if required.
Path parameter: {id} is the dispute_id returned in the List disputes response.
200 OK response and a HATEOAS link for the dispute.
Provide evidence
You can provide evidence for a dispute to support your case. PayPal requests specific evidence based on the dispute reason. Check the following parameters in the Show dispute details response to determine what evidence to provide: Use a valid access token and make aPOST call to the /v1/customer/disputes/{id}/provide-evidence endpoint with the following parameters:
| Parameter name | Action |
|---|---|
evidences.evidence_typestring | Set the evidence type as the value received in the Show dispute details response. For example, PROOF_OF_FULFILLMENT. |
evidences.documentsarray | Provide the document details and attach the required evidence documents in the request. For constraints and rules regarding documents, see Supported file types and sizes. |
evidences.notesstring | Provide any additional notes regarding the evidence. |
evidences.evidence_infoobject | Provide details such as refund_ids or tracking_info in this object based on the evidence_type. For example, provide refund ID for PROOF_OF_REFUND and tracking information for PROOF_OF_FULFILLMENT. |
For more information on all request parameters, see API reference.
{id} is the dispute_id returned in the List disputes response.
200 OK response and a HATEOAS link for the dispute.
Escalate dispute to claim
If either party is unsatisfied with the other party’s response during the inquiry stage, they can escalate the dispute to a claim. The dispute then moves to the claim stage. Use a valid access token and make aPOST call to the /v1/customer/disputes/{id}/escalate endpoint.
Path parameter: {id} is the dispute_id returned in the List disputes response.
200 OK response and a HATEOAS link for the dispute.
For more information, see API reference.
Provide supporting information
You can provide additional supporting information for a case under PayPal’s review to help with the review process. Use a valid access token and make aPOST call to the /v1/customer/disputes/{id}/provide-supporting-info endpoint with the request parameter.
Path parameter: {id} is the dispute_id returned in the List disputes response.
200 OK response and a HATEOAS link for the dispute.
Appeal dispute
You can appeal a dispute that was resolved in the buyer’s favor. To determine if a dispute is eligible for appeal, check whether the HATEOAS link for appeal is present in the Show dispute details response. Use a valid access token and make aPOST call to the /v1/customer/disputes/{id}/appeal endpoint with the following parameters:
| Parameter name | Action |
|---|---|
evidences.evidence_typestring | Set the evidence type based on the evidence you are providing for your appeal. For example, PROOF_OF_FULFILLMENT. |
evidences.documentsarray | Provide the document details and attach the required evidence documents in the request. For constraints and rules regarding documents, see Supported file types and sizes. |
evidences.notesstring | Provide any additional notes regarding the evidence. |
evidences.evidence_infoobject | Provide details such as refund_ids or tracking_info in this object based on the evidence_type. For example, provide refund ID for PROOF_OF_REFUND and tracking information for PROOF_OF_FULFILLMENT. |
For information on all request parameters, see API reference.
{id} is the dispute_id returned in the List disputes response.
200 OK response and a HATEOAS link for the dispute.
Acknowledge returned item
For SNAD disputes with theMERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED reason, you can make an offer to resolve the dispute by offering a full refund in exchange for returning the item. After the buyer ships the returned item and reports it to PayPal, the acknowledge return item action becomes available. Use this endpoint to acknowledge receipt of the item.
To determine which acknowledgements are available for a specific dispute, check the allowed_response_options.acknowledge_return_item.acknowledgement_types parameter in the Show dispute details response.
Use a valid access token and make a POST call to the /v1/customer/disputes/{id}/acknowledge-return-item endpoint. You can also include the note or acknowledgement type.
Path parameter: {id} is the dispute_id for which you are acknowledging receipt of the returned item.
200 OK response and a HATEOAS link for the dispute.
For more information, see API reference.
Use webhooks to monitor dispute events
Webhook events are external events that your app does not know about unless it receives event notifications. For example, a new dispute raised or resolved is a webhook event. You can subscribe to such events and register a callback (listener) URL. When the event occurs, PayPal sends a notification to the registered callback URL. You can code your app to perform relevant actions based on the event notification it receives. To handle webhook events:- Review the list of webhook events for disputes and select the events for your app to subscribe.
- Subscribe to the selected webhook events through one of the following means:
- PayPal developer account: Log in to your account, go to App details page > Features > Webhooks, and subscribe to webhook events.
- Webhooks management API.
- In your server-side app code, define a webhook handler that:
- Listens to the webhook event.
- Confirms receipt of the webhook event to PayPal.
- Verifies the source of the event notification.
- Performs further actions based on event data.