# Supporting customer queries

This operational guide explains the webhooks and API endpoints your ops teams can use when supporting your customer queries.

The sections below cover the following customer flows:

- Customer has a question about payment status or money hasn’t reached the recipient.
- Customer needs a receipt or proof of payout.
- Customer asks why the funds were returned to them.
- Customer is unable to create transfers because their account is no longer active.


Each of these cases could have multiple solutions. In most cases, you have two implementation options:

- Implement in your customer-facing UI so customers can self-serve and will not need to reach out to you.
- Implement in your back office UI so your operations teams can help your customers when they contact you.


For convenience, we’ve pulled all helpful resources into a table.

## Necessary webhooks and endpoints

Here is a compiled list of commonly used webhooks and endpoints.

### Webhooks

The links in the table will redirect you to the event type in the webhooks section of our guides.

| Link  | Description |
|  --- | --- |
| [balance-update](/guides/developer/webhooks/event-types#balance-update-event) | Notification when a multi-currency account is credited or debited. |
| [transfer-state-change](/guides/developer/webhooks/event-types#transfer-state-change) | Notification when a transfer state changes. |
| [transfer-active-cases](/guides/developer/webhooks/event-types#transfer-active-cases) | Notification when a transfer’s list of active cases is updated (active cases indicate potential problems with transfer processing). |
| [transfer-payout-failure](/guides/developer/webhooks/event-types#transfer-payout-failure) | Notification of payout failure reason when a payout fails and funds bounce back. |
| [users-state-change](/api-reference/webhook-event/eventusersstatechange) | Notification that triggers when a user state changes. |


### Endpoints

The links in the table will redirect you to the endpoint in the API reference.

| Link  | Description |
|  --- | --- |
| [get delivery estimate](/api-reference/delivery-estimate/deliveryestimateget) | Allows you to get the time at which we currently expect the transfer to arrive. |
| [get receipt-pdf](/api-reference/transfer/transferreceiptget) | Allows you to get the payout receipt PDF detailing sender, recipient, and some additional information about the transfer. |
| [get banking partner payout information](/api-reference/transfer/transferpayoutinfoget) | Allows you to get payout information on which you can generate your own payout receipt (in-app, PDF or some other format). |
| [cancel transfer](/api-reference/transfer/transfercancel) | Allows you to cancel the transfer before it has been sent. |


## Payment status or money hasn't reached recipient

A common customer query is asking for an update on the payment status when it’s taking longer than they expected or when the beneficiary claims they haven’t yet received the funds. Some customers will simply want to know the status or ETA, others might ask to cancel, amend, trace, or recall.

There are several ways to help the customer in these situations:

- The [transfer-state-change](/guides/developer/webhooks/event-types#transfer-state-change) webhook allows you to see the latest state the payment is in. See our [list of transfer-statuses](/guides/product/send-money/tracking/transfer-statuses).
- The [transfer-active-cases](/guides/developer/webhooks/event-types#transfer-active-cases) webhook notifies you of any issues with the transfer, even if there is no action you can take to resolve the issue. Wise might simply be doing additional checks on our side, so this webhook gives an indication of delays in processing the payment.
- The [delivery estimate](/api-reference/delivery-estimate/deliveryestimateget) endpoint gives you the current estimate of when the payment should hit the recipient’s account.


Read more about tracking transfers in our [Tracking transfers guide](/guides/product/send-money/tracking/transfer-statuses).

## Receipt or proof of payout

Sometimes the customer needs to provide the recipient with proof of the payment being made, or they request this for their own records or peace of mind.

- The [receipt-pdf](/api-reference/transfer/transferreceiptget) endpoint allows you to download a Wise-branded PDF.
- The [banking partner payout information](/api-reference/transfer/transferpayoutinfoget) endpoint allows you to fetch specific payout information so that you can generate your own transfer receipt.


Read more about custom receipts in our [Custom receipt guide](/guides/product/send-money/receipts).

## Reason for returned funds

Sometimes we cannot pay the funds out or the funds are returned to us (for example, the recipient’s details were incorrect or their account is closed).

- The [transfer-state-change](/guides/developer/webhooks/event-types#transfer-state-change) webhook helps you understand the current status of the payment. For example, was the payment already returned to us but we haven’t yet refunded to the customer, or the refund has already been made.
- The [transfer-payout-failure](/guides/developer/webhooks/event-types#transfer-payout-failure) webhook allows you to see the specific reason for the bounce back.


## User state change

In the event we need to deactivate or reactivate a mutual customer's Wise account, we will trigger a `users#state-change` notification via webhook.

Wise account deactivation invalidates any access tokens, refresh tokens, or registration codes you possess for the customer's Wise account. A symptom of this change can be `401` response errors when you try to generate new access tokens for the customer via `POST /oauth/token`.

- The [users-state-change](/api-reference/webhook-event/eventusersstatechange) webhook provides updates about Wise account deactivation or reactivation along with the reason for deactivation and if this information can be shared with the end customer.