# Account Upgraded

**Webhook:** `AccountUpgraded`

Triggered when a user’s trading account successfully progresses to the next program stage (e.g., from Evaluation to Verification, or from Verification to Funded). This webhook helps systems stay in sync with account progression and can be used to trigger client notifications or update CRM / analytics tools.

```json
{
  "webhookType"          : "AccountUpgraded",
  "testMode"             : false,
  "userId"               : "<user_id>",
  "userFirstname"        : "<user_firstname>",
  "userLastname"         : "<user_lastname>",
  "userEmail"            : "<user_email>",
  "userCountryCode"      : "<user_country>",
  "programId"            : "<current_program_id>",
  "programName"          : "<current_program_name>",
  "accountId"            : "<account_id>",
  "accountLogin"         : "<account_login>",
  "upgradeTimestamp"     : "<upgrade_timestamp>",
  "nextProgramId"        : "<next_program_id>",
  "nextProgramName"      : "<next_program_name>",
  "upgradedById"         : "system / <user_id>",
  "upgradedByEmail"      : "system / <user_email>"
}
```

## Payload Structure

| Field              | Type    | Description                                                                                                   |
| ------------------ | ------- | ------------------------------------------------------------------------------------------------------------- |
| `webhookType`      | String  | Type of webhook event. Always `AccountUpgraded` for this webhook.                                             |
| `testMode`         | Boolean | Flag to indicate whether this payload is a test `true` or live `false`. Currently, only `false` is supported. |
| `userId`           | String  | Unique identifier for the user within YourPropFirm SaaS platform.                                             |
| `userFirstname`    | String  | First name of the user.                                                                                       |
| `userLastname`     | String  | Last name of the user.                                                                                        |
| `userEmail`        | String  | Email address of the user, also the user unique identifier for authentication.                                |
| `userCountryCode`  | String  | ISO 3166-1 alpha-2 country code (e.g., `US`, `SG`, `GB`) of the user’s address.                               |
| `programId`        | String  | Unique identifier for the trading program or plan the user enrolled in.                                       |
| `programName`      | String  | Display name of the trading program of the user joined.                                                       |
| `accountId`        | String  | Internal ID used to reference the created trading account.                                                    |
| `accountLogin`     | String  | Login ID or number for accessing the trading account on the platform.                                         |
| `upgradeTimestamp` | String  | ISO 8601. Timestamp to when the upgrade occurred (e.g., `2025-04-29T12:30:00Z`).                              |
| `nextProgramId`    | String  | Unique identifier for the trading program the account is being upgraded to.                                   |
| `nextProgramName`  | String  | Display name of the trading program the account is being upgraded to.                                         |
| `upgradeById`      | String  | Identifier of who triggered the update - could be `system` or a user ID.                                      |
| `upgradedByEmail`  | String  | Email of the person or system that triggered the upgrade - could be `system` or a user email.                 |
