# Statuses

## Payment

```mermaid
flowchart TD
    P[PENDING] --> F[FAILED]
    P --> C[COMPLETED]
    P --> X[CANCELLED]
    F -. paid late .-> C
    X -. paid late .-> C
    C --> R[REFUNDED]
    C --> V[REVERSED]
    class P warn
    class C ok
    class F,V error
    class X,R neutral
```

| Status | Meaning | Final |
| --- | --- | --- |
| `PENDING` | Waiting for the customer to pay. | No |
| `COMPLETED` | Paid. Partial refunds keep this status. | Can still move to reversed or refunded |
| `FAILED` | Expired or declined. See `failure.code`. | Almost: see below |
| `CANCELLED` | Canceled before the customer paid. | Almost: see below |
| `REVERSED` | Reversed after completion, for example a chargeback. | Yes |
| `REFUNDED` | Fully refunded. | Yes |

> **Note:** **A late payment still counts.** Sometimes a customer pays just as a payment expires or is canceled, or the provider's confirmation reaches Weav late. When the provider confirms the money arrived, a `FAILED` or `CANCELLED` payment becomes `COMPLETED`, its `failure` clears, the amount is credited to your balance, and you get a `PAYMENT_COMPLETED` webhook. Always act on the latest status, and be ready to fulfill (or refund) an order you had given up on. Weav checks with providers regularly, so this happens without anyone asking.

## Payment failure codes

| Code | Meaning |
| --- | --- |
| `EXPIRED` | The customer didn’t pay before `expires_at`. |
| `DECLINED` | The provider or card issuer declined the payment. |
| `PROVIDER_ERROR` | The provider couldn’t process the payment. |

## Saved card

```mermaid
flowchart LR
    P[PENDING] --> A[ACTIVE]
    P --> F[FAILED]
    A --> R[REMOVED]
    P -. removed .-> R
    class P warn
    class A ok
    class F error
    class R neutral
```

| Status | Meaning |
| --- | --- |
| `PENDING` | Waiting for your customer to save the card and their bank to confirm it. |
| `ACTIVE` | Saved. You can charge it. |
| `FAILED` | The bank's check failed, the save link ran out, or the payment it was saved with wasn't paid. |
| `REMOVED` | Removed, by you (`DELETE /v1/payment-methods/{id}`) or by Weav. It can't be charged again. |

See [Saved cards](https://docs.weavpayments.com/saved-cards).

## Withdrawal

```mermaid
flowchart LR
    P[PENDING] --> S[FOR_SETTLEMENT]
    S --> D[COMPLETED]
    P --> F[FAILED]
    S --> F
    class P warn
    class S info
    class D ok
    class F error
```

| Status | Meaning |
| --- | --- |
| `PENDING` | Requested and held from your balance. |
| `FOR_SETTLEMENT` | Accepted by the bank and on its way. |
| `COMPLETED` | Arrived in your bank account. |
| `FAILED` | Rejected. The amount is back in your balance. |
