Chargeback
Understand the status and reason fields returned in the chargeback object and how to interpret them in your integration.
Interpret chargebacks on payments
When a payment enters a chargeback process, the chargeback object reports the current status of the dispute and the recorded reason.
Use this information to update your internal controls, direct the operational analysis, and track the disputed payment.
ImportantUse
chargeback.statusto track the progress of the process andchargeback.reasonto classify the reason for the dispute.
When to use
Check the chargeback object to:
- identify disputed payments;
- track the current stage of the process;
- classify the reported reason;
- update customer service and reconciliation flows;
- direct the analysis to the responsible team.
How to interpret
Simplified example:
{
"chargeback": {
"status": "IN_DISPUTE",
"reason": "COMMERCIAL_DISAGREEMENT"
}
}In this example:
IN_DISPUTE: the chargeback is in dispute;COMMERCIAL_DISAGREEMENT: the reported reason is a commercial disagreement.
Chargeback status
The chargeback.status field can return:
| Value | Description |
|---|---|
REQUESTED | Chargeback requested |
IN_DISPUTE | Chargeback in dispute |
DISPUTE_LOST | Dispute lost |
REVERSED | Chargeback reversed |
DONE | Process completed |
Chargeback reasons
The chargeback.reason field can return:
| Value | Description |
|---|---|
ABSENCE_OF_PRINT | Absence of imprint |
ABSENT_CARD_FRAUD | Card-not-present transaction fraud |
CARD_ACTIVATED_PHONE_TRANSACTION | Card-activated phone transaction |
CARD_FRAUD | Card-present transaction fraud |
CARD_RECOVERY_BULLETIN | Card recovery bulletin |
COMMERCIAL_DISAGREEMENT | Commercial disagreement |
COPY_NOT_RECEIVED | Copy not received |
CREDIT_OR_DEBIT_PRESENTATION_ERROR | Credit or debit presentation error |
DIFFERENT_PAY_METHOD | Payment made by another method |
FRAUD | Transaction not authorized by the cardholder |
INCORRECT_TRANSACTION_VALUE | Incorrect transaction amount |
INVALID_CURRENCY | Invalid currency |
INVALID_DATA | Invalid data |
LATE_PRESENTATION | Late presentation |
LOCAL_REGULATORY_OR_LEGAL_DISPUTE | Regulatory or legal dispute |
MULTIPLE_ROCS | Multiple records of charge |
ORIGINAL_CREDIT_TRANSACTION_NOT_ACCEPTED | Original credit transaction not accepted |
OTHER_ABSENT_CARD_FRAUD | Other card-not-present fraud |
PROCESS_ERROR | Processing error |
RECEIVED_COPY_ILLEGIBLE_OR_INCOMPLETE | Received copy illegible or incomplete |
RECURRENCE_CANCELED | Recurrence canceled |
REQUIRED_AUTHORIZATION_NOT_GRANTED | Required authorization not granted |
RIGHT_OF_FULL_RECOURSE_FOR_FRAUD | Right of full recourse for fraud |
SALE_CANCELED | Sale or service canceled |
SERVICE_DISAGREEMENT_OR_DEFECTIVE_PRODUCT | Defective or not-as-described product or service |
SERVICE_NOT_RECEIVED | Product or service not received |
SPLIT_SALE | Split sale |
TRANSFERS_OF_DIVERSE_RESPONSIBILITIES | Transfer of responsibilities |
UNQUALIFIED_CAR_RENTAL_DEBIT | Unqualified car rental debit |
USA_CARDHOLDER_DISPUTE | Cardholder dispute in the United States |
VISA_FRAUD_MONITORING_PROGRAM | Visa fraud monitoring program |
WARNING_BULLETIN_FILE | Warning bulletin file |
Handle the chargeback in your integration
When the chargeback object is returned:
- read
chargeback.status; - store the exact value received;
- update the payment status in your system;
- use
chargeback.reasonto direct the analysis; - keep a history of the changes.
AttentionDo not translate or change the enum values in your code.
If you want to present a description to the user, do the mapping only in the display layer.
Also handle values not yet mapped by your application. In these cases, preserve the original value received to avoid processing failures.
Next steps
Updated 11 days ago
