> For the complete documentation index, see [llms.txt](https://docs.digitalriver.com/digital-river-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalriver.com/digital-river-api/order-management/returns-and-refunds-1/refunds/handling-refunds-for-asynchronous-payment-methods.md).

# Refunding asynchronous payment methods

payment providers must usually collect additional customer information before issuing a refund on an [asynchronous payment method](/digital-river-api/payments/payment-sources.md#synchronous-or-asynchronous), such as [Wire Transfer](/digital-river-api/payments/payment-integrations-1/digitalriver.js/payment-methods/wire-transfer.md), [Online Banking](/digital-river-api/payments/payment-integrations-1/digitalriver.js/payment-methods/online-banking.md), and [Konbini](/digital-river-api/payments/payment-integrations-1/digitalriver.js/payment-methods/konbini.md).

After you apply a [refund request](/digital-river-api/order-management/returns-and-refunds-1/refunds/issuing-refunds.md) to these types of payment methods, Digital River typically moves the [refund's](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/refunds) `state` to `pending_information`, which triggers the creation of a [`refund.pending_information`](/digital-river-api/order-management/returns-and-refunds-1/refunds/issuing-refunds.md#pending-information-refunds) event.

The [event's](https://docs.digitalriver.com/digital-river-api-reference/2021-12-13/events) `data.object` contains `tokenInformation`. Within this data structure is a `token` and an `expiresTime`. The `expiresTime` of the `token` is 90 days after the event's `createdTime`.

{% code title="refund.pending\_information" %}

```javascript
{
    "id": "3830d505-f004-4924-b1d5-8c877f164726",
    "type": "refund.pending_information",
    "data": {
        "object": {
            "id": "re_d1988e09-eec8-48f4-8077-b6c955c84e69",
            "amount": 33.0,
            "createdTime": "2022-03-11T20:35:21Z",
            "currency": "JPY",
            "items": [],
            "orderId": "219187180336",
            "refundedAmount": 0.0,
            "state": "pending_information",
            "tokenInformation": {
                "token": "17bc3273-b588-420f-bd1f-49a89eec6322",
                "expiresTime": "2022-06-09T20:37:21.087Z"
            },
            "liveMode": false,
            "charges": [
                {
                    "id": "5253e76e-e92f-4128-acad-78c26d7999b8",
                    "captured": true,
                    "refunded": true,
                    "refunds": [
                        {
                            "createdTime": "2022-03-11T20:37:21Z",
                            "amount": 33.0,
                            "state": "pending_information"
                        }
                    ],
                    "sourceId": "0e311505-0955-47df-9808-beb34b5a8b30"
                }
            ]
        }
    },
    "liveMode": false,
    "createdTime": "2022-03-11T20:37:30.556222Z",
    ...
    "digitalriverVersion": "2021-12-13"
}
```

{% endcode %}

Handle `refund.pending_information` events by passing `tokenInformation` and `expiresTime` to your front-end.

On your page dedicated to collecting bank information during refunds, use `token` to set `refundToken` in the [create offline refund element's](/digital-river-api/developer-resources/reference/elements/offline-refund-elements.md#creating-an-offline-refund-element) configuration object. Once invoked, this method sends the token to Digital River's payment services, requesting a schema that defines the data fields customers must complete.

On the same page, [mount the element](/digital-river-api/developer-resources/reference/elements/offline-refund-elements.md#offlinerefund-mount) and inform customers that they must enter and submit the requested information by `expiresTime`. The designated container displays a form with the required fields for customers and triggers the [on ready event](/digital-river-api/developer-resources/reference/elements/offline-refund-elements.md#ready).

{% hint style="info" %}
Make sure you display the expiration time in a more human-readable form.
{% endhint %}

Digital River sends a[ change event](/digital-river-api/developer-resources/reference/elements/offline-refund-elements.md#change) once customers follow these instructions and the data is accepted. Handle it by redirecting customers to a page that notifies them the refund request has been successfully submitted. You can also use either [`unmount()`](/digital-river-api/developer-resources/reference/elements/offline-refund-elements.md#offlinerefund-unmount) or [`destroy()`](/digital-river-api/developer-resources/reference/elements/offline-refund-elements.md#offlinerefund-destroy)to remove the offline refund element from the data collection page.

Once you receive either the `refund.complete` or `refund.failed` event, send the appropriate notification to customers.
