> This page is for version 2022-09-01.
> For other versions, use one of these documentation indexes:
> - 2026-09-29 (default): https://docs.withpersona.com/2026-09-29/llms.txt
> - 2025-12-08: https://docs.withpersona.com/2025-12-08/llms.txt
> - 2025-10-27: https://docs.withpersona.com/2025-10-27/llms.txt
> - 2023-01-05: https://docs.withpersona.com/2023-01-05/llms.txt
> - 2022-09-01: https://docs.withpersona.com/2022-09-01/llms.txt
> - 2021-07-05: https://docs.withpersona.com/2021-07-05/llms.txt
> - 2021-05-14: https://docs.withpersona.com/2021-05-14/llms.txt
> - 2020-05-18: https://docs.withpersona.com/2020-05-18/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.withpersona.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.withpersona.com/_mcp/server.

# Transaction API-first lifecycle

> Use Transaction statuses to track user progress through an API-first flow.

Transaction statuses can be updated at various points in the Transactions lifecycle to track user progression through API-first flow.

To start we suggest the following statuses but as we build out the integration we can add/remove them as necessary. These can be used for tracking/reporting:

| Status      | Event Name                                           | Description                                                                                                                                                                              | Metrics                              |
| ----------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
| `created`   | `transaction.created`                                | Initial status. Transaction has been created with information collected and passed to Persona.                                                                                           |                                      |
| `completed` | `transaction.status-updated` with status `completed` | A custom status you can add to your transaction type. `transaction.status-updated` fires whenever the transaction's status is updated, including to a custom status such as `completed`. | Completed Rate = Completed / Created |
| `approved`  | `transaction.status-updated` with status `approved`  | The Transaction has been approved. Will be using `transaction.status-updated` with status `approved`.                                                                                    | Approved Rate = Approved / Created   |
| `declined`  | `transaction.status-updated` with status `declined`  | The Transaction has been declined. Will be using `transaction.status-updated` with status `declined`                                                                                     | Decline Rate = Declined / Created    |