# Subscribe to transfer state change

As well as `swift-in#credit`, you can also subscribe to `transfer-state-change` notifications. This gives you information about all transfers in your Wise account, including the states in an inbound Swift payment.

As you implement this subscription, be sure to handle duplicate messaging about the same transaction.

## Transfer state change event  

* Event type: `transfers#state-change`
* Profile level subscriptions: Supported
* Application level subscriptions: Supported


This event will be triggered every time a transfer's status is updated. Each event contains a timestamp.
Events may not be delivered in the order they occurred. Use `data.occurred_at` to reconcile the order. See the [Event Ordering](/guides/developer/webhooks/event-ordering) guide for details.

If you would like to subscribe to transfer state change events, please use `transfers#state-change`
when creating your subscription.

Note that for all topup-to-balance transfers created, transfers#state-change events will NOT be triggered. To listen to these, subscribe to balances#update webhook.

Schema
data.resource.type
Transfer resource type (always `transfer`)

data.resource.id
ID of the transfer

data.resource.profile_id
ID of the profile that owns the transfer

data.resource.account_id
ID of transfer's recipient account

data.current_state
Current transfer state (see [transfer statuses](/guides/product/send-money/tracking-transfers#transfer-statuses))

data.previous_state
Previous transfer state (see [transfer statuses](/guides/product/send-money/tracking-transfers#transfer-statuses)) - Note that this will be `null` for newly created transfers.

data.occurred_at
When the state change occurred.

Example `transfers#state-change` event

```json
{
  "data": {
    "resource": {
      "type": "transfer",
      "id": 111,
      "profile_id": 222,
      "account_id": 333
    },
    "current_state": "processing",
    "previous_state": "incoming_payment_waiting",
    "occurred_at": "2020-01-01T12:34:56Z"
  },
  "subscription_id": "01234567-89ab-cdef-0123-456789abcdef",
  "event_type": "transfers#state-change",
  "schema_version": "2.0.0",
  "sent_at": "2020-01-01T12:34:56Z"
}
```

Schema
data.resource.type
Transfer resource type (always `transfer`)

data.resource.id
ID of the transfer

data.resource.profile_id
ID of the profile that owns the transfer

data.resource.account_id
ID of transfer's recipient account

data.current_state
Current transfer state (see [transfer statuses](/guides/product/send-money/tracking-transfers#transfer-statuses))

data.previous_state
Previous transfer state (see [transfer statuses](/guides/product/send-money/tracking-transfers#transfer-statuses)) - Note that this will be `null` for newly created transfers.

data.occurred_at
When the state change occurred.

Example `transfers#state-change` event

```json
{
  "data": {
    "resource": {
      "type": "transfer",
      "id": 111,
      "profile_id": 222,
      "account_id": 333
    },
    "current_state": "processing",
    "previous_state": "incoming_payment_waiting",
    "occurred_at": "2020-01-01T12:34:56.789Z"
  },
  "subscription_id": "01234567-89ab-cdef-0123-456789abcdef",
  "event_type": "transfers#state-change",
  "schema_version": "4.0.0",
  "sent_at": "2020-01-01T12:34:56.123Z"
}
```