Disputes testing
Checkout’s testing environment lets you simulate disputes (also called chargebacks). You can test how a dispute goes through a production lifecycle using the disputes API or the Dashboard.
How to test a dispute
To test a dispute, generate a payment request with specific information from the test scenarios. Without this, the test dispute won't be created.
The test payment should be authorized and then captured within 5 minutes. By default, payments should be auto-captured, but if this fails, you have the option to manually capture a payment.
Using the API
Request a payment with the test details we've provided.
Request examples
Choose the correct amount
Your chosen currency will determine the value you need to provide in the amount
field. You cannot test disputes with currencies whose value is the same as the full charge amount.
{"source": {"type": "card","number": "4242424242424242","expiry_month": 1,"expiry_year": 2099,"name": "Sarah Mitchell","cvv": "100"},"amount": 1040,"currency": "GBP","reference": "Testing disputes for Visa"}
Once you've created a payment request with the API, wait a few minutes before using the disputes API to retrieve a list of disputes.
Using the Dashboard
- Log into your sandbox Dashboard account.
- Go to the Payments section.
- Make a payment by entering a valid test card number for the payment method you want to test for, with a corresponding amount and card expiry date (as set out in the scenario-specific tables).
- When the payment has been captured, it will be visible in the Payments section.
- Go to the Disputes section to view the generated test dispute.
Disputes will appear after a 1-minute delay.
Dispute test scenarios
Select the dispute scenarios we've provided to begin testing.
Dashboard vs API payment amount
The payment amount changes depending on whether you are using the Dashboard or the API to test. Select the appropriate tab to ensure your test is triggered.
You have already refunded the customer, we have automatically submitted evidence on your behalf and the dispute is resolved.
API status is resolved
and chargeback code is AUTO
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 10.42 | 10.4 | Fraudulent | 01/2099 |
Visa | 13.12 | 13.1 | Product/service not received | 01/2099 |
Mastercard | 48.57 | 4855 | Product/service not received | 01/2099 |
Mastercard | 48.61 | 4860 | Credit not issued | 01/2099 |
Amex | 45.18 | 4517 | Unrecognized | 01/2099 |
Amex | 45.42 | 4540 | Fraudulent | 01/2099 |
The dispute has been resolved by the merchant or scheme outside of the formal dispute process.
API status is resolved
and chargeback code is ARWS
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 10.5 | 10.5 | Fraudulent | 01/2099 |
Visa | 13.11 | 13.1 | Product/service not received | 01/2099 |
Mastercard | 48.37 | 4835 | Fraudulent | 01/2099 |
Mastercard | 48.56 | 4855 | Product/service not received | 01/2099 |
Amex | 45.17 | 4517 | Unrecognized | 01/2099 |
Amex | 45.41 | 4540 | Fraudulent | 01/2099 |
You are required to submit evidence to defend against the dispute.
API status is evidence_required
and chargeback code is ADJM
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 10.4 | 10.4 | Fraudulent | 01/2099 |
Visa | 13.1 | 13.1 | Product/service not received | 01/2099 |
Mastercard | 48.55 | 4855 | Product/service not received | 01/2099 |
Mastercard | 48.6 | 4860 | Credit not issued | 01/2099 |
Amex | 45.16 | 4516 | Unrecognized | 01/2099 |
Amex | 45.4 | 4540 | Fraudulent | 01/2099 |
The issuer has canceled the dispute.
API status is canceled
and chargeback code is CBRV
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 10.43 | 10.4 | Fraudulent | 01/2099 |
Visa | 13.13 | 13.1 | Product/service not received | 01/2099 |
Mastercard | 48.58 | 4855 | Product/service not received | 01/2099 |
Mastercard | 48.62 | 4860 | Credit not issued | 01/2099 |
Amex | 45.19 | 4517 | Unrecognized | 01/2099 |
Amex | 45.43 | 4540 | Fraudulent | 01/2099 |
You have submitted evidence and the issuer is reviewing it.
API status is evidence_under_review
and chargeback code is RPDR
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 13.14 | 13.1 | Product/service not received | 01/2099 |
Visa | 10.44 | 10.4 | Fraudulent | 01/2099 |
Mastercard | 48.59 | 4855 | Product/service not received | 01/2099 |
Mastercard | 48.63 | 4860 | Credit not issued | 01/2099 |
Amex | 45.1 | 4517 | Unrecognized | 01/2099 |
Amex | 45.44 | 4540 | Fraudulent | 01/2099 |
The issuer has accepted your evidence and you have won the dispute.
API status is won
and chargeback code is RPDW
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 10.45 | 10.4 | Fraudulent | 01/2099 |
Visa | 13.15 | 13.1 | Product/service not received | 01/2099 |
Mastercard | 48.5 | 4855 | Product/service not received | 01/2099 |
Mastercard | 48.64 | 4860 | Credit not issued | 01/2099 |
Amex | 45.11 | 4517 | Unrecognized | 01/2099 |
Amex | 45.45 | 4540 | Fraudulent | 01/2099 |
The issuer is not satisfied with your evidence and you have lost the dispute.
API status is lost
and chargeback code is RPDL
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 10.46 | 10.4 | Fraudulent | 01/2099 |
Visa | 13.16 | 13.1 | Product/service not received | 01/2099 |
Mastercard | 48.51 | 4855 | Product/service not received | 01/2099 |
Mastercard | 48.65 | 4860 | Credit not issued | 01/2099 |
Amex | 45.12 | 4517 | Unrecognized | 01/2099 |
Amex | 45.46 | 4540 | Fraudulent | 01/2099 |
You have escalated your case to arbitration.
API status is arbitration_under_review
and chargeback code is ARBR
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 10.47 | 10.4 | Fraudulent | 01/2099 |
Visa | 13.17 | 13.1 | Product/service not received | 01/2099 |
Mastercard | 48.52 | 4855 | Product/service not received | 01/2099 |
Mastercard | 48.66 | 4860 | Credit not issued | 01/2099 |
Amex | 45.13 | 4517 | Unrecognized | 01/2099 |
Amex | 45.47 | 4540 | Fraudulent | 01/2099 |
Arbitration has decided in your favour.
API status is arbitration_won
and chargeback code is ARBW
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 10.49 | 10.4 | Fraudulent | 01/2099 |
Visa | 13.19 | 13.1 | Product/service not received | 01/2099 |
Mastercard | 48.54 | 4855 | Product/service not received | 01/2099 |
Mastercard | 48.68 | 4860 | Credit not issued | 01/2099 |
Amex | 45.15 | 4517 | Unrecognized | 01/2099 |
Amex | 45.49 | 4540 | Fraudulent | 01/2099 |
Arbitration has decided against you.
API status is arbitration_lost
and chargeback code is ARBL
.
Payment method | Payment amount | Dispute reason code triggered | Dispute code category | Card expiry date |
---|---|---|---|---|
Visa | 10.48 | 10.4 | Fraudulent | 01/2099 |
Visa | 13.18 | 13.1 | Product/service not received | 01/2099 |
Mastercard | 48.53 | 4855 | Product/service not received | 01/2099 |
Mastercard | 48.67 | 4860 | Credit not issued | 01/2099 |
Amex | 45.14 | 4517 | Unrecognized | 01/2099 |
Amex | 45.48 | 4540 | Fraudulent | 01/2099 |