> ## Documentation Index
> Fetch the complete documentation index at: https://developers.circle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Stablecoin payin states

> Reference for PaymentIntent, Payment, and Refund states in the Managed Payments stablecoin payin flow.

Managed Payments tracks stablecoin payins using three resources:
`PaymentIntent`, `Payment`, and `Refund`. Each resource moves through a set of
states as the payin progresses.

## PaymentIntent states

A `PaymentIntent` is created when you request a deposit address. Its state shows
whether the address is ready and whether funds have settled.

| State     | Description                                                                                                                                |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `pending` | The deposit address is being provisioned and is not yet ready.                                                                             |
| `paid`    | At least one payment has settled. For continuous intents, monitor individual `Payment` objects for each settlement. Terminal state.        |
| `failed`  | The intent could not be fulfilled. Terminal state.                                                                                         |
| `expired` | The `expiresOn` time passed with no payment received. No further payments are accepted. Applies to transient intents only. Terminal state. |

Transient intents expire when the `expiresOn` timestamp is reached with no
payment received. Continuous intents do not expire.

## Payment states

A `Payment` is created each time funds arrive at the deposit address. Its state
shows whether the payment settled.

| State                                                                       | Description                                                              |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| [`pending`](/cpn/managed-payments/references/webhook-events#payment-events) | An onchain payment was detected and settlement is in progress.           |
| [`paid`](/cpn/managed-payments/references/webhook-events#payment-events)    | The payment settled successfully. Terminal state.                        |
| `failed`                                                                    | The payment failed. Check `statusReason` for the reason. Terminal state. |

## Refund states

A `Refund` is created when funds from a `Payment` are returned to the sender.
Its state shows whether the refund was delivered.

| State     | Description                                                                             |
| --------- | --------------------------------------------------------------------------------------- |
| `pending` | The refund was initiated and settlement is in progress.                                 |
| `paid`    | The refund was delivered successfully. Terminal state.                                  |
| `failed`  | The refund could not be delivered. Check `statusReason` for the reason. Terminal state. |

## Status reasons

The `statusReason` field provides additional context for certain `Payment`
states.

| Status    | `statusReason`       | Description                                                                                            |
| --------- | -------------------- | ------------------------------------------------------------------------------------------------------ |
| `pending` | `compliance_review`  | Compliance is awaiting PII before releasing funds.                                                     |
| `failed`  | `compliance_denied`  | Funds seized due to sanctions hit.                                                                     |
| `failed`  | `unsupported_wallet` | Funds are stuck in escrow because the sender wallet is not supported (self-hosted wallet or non-VASP). |
| `paid`    | `unsupported_wallet` | Funds settled but were received from an unsupported VASP.                                              |

<Note>
  States with a link in the Payment states table have a corresponding webhook
  event. `failed` has no webhook.
</Note>
