Learn the basics of issuing refunds.

The Refunds resource allows you to give your customers full or partial refunds at both the order-level and the item-level. You can also issue refunds on shipping costs, taxes, fees, and duties.

Digital River provides several different ways to create refunds and you can create multiple refunds on the same charge. However, you cannot refund an amount greater than the original charge. For this reason, you should always check the available to refund amount before generating a refund.

Where refunds are sent

The same payment source used to create the charge also receives the refund. In other words, refunds cannot be credited to a different payment source.

If the credit card used to create the charge is cancelled or has expired, then the card issuer handles the refund. Most of the time, the issuer credits the replacement card of the customer but, in situations where no replacement exists, a check is usually mailed to the customer.

Tracking a refund

Digital River submits refund requests to the bank or credit card issuer of your customer. Depending on the financial institution, the refund typically appears as a credit on the customer's statement within 5-10 business days of the request.

Dealing with refund failures

In the unlikely event the refund fails, the state of the Refund object transitions to failed . You can be notified of this event by creating a refund.failed webhook. The event payload consists of a Refund object which contains a failureReason attribute that enumerates the reason for the failure (if known).

If a refund fails, you can issue a new Refund request using the same orderId.

Notifying customers of successful refunds

When the refund is successful, the state of the Refund object transitions to succeeded . You should wait to receive a refund.succeeded webhook before notifying customers that their refund has been processed.