# Account Upgrade Rejected

**Webhook:** `AccountUpgradeRejected`

Triggered when an account upgrade request or eligibility is reviewed and explicitly rejected - manually by an admin. This webhook helps track downgrade actions, notify the user or system of the rejection, and log who performed the action and why.

```json
{
  "webhookType"          : "AccountUpgradeRejected",
  "testMode"             : false,
  "userId"               : "<user_id>",
  "userFirstname"        : "<user_firstname>",
  "userLastname"         : "<user_lastname>",
  "userEmail"            : "<user_email>",
  "userCountryCode"      : "<user_country>",
  "programId"            : "<program_id>",
  "programName"          : "<program_name>",
  "accountId"            : "<account_id>",
  "accountLogin"         : "<account_login>",
  "rejectReason"         : "<reject_reason>",
  "rejectTimestamp"      : "<reject_timestamp>",
  "nextProgramId"        : "<program_id>",
  "nextProgramName"      : "<program_name>",
  "rejectById"           : "<user_id>",
  "rejectByEmail"        : "<user_email>",
}
```

## Payload Structure

| Field             | Type    | Description                                                                                                   |
| ----------------- | ------- | ------------------------------------------------------------------------------------------------------------- |
| `webhookType`     | String  | Type of webhook event. Always `AccountUpgradeRejected` 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.                                         |
| `rejectReason`    | String  | Explanation for why the upgrade was rejected, input by the admin.                                             |
| `rejectTimestamp` | String  | ISO 8601. Timestamp when the rejection occurred (e.g., `2025-04-29T14:00:00Z`).                               |
| `nextProgramId`   | String  | Unique identifier for the trading program of the intended next program that was not approved.                 |
| `nextProgramName` | String  | Name of the intended next program.                                                                            |
| `rejectById`      | String  | Unique identifier of the user that rejected the upgrade.                                                      |
| `rejectByEmail`   | String  | Email of the user that rejected the upgrade.                                                                  |
