# Envelope status values

Every envelope has a status that shows where it is in the signing process. The status tells you whether an envelope is waiting to be sent, out for signatures, or complete.

## Status values

| Status | Description |
|  --- | --- |
| `processing` | Signable is processing the documents you uploaded. This status appears briefly after upload. |
| `failed` | The documents failed to process. Check the error details to see what went wrong. |
| `draft` | You created the envelope but have not sent it yet. You can still edit or delete it. |
| `sent` | The envelope is with parties waiting for signatures. Some parties may have signed already, but not everyone. |
| `signed` | All parties have signed. The envelope is complete and you can download the signed documents. |
| `cancelled` | You cancelled the envelope. Parties can no longer sign it. Signable sent cancellation emails to all parties. |
| `rejected` | A party declined to sign. No one else can sign now. |
| `expired` | The envelope was not signed before the expiry date. Signable automatically cancelled it. |
| `verify` | All parties have signed but identity verification is pending. This only applies to [widget envelopes](https://developers.signable.app/concepts#widget) with email verification enabled. |


## How envelopes move through statuses

Envelopes created in the web app follow this path:

```mermaid
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#E3F4FC', 'primaryBorderColor': '#0077B6', 'primaryTextColor': '#333333', 'clusterBkg': '#f8f9fa', 'clusterBorder': '#d0d7de'}}}%%

graph LR
subgraph draft
    A[Create Envelope] --> B[Add Documents]
    B --> C[Assign Parties]
end
subgraph sent
    C --> D[Send]
    D --> E[Parties Sign]
end
subgraph signed
    E --> F[Complete]
end
```

br
Envelopes created via the API follow this path:

```mermaid
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#E3F4FC', 'primaryBorderColor': '#0077B6', 'primaryTextColor': '#333333', 'clusterBkg': '#f8f9fa', 'clusterBorder': '#d0d7de'}}}%%

graph LR
    A[Create Envelope] --> B[Add Documents]
    B --> C[Assign Parties]
    C --> D[Send]
subgraph sent
    D --> E[Parties Sign]
end
subgraph signed
    E --> F[Complete]
end
```

br
Your envelope might also go through these paths:

```
draft → cancelled (you cancelled before sending)
sent → rejected (a party declined to sign)
sent → expired (no one signed before the expiry date)
sent → cancelled (you cancelled after sending)
```

Widget envelopes with verification follow this path:

```
draft → sent → verify → signed
```

## What you can do with status values

### Show progress to your users

Display the envelope status in your application:

- `draft` → "Draft - not sent yet"
- `sent` → "Waiting for signatures"
- `signed` → "Complete"
- `cancelled` → "Cancelled"
- `rejected` → "Rejected"
- `expired` → "Expired"


### Filter and organise envelopes

Use status values to create different views:

- Show envelopes waiting for signatures (status is `sent`)
- Show completed envelopes (status is `signed`)
- Show envelopes that need attention (status is `rejected` or `expired`)


### Control available actions

Different statuses allow different actions:

| Status | What you can do |
|  --- | --- |
| `draft` | Edit, send, or delete the envelope |
| `sent` | Cancel, send reminders, or view the envelope |
| `signed` | Download or view the envelope |
| `cancelled`, `rejected`, `expired` | View the envelope only |


This prevents errors, such as trying to edit an envelope that has already been sent.

### Respond to status changes

When an envelope status changes, you can take action:

- When status changes to `signed`, download the signed documents
- When status changes to `rejected`, notify your team
- When status changes to `expired`, send a reminder to resend


Envelope status changes can be tracked by subscribing to [webhook events](https://developers.signable.app/openapi/webhooks/listwebhooks).

## Processing and failed statuses

When you upload documents to create an envelope, the status is `processing` for a few seconds while Signable processes the files. The status automatically changes to `draft` when processing completes.

If something goes wrong during processing, the status changes to `failed`. Check the file(s) you have sent and resend.

## Related documentation

- [Send an envelope](/guides/send-envelope/send-an-envelope) - Create and send envelopes
- [Webhooks](/webhooks) - Receive notifications when status changes