Chargeback

Understand the status and reason fields returned in the chargeback object and how to interpret them in your integration.

Understand how to interpret the information returned in the chargeback field when a charge enters a chargeback process.

The chargeback object helps your integration identify the current status of the dispute and the reason provided for it. Use this information to track disputed charges, update internal support flows, and guide reconciliation processes.

Relevant fields

FieldTypeDescription
chargeback.statusstringIndicates the current stage of the chargeback. This is the main field for deciding how your integration should handle the disputed charge.
chargeback.reasonstringIndicates the reason for the chargeback. Use this field to classify the operational scenario and direct internal analysis.

Chargeback status

The chargeback.status field can return the following values:

ValueDescription
REQUESTEDChargeback requested.
IN_DISPUTEChargeback in dispute.
DISPUTE_LOSTDispute lost.
REVERSEDChargeback reversed.
DONEChargeback process completed.

Chargeback reasons

The chargeback.reason field can return the following values:

ValueDescription
ABSENCE_OF_PRINTAbsence of print.
ABSENT_CARD_FRAUDFraud in card-not-present environment.
CARD_ACTIVATED_PHONE_TRANSACTIONCard-activated phone transaction.
CARD_FRAUDFraud in card-present environment.
CARD_RECOVERY_BULLETINCard recovery bulletin.
COMMERCIAL_DISAGREEMENTCommercial disagreement.
COPY_NOT_RECEIVEDCopy not received.
CREDIT_OR_DEBIT_PRESENTATION_ERRORCredit / debit presentation error.
DIFFERENT_PAY_METHODPayment by other means.
FRAUDWithout cardholder authorization.
INCORRECT_TRANSACTION_VALUETransaction amount differs.
INVALID_CURRENCYInvalid currency.
INVALID_DATAInvalid data.
LATE_PRESENTATIONLate presentation.
LOCAL_REGULATORY_OR_LEGAL_DISPUTELocal regulatory / legal dispute.
MULTIPLE_ROCSMultiple ROCs.
ORIGINAL_CREDIT_TRANSACTION_NOT_ACCEPTEDOriginal credit transaction not accepted.
OTHER_ABSENT_CARD_FRAUDOther fraud - Absent card.
PROCESS_ERRORProcessing error.
RECEIVED_COPY_ILLEGIBLE_OR_INCOMPLETECopy received illegible / incomplete.
RECURRENCE_CANCELEDRecurrence canceled.
REQUIRED_AUTHORIZATION_NOT_GRANTEDRequired authorization not granted.
RIGHT_OF_FULL_RECOURSE_FOR_FRAUDRight of full recourse for fraud.
SALE_CANCELEDMerchandise / services canceled.
SERVICE_DISAGREEMENT_OR_DEFECTIVE_PRODUCTDefective or disagreed merchandise / service.
SERVICE_NOT_RECEIVEDMerchandise / services not received.
SPLIT_SALESplit sale.
TRANSFERS_OF_DIVERSE_RESPONSIBILITIESTransfer of diverse responsibilities.
UNQUALIFIED_CAR_RENTAL_DEBITUnqualified car rental debit.
USA_CARDHOLDER_DISPUTEUSA cardholder dispute.
VISA_FRAUD_MONITORING_PROGRAMVisa fraud monitoring program.
WARNING_BULLETIN_FILEWarning bulletin file.

Integration behavior

  1. Check whether the chargeback object was returned in the charge.
  2. Read chargeback.status to identify the current stage of the chargeback.
  3. Read chargeback.reason to understand the reason provided.
  4. Update your internal controls using the exact values returned by the API.

Simplified example of a response with chargeback:

{
  "chargeback": {
    "status": "IN_DISPUTE",
    "reason": "COMMERCIAL_DISAGREEMENT"
  }
}

In this example, the charge has a chargeback in dispute (IN_DISPUTE) caused by a commercial disagreement (COMMERCIAL_DISAGREEMENT).

Important notes

  • Compare status and reason values exactly as returned by the API — do not add spaces, change casing, or translate enums in code.
  • Use chargeback.status to track the chargeback progress. Use chargeback.reason only to classify the dispute reason.
  • Handle unmapped values safely, keeping the original value in logs or internal records for later analysis.
  • Pay close attention to charges with reasons related to fraud, commercial disagreement, service not received, or incorrect amount, as these scenarios typically require operational review.

For more information about Chargeback, click here.