Prerequisites
Before you use the Disputes API, ensure you:- Have a PayPal developer account.
- Have your accounts and environment set up as described in Set up accounts and environment.
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 PayPal is introducing an enhancement to the inquiry stage for eligible merchants. To understand this enhancement, see Accelerated Response.
dispute_life_cycle_stage parameter in Show dispute details response is INQUIRY.The inquiry stage is only applicable for internal disputes.
Accelerated Response
Accelerated Response enhances the inquiry stage. As a merchant, you can submit supporting documentation within 10 days after the inquiry starts. During this period, either you or the buyer can escalate the inquiry to a claim. Post escalation, you may be given additional time to submit supporting documents. The time available to submit documents depends on who escalates the case and when. Once the required documentation is submitted, we will proceed to adjudicate the case. PayPal is rolling out Accelerated Response in phases. PayPal notifies eligible merchants when this enhancement becomes available on their accounts.
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:
For information on all response parameters, see the 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:
For information on all response parameters, see the 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:
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. Include the following parameters:
For more information on all request parameters, see the 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 the 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. Include the following parameters:
For information on all request parameters, see the 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.
Common issues
When calling the Disputes API, you may see these common errors:- 400 Bad Request when required fields or formats are invalid. Fix: Validate request body and parameters against the Disputes API reference.
- 401 Unauthorized when the access token is missing, expired, or invalid. Fix: Regenerate the access token and retry the call with the updated token.
- 403 Forbidden when the app or account is not permitted to perform the requested action. Fix: Confirm Disputes API access, scopes, and account permissions.
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.
- Processes the webhook event message sent to your listener URL.
- Verifies the source of the event notification.
- Performs further actions based on event data.