A chargeback is a reversal of a by a customer's bank. In the Digital River APIs, chargebacks can occur on credit cards and debit cards as well as certain types of wire transfer, bank transfer, buy now pay later, and digital wallet payments.
Chargeback requests received by Digital River often originate with customers noticing what they believe to be an unauthorized transaction on their statement and then contacting their bank to dispute the charge. Other common reasons for chargeback requests include:
A credit was not processed by an expected date
The ordered goods never arrived, or the service was not provided
The merchandise was defective or not as described
A service was not performed as expected
Once the dispute process is initiated, the bank, acting on behalf of the customer, may contact the merchant and ask for more details. Depending on the results of that inquiry, the bank then sends a separate request to the payment processors that either seeks additional information or pushes for a chargeback. The payment processors, serving as intermediaries, relay the bank's request to Digital River.
Once Digital River receives the relayed request, we will move the into dispute, populate its stateTransitions.dispute with a timestamp, and create an with a type of order.dispute. This is true whether the bank requests a chargeback or seeks more information.
{
"type": "conflict",
"errors": [
{
"code": "order_not_submitted",
"parameter": "orderId",
"message": "Order '1002363590082' has not been submitted."
}
]
}
400 Bad Request
{
"type": "bad_request",
"errors": [
{
"code": "invalid_parameter",
"parameter": "order",
"message": "A refund cannot be performed while there is a dispute on the order."
}
]
}
409 Conflict
{
"type": "conflict",
"errors": [
{
"code": "invalid_parameter",
"parameter": "order",
"message": "A return cannot be performed while there is a dispute on the order."
}
]
}
Digital River's chargeback team then works with the merchant to investigate the disputed transaction and prepare a response. This typically involves gathering proof of delivery receipts, customer acceptance emails, order invoices, and any other relevant documentation and then sending that information to the payment processors so they can relay it to the bank.
If you attempt to submit a , or while an is in this state , then the following errors are returned:
Once the dispute is resolved, the resumes its , transitioning to a non-dispute state. This results in the creation of an with a type of order.dispute.resolved.
If no chargeback is issued, then the reverts to its pre-dispute state. At this point, you can perform returns and refunds, as well as capture or cancel any remaining charges.
If a chargeback is granted, then a refund is issued to the payment method used by the customer to make the purchase. In these cases, an availableToRefundAmount is either reduced or dropped to 0. If availableToRefundAmount is only reduced, any remaining amount can still be refunded by submitting a .
We also create two types of , sales_transaction.created and order.chargeback. For both, their data.object is a