> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.withpersona.com/2020-05-18/transaction-api-first-lifecycle/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 | > Use Transaction statuses to track user progress through an API-first flow.