> ## Documentation Index
> Fetch the complete documentation index at: https://docs.outseta.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Add a new account.

> To add an account with an existing person, the Account payload include something like this:
{ ... other Account properties ..., "PersonAccount": [ { "Person": { "Uid": [personUid] }, "IsPrimary": "true" } ] }



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/crm/accounts
openapi: 3.0.0
info:
  title: Outseta API
  description: >-
    # Outseta REST API


    The Outseta REST API lets you manage people, accounts, subscriptions,
    invoices, email, and support resources over HTTPS. Responses are JSON unless
    an endpoint documents another format, such as an invoice PDF.


    **Base URL:** `https://{your-domain}.outseta.com/api/v1/`


    ## Contents


    - [Quick start](#quick-start)

    - [Authentication](#authentication)
      - [Server-side API keys](#server-side-api-keys)
      - [Client-side bearer tokens](#client-side-bearer-tokens)
      - [Two-factor authentication](#two-factor-authentication-2fa-during-login)
      - [Forced 2FA enrollment](#forced-2fa-enrollment-during-login)
    - [Working with collections](#working-with-collections)
      - [Field selection](#field-selection)
      - [Pagination](#pagination)
      - [Sorting](#sorting)
      - [Filtering](#filtering)
    - [Account billing stages](#account-billing-stages)

    - [Error responses](#error-responses)

    - [Rate limits](#rate-limits)

    - [Support](#support)

    - [Webhooks](#webhooks)

    - [Endpoint index](#endpoint-index)


    ## Quick start


    Authenticate every request with either a server-side API key or a user
    bearer token. For example:


    ```http

    GET /api/v1/crm/accounts?limit=20&fields=Uid,Name HTTP/1.1

    Host: example.outseta.com

    Authorization: Outseta {api_key}:{api_secret}

    ```


    List endpoints return a consistent envelope:


    ```json

    {
      "metadata": {
        "limit": 20,
        "offset": 0,
        "total": 142
      },
      "items": []
    }

    ```


    Use `limit` and `offset` for [pagination](#pagination), `fields` to control
    the response shape, `orderBy` for sorting, and entity properties for
    filtering.


    General request behavior:


    - Use HTTPS. HTTP requests are redirected to HTTPS with `301`.

    - `GET` retrieves, `POST` creates or invokes an action, `PUT` updates, and
    `DELETE` removes.

    - The API returns standard HTTP status codes. Error details are returned as
    JSON.

    - Add `donotlog=1` to a request that should not appear in the activity log.


    ## Authentication


    All API requests require authentication via one of two methods:


    ### Server-Side (API Keys)


    Use API keys for server-to-server integrations. Create keys at **Settings >
    Integrations > API Keys**. Make sure to record the secret key when you
    create it.


    ```

    Authorization: Outseta {api_key}:{api_secret}

    ```


    **Example:**

    ```

    Authorization: Outseta
    ce08fd5a-e1ee-4472-9c5f-b7575d8369b2:74fc1d2242a4eb7336d34b0e40cfbc5f

    ```


    > **Warning:** Never expose API keys in client-side code. The API key and
    secret combined give full access to all data in your account.


    ### Client-Side (Bearer Token)


    Do **not** use API keys on the client side — they can be easily copied.
    Instead, obtain a JWT access token by calling the `POST /tokens` endpoint
    from the server side with your credentials, then use it on the client:


    ```

    Authorization: bearer {access_token}

    ```


    Tokens are JWTs containing claims such as `PersonUid`, `AccountUid`, and
    subscription details. Tokens expire after approximately one year.


    Verify tokens server-side using Outseta's [JWKS
    endpoint](https://{your-domain}.outseta.com/.well-known/jwks.json).


    ### Two-Factor Authentication (2FA) During Login


    When a user has enabled two-factor authentication, a username and password
    are

    no longer sufficient to obtain a token — the login becomes a two-step
    exchange.

    You do not need to call any endpoint up front to discover whether 2FA is on;
    the

    response to `POST /tokens` tells you.


    **Step 1 — Attempt login as usual.**


    ```

    POST /api/v1/tokens

    Content-Type: application/json


    { "username": "user@example.com", "password": "their-password" }

    ```


    If the user has no 2FA enabled, you get the normal `200` token response and

    you're done:


    ```json

    { "access_token": "eyJ...", "token_type": "Bearer", "expires_in": 31536000 }

    ```


    If the user **does** have 2FA enabled, the password is verified and the
    response

    is `202 Accepted` with a challenge instead of a token:


    ```json

    {
      "two_factor_required": true,
      "challenge_token": "eyJ...",
      "mechanism": "Totp",
      "masked_destination": "",
      "expires_in": 600,
      "available_mechanisms": ["Totp", "Email"],
      "recovery_codes_available": true
    }

    ```


    This single response answers everything you need to know about the user's
    2FA:


    | Field | Meaning |

    |-------|---------|

    | `mechanism` | The method this challenge targets: `Email` or `Totp`
    (authenticator app). **If `Email`, a one-time code has already been emailed
    to the user.** If `Totp`, nothing is sent — the user reads the current code
    from their authenticator app. |

    | `masked_destination` | Where an emailed code was sent, masked for display
    (e.g. `b***@outseta.com`). Empty when `mechanism` is `Totp`. |

    | `available_mechanisms` | Every method the user has enrolled. Use this to
    show the user their options (and to enable "use a different method"). |

    | `recovery_codes_available` | Whether the user has recovery codes they can
    fall back to. |

    | `challenge_token` | Opaque, short-lived token (valid for `expires_in`
    seconds, 600 = 10 minutes) that ties the next request to this challenge.
    Echo it back verbatim. |


    > When both an authenticator app and email are enrolled, Outseta picks the

    > authenticator app (`Totp`) as the default `mechanism` because it requires
    no

    > "check your inbox" step. The user can switch to email — see below.


    **Step 2 — Submit the code to get the token.**


    Collect the 6-digit code from the user (from their email or authenticator
    app)

    and post it along with the `challenge_token`:


    ```

    POST /api/v1/tokens/two-factor

    Content-Type: application/json


    { "challenge_token": "eyJ...", "code": "123456" }

    ```


    On success you receive the final JWT — the same shape as a normal login, and
    the

    token you use as the `Authorization: bearer {access_token}` for subsequent
    calls:


    ```json

    { "access_token": "eyJ...", "token_type": "Bearer", "expires_in": 31536000 }

    ```


    Error responses:


    | Status | Body | Meaning |

    |--------|------|---------|

    | `400` | `invalid_grant` | The code was wrong or missing. The challenge
    allows up to 5 attempts before it locks. |

    | `410` | `challenge_expired` | The challenge token expired (older than 10
    minutes). Start over at `POST /tokens`. |

    | `429` | — | Too many attempts; retry after a minute. |


    **Optional helper endpoints** (all take the `challenge_token` from Step 1):


    - **Resend an emailed code** — `POST /api/v1/tokens/two-factor/resend` with
      `{ "challenge_token": "..." }`. Returns a fresh challenge (same shape as the
      `202` above). Only valid for `Email` challenges; a `Totp` challenge returns
      `400` `not_supported`.
    - **Switch to a different method** — `POST
    /api/v1/tokens/two-factor/switch-mechanism`
      with `{ "challenge_token": "...", "mechanism": "Email" }`. Use this when the
      user picks one of the other `available_mechanisms` (e.g. they can't reach their
      authenticator). Returns a fresh challenge for the chosen mechanism (and sends a
      code when switching to `Email`).
    - **Use a recovery code** — `POST /api/v1/tokens/two-factor/recovery` with
      `{ "challenge_token": "...", "recovery_code": "abcd-efgh-ijkl" }`. Returns the
      final JWT, exactly like Step 2. Each recovery code is single-use.

    ### Forced 2FA Enrollment During Login


    Accounts can be configured to *require* 2FA. When a user who has not yet set
    it

    up tries to log in, they must enroll a method before they can get a token —

    all in the same login flow.


    **Step 1 — Attempt login.** Exactly as above. If the account forces 2FA and
    the

    user has no method enrolled, `POST /api/v1/tokens` verifies the password and

    returns `202 Accepted` with `two_factor_enrollment_required` (instead of

    `two_factor_required`):


    ```json

    {
      "two_factor_enrollment_required": true,
      "challenge_token": "eyJ...",
      "expires_in": 600
    }

    ```


    That `challenge_token` is the **enrollment token** — it proves the user's

    identity for the rest of the flow. Pass it as `enrollment_token` in every
    call

    below. Let the user pick a method (email or an authenticator app) and run
    the

    matching two-step *begin → confirm* sequence.


    **Option A — Enroll an authenticator app (recommended).**


    1. Begin — exchange the enrollment token for a shared secret:

       ```
       POST /api/v1/tokens/two-factor/enroll/totp/begin
       { "enrollment_token": "eyJ..." }
       ```
       ```json
       {
         "challenge_token": "eyJ...",
         "secret": "JBSWY3DPEHPK3PXP",
         "otpauth_uri": "otpauth://totp/Acme:user@example.com?secret=...&issuer=Acme",
         "qr_code_png_base64": "iVBORw0KGgo...",
         "expires_in": 600
       }
       ```
       Have the user add the secret to their authenticator app — scan
       `qr_code_png_base64` (render it as an image), open `otpauth_uri`, or type the
       `secret` manually.

    2. Confirm — submit the first code the app generates:

       ```
       POST /api/v1/tokens/two-factor/enroll/totp/confirm
       { "enrollment_token": "eyJ...", "challenge_token": "eyJ...", "code": "123456" }
       ```

    **Option B — Enroll email.**


    1. Begin — a code is emailed to the user:

       ```
       POST /api/v1/tokens/two-factor/enroll/email/begin
       { "enrollment_token": "eyJ..." }
       ```
       ```json
       { "challenge_token": "eyJ...", "mechanism": "Email", "masked_destination": "b***@outseta.com", "expires_in": 600 }
       ```

    2. Confirm — submit the emailed code:

       ```
       POST /api/v1/tokens/two-factor/enroll/email/confirm
       { "enrollment_token": "eyJ...", "challenge_token": "eyJ...", "code": "123456" }
       ```

    **Confirm response (both options).** A successful confirm enables the method

    *and* completes the login in one shot — it returns the final JWT plus the
    user's

    recovery codes:


    ```json

    {
      "confirmed": true,
      "recovery_codes": ["abcd-efgh-ijkl", "mnop-qrst-uvwx", "..."],
      "access_token": "eyJ...",
      "token_type": "Bearer",
      "expires_in": 31536000
    }

    ```


    > Show `recovery_codes` to the user **once** and prompt them to save the
    codes —

    > they are generated as part of first-time enrollment and are never returned

    > again. Each is single-use at `POST /api/v1/tokens/two-factor/recovery`.


    Notes:


    - Both `begin` calls pass only the `enrollment_token`; both `confirm` calls
    pass
      the `enrollment_token`, the `challenge_token` from the matching `begin`, and the
      `code`.
    - `401` means the enrollment token is missing/invalid/expired (restart at
    Step 1);
      `403` means forced enrollment does not apply to the user; `400` (`invalid_grant`)
      means a wrong code; `410` (`challenge_expired`) means the challenge timed out.
    - Each token/challenge is valid for 10 minutes (`expires_in` = 600). If the
    user
      takes too long, restart at `POST /api/v1/tokens`.
    - After enrollment, the user is a normal 2FA user — subsequent logins follow
    the
      standard challenge flow described above, not this enrollment flow.

    ## Working with collections


    Collection endpoints support field selection, pagination, sorting, and
    filtering. Unless an endpoint says otherwise, these options can be combined
    in the same request.


    ### Field selection


    When you make an API request, you'll automatically get all the basic
    information from the main object and its immediate child objects. Referenced
    objects beyond the first level are returned as `null`.


    Change this behavior using the `fields` query parameter:


    - **Go deeper** — Request fields lower down in the object tree:
    `?fields=CurrentSubscription.Plan.*`

    - **Go lighter** — Request only the essentials for faster performance:
    `?fields=Uid,Name`

    - **Combination** — `?fields=Uid,Name,CurrentSubscription.Plan.Uid`

    - **Wildcard** — Use `*` to get all fields in an object: `?fields=*` or
    `?fields=CurrentSubscription.Plan.*`


    > **Tip:** When expanding nested paths, include `*` and intermediate path
    segments (e.g., `PersonAccount.*`) to preserve root-level and intermediate
    fields.


    **Examples:**


    ```

    # Get the current subscription plan UID for an account

    GET /crm/accounts/{uid}?fields=CurrentSubscription.Plan.Uid


    # Get the account UID and plan UID for a list of accounts

    GET /crm/accounts?fields=Uid,CurrentSubscription.Plan.Uid


    # Get the full plan object for an account's current subscription

    GET /crm/accounts/{uid}?fields=CurrentSubscription.Plan.*


    # Get a person with their account and subscription info

    GET
    /crm/people/{uid}?fields=Uid,PersonAccount.Account.CurrentSubscription.Plan.Uid

    ```


    If your request includes fields from a child object you will be limited to
    retrieving **25 items** per page. The maximum for requests not expanding
    child object fields is **100 items**.


    ### Pagination


    List endpoints return paginated results with a `metadata` object and an
    `items` array:


    ```json

    {
      "metadata": {
        "limit": 25,
        "offset": 0,
        "total": 142
      },
      "items": [ ... ]
    }

    ```


    | Parameter | Type | Default | Description |

    |-----------|------|---------|-------------|

    | `offset` | integer | `0` | Page number (zero-based) |

    | `limit` | integer | `25` | Maximum number of records per page |


    **Examples:**

    ```

    ?offset=0&limit=20    # returns results 1-20

    ?offset=1&limit=20    # returns results 21-40

    ```


    ### Sorting


    Sort results using the `orderBy` parameter with a property name and
    direction:


    ```

    ?orderBy=PropertyName+DESC

    ```


    ### Filtering


    Filter results by passing entity properties as query parameters.


    #### Basic filtering


    Filter on any field using the field name as a query parameter:


    ```

    GET /crm/people?Email=john@example.com

    GET /crm/accounts?AccountStage=2

    ```


    #### Wildcard matching


    | Pattern | Match Type | Example |

    |---------|-----------|---------|

    | `*value` | Ends with | `?Email=*@example.com` |

    | `value*` | Starts with | `?Name=Acme*` |

    | `*value*` | Contains | `?Name=*corp*` |


    #### Comparison operators


    For advanced filtering, append comparison operators to field names:


    | Operator | Description | Example |

    |----------|-------------|---------|

    | `__gt` | Greater than | `Created__gt=2024-01-01` |

    | `__gte` | Greater than or equal | `Amount__gte=100` |

    | `__lt` | Less than | `Created__lt=2024-12-31` |

    | `__lte` | Less than or equal | `Amount__lte=500` |

    | `__ne` | Not equal | `Status__ne=Active` |

    | `__isnull` | Is null (true/false) | `ProfileImageS3Url__isnull=true` |


    **Examples:**


    ```

    # Date filtering

    GET /crm/accounts?Created__gt=2024-01-01

    GET /billing/subscriptions?EndDate__lt=2024-08-01


    # Numeric filtering

    GET /billing/invoices?Amount__gte=1000


    # Null value filtering

    GET /crm/people?ProfileImageS3Url__isnull=true


    # Multiple filters combined with field selection

    GET
    /billing/subscriptions?StartDate__gte=2024-01-01&Rate__lt=100&DiscountCode__isnull=false&fields=Uid,Amount,StartDate,DiscountCode,Plan.Name

    ```


    ## Account Billing Stages


    Account stages reflect the financial standing of each account and are not
    directly editable — they change automatically based on subscription
    activity.


    | Value | Stage | Description |

    |-------|-------|-------------|

    | `2` | Trialing | Currently on a free trial or free plan |

    | `3` | Subscribing | Active paid subscription (contributes to MRR) |

    | `4` | Canceling | Customer has indicated intent to cancel |

    | `5` | Expired | Subscription has ended after cancellation |

    | `6` | Trial Expired | Free trial ended without conversion to paid |


    Filter by stage: `GET /crm/accounts?AccountStage=3` returns all actively
    subscribing accounts.


    ## Error Responses


    | Status Code | Description |

    |-------------|-------------|

    | `200` | Success |

    | `301` | Redirect — HTTP requests are redirected to HTTPS |

    | `400` | Bad request — invalid parameters or Uid format |

    | `401` | Unauthorized — missing or invalid authentication |

    | `404` | Entity not found |

    | `4XX` / `5XX` | Client or server error |


    Validation errors return a JSON body with `ErrorMessage` and `PropertyName`
    fields:


    ```json

    {
      "ErrorMessage": "Invalid company email",
      "PropertyName": "Email"
    }

    ```


    ## Rate Limits


    Requests authorized by an API Key should not exceed **4 requests/second**.


    ## Support


    For help regarding the Outseta API please email
    [support@outseta.com](mailto:support@outseta.com).


    ## Webhooks


    Use **Activity Notifications** to receive real-time callbacks when events
    occur in Outseta. Configure webhook URLs and their SHA256 signing secrets at
    **Settings > Notifications**. Always verify the signature before processing
    a request.


    Outseta sends an HTTP `POST` to each registered callback URL. The payload is
    the activity's entity restricted to a subset of fields, with an
    `ActivityEventData` property carrying activity-specific data.


    | Activity | Entity | Payload schema |

    | --- | --- | --- |

    | `AccountCreated` | `Account` | `AccountCreatedWebhookPayload` |

    | `AccountUpdated` | `Account` | `AccountUpdatedWebhookPayload` |

    | `AccountAddPerson` | `Account` | `AccountAddPersonWebhookPayload` |

    | `AccountStageUpdated` | `Account` | `AccountStageUpdatedWebhookPayload` |

    | `AccountDeleted` | `Account` | `AccountDeletedWebhookPayload` |

    | `AccountBillingInformationUpdated` | `Account` |
    `AccountBillingInformationUpdatedWebhookPayload` |

    | `AccountSubscriptionPlanUpdated` | `Account` |
    `AccountSubscriptionPlanUpdatedWebhookPayload` |

    | `AccountSubscriptionPaymentCollected` | `Account` |
    `AccountSubscriptionPaymentCollectedWebhookPayload` |

    | `AccountSubscriptionPaymentDeclined` | `Account` |
    `AccountSubscriptionPaymentDeclinedWebhookPayload` |

    | `AccountBillingInformationRequested` | `Account` |
    `AccountBillingInformationRequestedWebhookPayload` |

    | `AccountBillingInvoiceEmailSent` | `Invoice` |
    `AccountBillingInvoiceEmailSentWebhookPayload` |

    | `AccountRemovePerson` | `Account` | `AccountRemovePersonWebhookPayload` |

    | `AccountPaidSubscriptionCreated` | `Account` |
    `AccountPaidSubscriptionCreatedWebhookPayload` |

    | `AccountBillingInformationRemoved` | `Account` |
    `AccountBillingInformationRemovedWebhookPayload` |

    | `AccountPrimaryPersonUpdated` | `Account` |
    `AccountPrimaryPersonUpdatedWebhookPayload` |

    | `AccountBillingInvoiceCreated` | `Invoice` |
    `AccountBillingInvoiceCreatedWebhookPayload` |

    | `AccountSubscriptionStarted` | `Account` |
    `AccountSubscriptionStartedWebhookPayload` |

    | `AccountSubscriptionRenewalExtended` | `Account` |
    `AccountSubscriptionRenewalExtendedWebhookPayload` |

    | `AccountSubscriptionAddOnsChanged` | `Account` |
    `AccountSubscriptionAddOnsChangedWebhookPayload` |

    | `AccountSubscriptionCancellationRequested` | `Account` |
    `AccountSubscriptionCancellationRequestedWebhookPayload` |

    | `AccountBillingInvoiceDeleted` | `Invoice` |
    `AccountBillingInvoiceDeletedWebhookPayload` |

    | `AccountPersonRoleUpdated` | `Account` |
    `AccountPersonRoleUpdatedWebhookPayload` |

    | `PersonCreated` | `Person` | `PersonCreatedWebhookPayload` |

    | `PersonUpdated` | `Person` | `PersonUpdatedWebhookPayload` |

    | `PersonDeleted` | `Person` | `PersonDeletedWebhookPayload` |

    | `PersonLogin` | `Account` | `PersonLoginWebhookPayload` |

    | `PersonListSubscribed` | `Person` | `PersonListSubscribedWebhookPayload` |

    | `PersonListUnsubscribed` | `Person` |
    `PersonListUnsubscribedWebhookPayload` |

    | `PersonSegmentAdded` | `Person` | `PersonSegmentAddedWebhookPayload` |

    | `PersonSegmentRemoved` | `Person` | `PersonSegmentRemovedWebhookPayload` |

    | `PersonEmailOpened` | `Person` | `PersonEmailOpenedWebhookPayload` |

    | `PersonEmailClicked` | `Person` | `PersonEmailClickedWebhookPayload` |

    | `PersonEmailBounce` | `Person` | `PersonEmailBounceWebhookPayload` |

    | `PersonEmailSpam` | `Person` | `PersonEmailSpamWebhookPayload` |

    | `PersonSupportTicketCreated` | `Person` |
    `PersonSupportTicketCreatedWebhookPayload` |

    | `PersonSupportTicketUpdated` | `Person` |
    `PersonSupportTicketUpdatedWebhookPayload` |

    | `PersonLeadFormSubmitted` | `Person` |
    `PersonLeadFormSubmittedWebhookPayload` |

    | `PersonListConfirmed` | `Person` | `PersonListConfirmedWebhookPayload` |

    | `PersonEmailSubscribed` | `Person` | `PersonEmailSubscribedWebhookPayload`
    |

    | `PersonEmailUnsubscribed` | `Person` |
    `PersonEmailUnsubscribedWebhookPayload` |

    | `PersonTemporaryPasswordSet` | `Person` |
    `PersonTemporaryPasswordSetWebhookPayload` |

    | `PersonSupportTicketClosed` | `Person` |
    `PersonSupportTicketClosedWebhookPayload` |

    | `PersonTwoFactorRecoveryCodesRegenerated` | `Person` |
    `PersonTwoFactorRecoveryCodesRegeneratedWebhookPayload` |

    | `DealCreated` | `Deal` | `DealCreatedWebhookPayload` |

    | `DealUpdated` | `Deal` | `DealUpdatedWebhookPayload` |

    | `DealDeleted` | `Deal` | `DealDeletedWebhookPayload` |

    | `DealDueDate` | `Deal` | `DealDueDateWebhookPayload` |

    | `PlanCreated` | `Plan` | `PlanCreatedWebhookPayload` |

    | `PlanUpdated` | `Plan` | `PlanUpdatedWebhookPayload` |

    | `AddOnCreated` | `AddOn` | `AddOnCreatedWebhookPayload` |

    | `AddOnUpdated` | `AddOn` | `AddOnUpdatedWebhookPayload` |

    | `DiscordUserLinked` | `Person` | `DiscordUserLinkedWebhookPayload` |

    | `DiscordUserAddedToServer` | `Person` |
    `DiscordUserAddedToServerWebhookPayload` |

    | `DiscordUserRolesUpdated` | `Person` |
    `DiscordUserRolesUpdatedWebhookPayload` |

    | `DiscordUserRemovedFromServer` | `Person` |
    `DiscordUserRemovedFromServerWebhookPayload` |


    `TaskCreated` and `TaskUpdated` are not listed above because their payload
    is polymorphic: the webhook is rooted on the entity the task is associated
    with (an `Account`, `Person`, or `Deal`), with the task itself carried in
    the `ActivityEventData` property. Because the root entity varies per task,
    they do not have a single fixed payload schema.




    | Activity | Entity | Payload schema |

    | --- | --- | --- |

    | `AccountCreated` | `Account` | `AccountCreatedWebhookPayload` |

    | `AccountUpdated` | `Account` | `AccountUpdatedWebhookPayload` |

    | `AccountAddPerson` | `Account` | `AccountAddPersonWebhookPayload` |

    | `AccountStageUpdated` | `Account` | `AccountStageUpdatedWebhookPayload` |

    | `AccountDeleted` | `Account` | `AccountDeletedWebhookPayload` |

    | `AccountBillingInformationUpdated` | `Account` |
    `AccountBillingInformationUpdatedWebhookPayload` |

    | `AccountSubscriptionPlanUpdated` | `Account` |
    `AccountSubscriptionPlanUpdatedWebhookPayload` |

    | `AccountSubscriptionPaymentCollected` | `Account` |
    `AccountSubscriptionPaymentCollectedWebhookPayload` |

    | `AccountSubscriptionPaymentDeclined` | `Account` |
    `AccountSubscriptionPaymentDeclinedWebhookPayload` |

    | `AccountBillingInformationRequested` | `Account` |
    `AccountBillingInformationRequestedWebhookPayload` |

    | `AccountBillingInvoiceEmailSent` | `Invoice` |
    `AccountBillingInvoiceEmailSentWebhookPayload` |

    | `AccountRemovePerson` | `Account` | `AccountRemovePersonWebhookPayload` |

    | `AccountPaidSubscriptionCreated` | `Account` |
    `AccountPaidSubscriptionCreatedWebhookPayload` |

    | `AccountBillingInformationRemoved` | `Account` |
    `AccountBillingInformationRemovedWebhookPayload` |

    | `AccountPrimaryPersonUpdated` | `Account` |
    `AccountPrimaryPersonUpdatedWebhookPayload` |

    | `AccountBillingInvoiceCreated` | `Invoice` |
    `AccountBillingInvoiceCreatedWebhookPayload` |

    | `AccountSubscriptionStarted` | `Account` |
    `AccountSubscriptionStartedWebhookPayload` |

    | `AccountSubscriptionRenewalExtended` | `Account` |
    `AccountSubscriptionRenewalExtendedWebhookPayload` |

    | `AccountSubscriptionAddOnsChanged` | `Account` |
    `AccountSubscriptionAddOnsChangedWebhookPayload` |

    | `AccountSubscriptionCancellationRequested` | `Account` |
    `AccountSubscriptionCancellationRequestedWebhookPayload` |

    | `AccountBillingInvoiceDeleted` | `Invoice` |
    `AccountBillingInvoiceDeletedWebhookPayload` |

    | `AccountPersonRoleUpdated` | `Account` |
    `AccountPersonRoleUpdatedWebhookPayload` |

    | `PersonCreated` | `Person` | `PersonCreatedWebhookPayload` |

    | `PersonUpdated` | `Person` | `PersonUpdatedWebhookPayload` |

    | `PersonDeleted` | `Person` | `PersonDeletedWebhookPayload` |

    | `PersonLogin` | `Account` | `PersonLoginWebhookPayload` |

    | `PersonListSubscribed` | `Person` | `PersonListSubscribedWebhookPayload` |

    | `PersonListUnsubscribed` | `Person` |
    `PersonListUnsubscribedWebhookPayload` |

    | `PersonSegmentAdded` | `Person` | `PersonSegmentAddedWebhookPayload` |

    | `PersonSegmentRemoved` | `Person` | `PersonSegmentRemovedWebhookPayload` |

    | `PersonEmailOpened` | `Person` | `PersonEmailOpenedWebhookPayload` |

    | `PersonEmailClicked` | `Person` | `PersonEmailClickedWebhookPayload` |

    | `PersonEmailBounce` | `Person` | `PersonEmailBounceWebhookPayload` |

    | `PersonEmailSpam` | `Person` | `PersonEmailSpamWebhookPayload` |

    | `PersonSupportTicketCreated` | `Person` |
    `PersonSupportTicketCreatedWebhookPayload` |

    | `PersonSupportTicketUpdated` | `Person` |
    `PersonSupportTicketUpdatedWebhookPayload` |

    | `PersonLeadFormSubmitted` | `Person` |
    `PersonLeadFormSubmittedWebhookPayload` |

    | `PersonListConfirmed` | `Person` | `PersonListConfirmedWebhookPayload` |

    | `PersonEmailSubscribed` | `Person` | `PersonEmailSubscribedWebhookPayload`
    |

    | `PersonEmailUnsubscribed` | `Person` |
    `PersonEmailUnsubscribedWebhookPayload` |

    | `PersonTemporaryPasswordSet` | `Person` |
    `PersonTemporaryPasswordSetWebhookPayload` |

    | `PersonSupportTicketClosed` | `Person` |
    `PersonSupportTicketClosedWebhookPayload` |

    | `PersonTwoFactorRecoveryCodesRegenerated` | `Person` |
    `PersonTwoFactorRecoveryCodesRegeneratedWebhookPayload` |

    | `DealCreated` | `Deal` | `DealCreatedWebhookPayload` |

    | `DealUpdated` | `Deal` | `DealUpdatedWebhookPayload` |

    | `DealDeleted` | `Deal` | `DealDeletedWebhookPayload` |

    | `DealDueDate` | `Deal` | `DealDueDateWebhookPayload` |

    | `PlanCreated` | `Plan` | `PlanCreatedWebhookPayload` |

    | `PlanUpdated` | `Plan` | `PlanUpdatedWebhookPayload` |

    | `AddOnCreated` | `AddOn` | `AddOnCreatedWebhookPayload` |

    | `AddOnUpdated` | `AddOn` | `AddOnUpdatedWebhookPayload` |

    | `DiscordUserLinked` | `Person` | `DiscordUserLinkedWebhookPayload` |

    | `DiscordUserAddedToServer` | `Person` |
    `DiscordUserAddedToServerWebhookPayload` |

    | `DiscordUserRolesUpdated` | `Person` |
    `DiscordUserRolesUpdatedWebhookPayload` |

    | `DiscordUserRemovedFromServer` | `Person` |
    `DiscordUserRemovedFromServerWebhookPayload` |


    `TaskCreated` and `TaskUpdated` are not listed above because their payload
    is polymorphic: the webhook is rooted on the entity the task is associated
    with (an `Account`, `Person`, or `Deal`), with the task itself carried in
    the `ActivityEventData` property. Because the root entity varies per task,
    they do not have a single fixed payload schema.
  version: v1
servers:
  - url: https://{subdomain}.outseta.com
    description: Your Outseta account
    variables:
      subdomain:
        default: your-subdomain
        description: >-
          Your Outseta account subdomain — the part before ".outseta.com" in
          your admin URL.
security: []
paths:
  /api/v1/crm/accounts:
    post:
      tags:
        - CRM
      summary: Add a new account.
      description: >-
        To add an account with an existing person, the Account payload include
        something like this:

        { ... other Account properties ..., "PersonAccount": [ { "Person": {
        "Uid": [personUid] }, "IsPrimary": "true" } ] }
      operationId: Account_AddAccount
      parameters:
        - name: isImported
          in: query
          schema:
            type: boolean
            default: false
          x-position: 2
      requestBody:
        x-name: account
        content:
          application/json:
            schema:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Account'
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
                example: string
        '401':
          description: Unauthorized
      security:
        - Bearer: []
        - ApiKey: []
components:
  schemas:
    Account:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        SchemaLessData: {}
        StripeId: string
        IsLivemode: false
        Name: string
        ClientIdentifier: string
        Currency: string
        InvoiceNotes: string
        IsDemo: false
        BillingAddress:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          AddressLine1: string
          AddressLine2: string
          AddressLine3: string
          City: string
          State: string
          PostalCode: string
          Country: string
          GeoLocation: string
        MailingAddress:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          AddressLine1: string
          AddressLine2: string
          AddressLine3: string
          City: string
          State: string
          PostalCode: string
          Country: string
          GeoLocation: string
        AccountStage: 2
        PaymentInformation:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          Account: {}
          CustomerToken: string
          LastFourDigits: string
          LatestFailureDateTime: string
          LatestFailureDescription: string
          LatestSuccessDateTime: string
          NumberOfFailures: 0
          PaymentClientSecret: string
          PaymentMethodType: string
          PaymentToken: string
          BankName: string
          BankAccountType: string
          BankAccountHolderType: string
          NameOnCard: string
          CardType: string
          ExpirationMonth: string
          ExpirationYear: string
          Mode: string
          OneTimeToken: string
          RecaptchaToken: string
          SetupIntent: string
        PersonAccount:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            Person: {}
            Account: {}
            IsPrimary: false
            ReceiveInvoices: false
            Role: 1
        StripeDefaultPaymentMethodId: string
        StripeInvoices:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            SchemaLessData: {}
            StripeId: string
            IsLivemode: false
            AmountDue: 0
            AmountPaid: 0
            AmountShipping: 0
            AttemptCount: 0
            Attempted: false
            Currency: string
            Description: string
            FinalizedAt: string
            HostedInvoiceUrl: string
            InvoicePdf: string
            NextPaymentAttempt: string
            Number: string
            PeriodEnd: string
            PeriodStart: string
            Status: string
            StripeDiscounts: []
            StripeInvoiceDiscountAmounts: []
            StripeInvoiceLineItems: []
            StripeInvoicePayments: []
            SubTotal: 0
            SubTotalExcludingTax: 0
            SubscriptionId: string
            Tax: 0
            Total: 0
            TotalExcludingTax: 0
            Account: {}
            IsRefunded: false
            CurrencyAmountCreditedPostPayment: 0
            CurrencyAmountCreditedPrePayment: 0
            CurrencyAmountDue: 0
            CurrencyAmountPaid: 0
            CurrencySymbol: string
            CurrencyTotal: 0
            CurrencyTotalExcludingTax: 0
            CurrencySubTotal: 0
            CurrencySubTotalExcludingTax: 0
            CurrencyTax: 0
            DaysUntilDue: 0
            CustomerId: string
            PaymentStatus: string
            StripeCreditNotes: []
            StripePaymentMethodId: string
        StripePaymentMethods:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            SchemaLessData: {}
            StripeId: string
            IsLivemode: false
            Account: {}
            Card_Brand: string
            Card_ExpMonth: 0
            Card_ExpYear: 0
            Card_Wallet_Type: string
            BankName: string
            Last4: string
            Type: string
            Label: string
        StripeSubscriptions:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            SchemaLessData: {}
            StripeId: string
            IsLivemode: false
            CancelAt: string
            CancelAtPeriodEnd: false
            StripeSubscriptionCancellation: {}
            Currency: string
            EndedAt: string
            PauseCollection_Behavior: string
            PauseCollection_ResumesAt: string
            StartDate: string
            Status: string
            TrialEnd: string
            StripeDiscounts: []
            StripeSubscriptionItems: []
            StripeSubscriptionSchedules: []
            Account: {}
            AccountUid: string
            BillingCycleAnchor: string
            CollectionMethod: string
            CustomerId: string
            DaysUntilDue: 0
            ScheduleId: string
            StripeDiscountIds: []
            StripePriceIds: string
            TrialPeriodDays: 0
            CurrentStripeSubscriptionSchedule: {}
        Subscriptions:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            BillingRenewalTerm: 1
            Account: {}
            Plan: {}
            Quantity: 0
            StartDate: string
            EndDate: string
            ExpirationDate: string
            RenewalDate: string
            NewRequiredQuantity: 0
            IsPlanUpgradeRequired: false
            PlanUpgradeRequiredMessage: string
            SubscriptionAddOns: []
            DiscountCouponSubscriptions: []
            DiscountCode: string
            DiscountCouponExpirationDate: string
            LatestInvoice: {}
            Rate: 0
        Deals:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            SchemaLessData: {}
            Name: string
            Amount: 0
            DueDate: string
            AssignedToPersonClientIdentifier: string
            Weight: 0
            DealPipelineStage: {}
            Account: {}
            DealPeople: []
            Contacts: string
            AccountId: 0
            Owner: {}
            PipelineUid: string
        LastLoginDateTime: string
        AccountSpecificPageUrl1: string
        AccountSpecificPageUrl2: string
        AccountSpecificPageUrl3: string
        AccountSpecificPageUrl4: string
        AccountSpecificPageUrl5: string
        AccountSpecificPageUrl6: string
        AccountSpecificPageUrl7: string
        AccountSpecificPageUrl8: string
        AccountSpecificPageUrl9: string
        AccountSpecificPageUrl10: string
        RewardFulReferralId: string
        ToltReferralId: string
        TaxIds:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            SchemaLessData: {}
            StripeId: string
            IsLivemode: false
            Account: {}
            TaxId: string
            TaxIdType: string
            IsInvalid: false
        TaxStatus: string
        AccountStageLabel: string
        CurrentStripeProducts: string
        CurrentSubscription:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          BillingRenewalTerm: 1
          Account: {}
          Plan: {}
          Quantity: 0
          StartDate: string
          EndDate: string
          ExpirationDate: string
          RenewalDate: string
          NewRequiredQuantity: 0
          IsPlanUpgradeRequired: false
          PlanUpgradeRequiredMessage: string
          SubscriptionAddOns: []
          DiscountCouponSubscriptions: []
          DiscountCode: string
          DiscountCouponExpirationDate: string
          LatestInvoice: {}
          Rate: 0
        DomainName: string
        HasLoggedIn: false
        LatestSubscription:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          BillingRenewalTerm: 1
          Account: {}
          Plan: {}
          Quantity: 0
          StartDate: string
          EndDate: string
          ExpirationDate: string
          RenewalDate: string
          NewRequiredQuantity: 0
          IsPlanUpgradeRequired: false
          PlanUpgradeRequiredMessage: string
          SubscriptionAddOns: []
          DiscountCouponSubscriptions: []
          DiscountCode: string
          DiscountCouponExpirationDate: string
          LatestInvoice: {}
          Rate: 0
        LifetimeRevenue: 0
        NextStripeInvoiceDate: string
        Nonce: string
        PrimaryContact:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          Email: string
          FirstName: string
          LastName: string
          MailingAddress: {}
          PasswordLastUpdated: string
          PasswordMustChange: false
          PhoneMobile: string
          PhoneWork: string
          ProfileImageS3Url: string
          Title: string
          Timezone: string
          Language: string
          IPAddress: string
          Referer: string
          UserAgent: string
          LastLoginDateTime: string
          OAuthGoogleProfileId: string
          PersonAccount: []
          DealPeople: []
          LeadFormSubmissions: []
          Account: {}
          AccountUids: string
          EmailListPerson: []
          FullName: string
          HasLoggedIn: false
          OAuthIntegrationStatus: 0
          OptInToEmailList: false
          Password: string
          UserAgentPlatformBrowser: string
          HasUnsubscribed: false
          DiscordUser: {}
          IsConnectedToDiscord: false
        PrimarySubscription:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          BillingRenewalTerm: 1
          Account: {}
          Plan: {}
          Quantity: 0
          StartDate: string
          EndDate: string
          ExpirationDate: string
          RenewalDate: string
          NewRequiredQuantity: 0
          IsPlanUpgradeRequired: false
          PlanUpgradeRequiredMessage: string
          SubscriptionAddOns: []
          DiscountCouponSubscriptions: []
          DiscountCode: string
          DiscountCouponExpirationDate: string
          LatestInvoice: {}
          Rate: 0
        PrimaryStripeSubscription:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          StripeId: string
          IsLivemode: false
          CancelAt: string
          CancelAtPeriodEnd: false
          StripeSubscriptionCancellation: {}
          Currency: string
          EndedAt: string
          PauseCollection_Behavior: string
          PauseCollection_ResumesAt: string
          StartDate: string
          Status: string
          TrialEnd: string
          StripeDiscounts: []
          StripeSubscriptionItems: []
          StripeSubscriptionSchedules: []
          Account: {}
          AccountUid: string
          BillingCycleAnchor: string
          CollectionMethod: string
          CustomerId: string
          DaysUntilDue: 0
          ScheduleId: string
          StripeDiscountIds: []
          StripePriceIds: string
          TrialPeriodDays: 0
          CurrentStripeSubscriptionSchedule: {}
        RecaptchaToken: string
        StripeNextInvoiceSequence: 0
        StripePrice:
          - string
        StripePromotionCode: string
        TaxId: string
        TaxIdIsInvalid: false
        TaxIdType: string
        WebflowSlug: string
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfCustomer'
        - type: object
          additionalProperties:
            nullable: true
          required:
            - Name
          properties:
            Name:
              type: string
              maxLength: 250
              minLength: 1
            ClientIdentifier:
              type: string
              maxLength: 250
              nullable: true
            Currency:
              type: string
              maxLength: 3
              nullable: true
            InvoiceNotes:
              type: string
              nullable: true
            IsDemo:
              type: boolean
            BillingAddress:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Address'
            MailingAddress:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Address'
            AccountStage:
              $ref: '#/components/schemas/AccountStage'
            PaymentInformation:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/PaymentInformation'
            PersonAccount:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/PersonAccount'
            StripeDefaultPaymentMethodId:
              type: string
              maxLength: 50
              nullable: true
            StripeInvoices:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeInvoice'
            StripePaymentMethods:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripePaymentMethod'
            StripeSubscriptions:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeSubscription'
            Subscriptions:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/Subscription'
            Deals:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/Deal'
            LastLoginDateTime:
              type: string
              format: date-time
              nullable: true
            AccountSpecificPageUrl1:
              type: string
              maxLength: 255
              nullable: true
            AccountSpecificPageUrl2:
              type: string
              maxLength: 255
              nullable: true
            AccountSpecificPageUrl3:
              type: string
              maxLength: 255
              nullable: true
            AccountSpecificPageUrl4:
              type: string
              maxLength: 255
              nullable: true
            AccountSpecificPageUrl5:
              type: string
              maxLength: 255
              nullable: true
            AccountSpecificPageUrl6:
              type: string
              maxLength: 255
              nullable: true
            AccountSpecificPageUrl7:
              type: string
              maxLength: 255
              nullable: true
            AccountSpecificPageUrl8:
              type: string
              maxLength: 255
              nullable: true
            AccountSpecificPageUrl9:
              type: string
              maxLength: 255
              nullable: true
            AccountSpecificPageUrl10:
              type: string
              maxLength: 255
              nullable: true
            RewardFulReferralId:
              type: string
              nullable: true
            ToltReferralId:
              type: string
              maxLength: 36
              nullable: true
            TaxIds:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/AccountTaxId'
            TaxStatus:
              type: string
              maxLength: 20
              nullable: true
            AccountStageLabel:
              type: string
              nullable: true
            CurrentStripeProducts:
              type: string
              nullable: true
            CurrentSubscription:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Subscription'
            DomainName:
              type: string
              nullable: true
            HasLoggedIn:
              type: boolean
            LatestSubscription:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Subscription'
            LifetimeRevenue:
              type: number
              format: decimal
            NextStripeInvoiceDate:
              type: string
              format: date-time
              nullable: true
            Nonce:
              type: string
              nullable: true
            PrimaryContact:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Person'
            PrimarySubscription:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Subscription'
            PrimaryStripeSubscription:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripeSubscription'
            RecaptchaToken:
              type: string
              nullable: true
            StripeNextInvoiceSequence:
              type: integer
              format: int64
              nullable: true
            StripePrice:
              type: array
              nullable: true
              items:
                type: string
            StripePromotionCode:
              type: string
              nullable: true
            TaxId:
              type: string
              nullable: true
            TaxIdIsInvalid:
              type: boolean
            TaxIdType:
              type: string
              nullable: true
            WebflowSlug:
              type: string
              nullable: true
    AbstractStripeBeanOfCustomer:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    Address:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            AddressLine1:
              type: string
              maxLength: 250
              nullable: true
            AddressLine2:
              type: string
              maxLength: 250
              nullable: true
            AddressLine3:
              type: string
              maxLength: 250
              nullable: true
            City:
              type: string
              maxLength: 250
              nullable: true
            State:
              type: string
              maxLength: 250
              nullable: true
            PostalCode:
              type: string
              maxLength: 250
              nullable: true
            Country:
              type: string
              maxLength: 250
              nullable: true
            GeoLocation:
              type: string
              maxLength: 250
              nullable: true
    AccountStage:
      type: integer
      description: >-
        `2` - Trialing, `3` - Subscribing, `4` - Cancelling, `5` - Expired, `6`
        - Trial Expired, `7` - Past Due, `8` - Cancelling Trial, `9` - Paused,
        `10` - Created
      x-enumNames:
        - Trialing
        - Subscribing
        - Cancelling
        - Expired
        - TrialExpired
        - PastDue
        - CancellingTrial
        - Paused
        - Created
      x-enum-descriptions:
        - ''
        - ''
        - ''
        - ''
        - Trial Expired
        - Past Due
        - Cancelling Trial
        - ''
        - ''
      enum:
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
    PaymentInformation:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        Account:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          StripeId: string
          IsLivemode: false
          Name: string
          ClientIdentifier: string
          Currency: string
          InvoiceNotes: string
          IsDemo: false
          BillingAddress: {}
          MailingAddress: {}
          AccountStage: 2
          PaymentInformation: {}
          PersonAccount: []
          StripeDefaultPaymentMethodId: string
          StripeInvoices: []
          StripePaymentMethods: []
          StripeSubscriptions: []
          Subscriptions: []
          Deals: []
          LastLoginDateTime: string
          AccountSpecificPageUrl1: string
          AccountSpecificPageUrl2: string
          AccountSpecificPageUrl3: string
          AccountSpecificPageUrl4: string
          AccountSpecificPageUrl5: string
          AccountSpecificPageUrl6: string
          AccountSpecificPageUrl7: string
          AccountSpecificPageUrl8: string
          AccountSpecificPageUrl9: string
          AccountSpecificPageUrl10: string
          RewardFulReferralId: string
          ToltReferralId: string
          TaxIds: []
          TaxStatus: string
          AccountStageLabel: string
          CurrentStripeProducts: string
          CurrentSubscription: {}
          DomainName: string
          HasLoggedIn: false
          LatestSubscription: {}
          LifetimeRevenue: 0
          NextStripeInvoiceDate: string
          Nonce: string
          PrimaryContact: {}
          PrimarySubscription: {}
          PrimaryStripeSubscription: {}
          RecaptchaToken: string
          StripeNextInvoiceSequence: 0
          StripePrice: []
          StripePromotionCode: string
          TaxId: string
          TaxIdIsInvalid: false
          TaxIdType: string
          WebflowSlug: string
        CustomerToken: string
        LastFourDigits: string
        LatestFailureDateTime: string
        LatestFailureDescription: string
        LatestSuccessDateTime: string
        NumberOfFailures: 0
        PaymentClientSecret: string
        PaymentMethodType: string
        PaymentToken: string
        BankName: string
        BankAccountType: string
        BankAccountHolderType: string
        NameOnCard: string
        CardType: string
        ExpirationMonth: string
        ExpirationYear: string
        Mode: string
        OneTimeToken: string
        RecaptchaToken: string
        SetupIntent: string
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          required:
            - Account
            - NumberOfFailures
          properties:
            Account:
              type: object
              title: Account
              description: Circular reference to Account (not expanded here).
            CustomerToken:
              type: string
              maxLength: 250
              nullable: true
            LastFourDigits:
              type: string
              nullable: true
            LatestFailureDateTime:
              type: string
              format: date-time
              nullable: true
            LatestFailureDescription:
              type: string
              nullable: true
            LatestSuccessDateTime:
              type: string
              format: date-time
              nullable: true
            NumberOfFailures:
              type: integer
              format: int32
            PaymentClientSecret:
              type: string
              nullable: true
            PaymentMethodType:
              type: string
              maxLength: 50
              nullable: true
            PaymentToken:
              type: string
              maxLength: 250
              nullable: true
            BankName:
              type: string
              maxLength: 100
              nullable: true
            BankAccountType:
              type: string
              maxLength: 50
              nullable: true
            BankAccountHolderType:
              type: string
              maxLength: 50
              nullable: true
            NameOnCard:
              type: string
              nullable: true
            CardType:
              type: string
              nullable: true
            ExpirationMonth:
              type: string
              nullable: true
            ExpirationYear:
              type: string
              nullable: true
            Mode:
              type: string
              nullable: true
            OneTimeToken:
              type: string
              nullable: true
            RecaptchaToken:
              type: string
              nullable: true
            SetupIntent:
              type: string
              nullable: true
    PersonAccount:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        Person:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          Email: string
          FirstName: string
          LastName: string
          MailingAddress: {}
          PasswordLastUpdated: string
          PasswordMustChange: false
          PhoneMobile: string
          PhoneWork: string
          ProfileImageS3Url: string
          Title: string
          Timezone: string
          Language: string
          IPAddress: string
          Referer: string
          UserAgent: string
          LastLoginDateTime: string
          OAuthGoogleProfileId: string
          PersonAccount: []
          DealPeople: []
          LeadFormSubmissions: []
          Account: {}
          AccountUids: string
          EmailListPerson: []
          FullName: string
          HasLoggedIn: false
          OAuthIntegrationStatus: 0
          OptInToEmailList: false
          Password: string
          UserAgentPlatformBrowser: string
          HasUnsubscribed: false
          DiscordUser: {}
          IsConnectedToDiscord: false
        Account:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          StripeId: string
          IsLivemode: false
          Name: string
          ClientIdentifier: string
          Currency: string
          InvoiceNotes: string
          IsDemo: false
          BillingAddress: {}
          MailingAddress: {}
          AccountStage: 2
          PaymentInformation: {}
          PersonAccount: []
          StripeDefaultPaymentMethodId: string
          StripeInvoices: []
          StripePaymentMethods: []
          StripeSubscriptions: []
          Subscriptions: []
          Deals: []
          LastLoginDateTime: string
          AccountSpecificPageUrl1: string
          AccountSpecificPageUrl2: string
          AccountSpecificPageUrl3: string
          AccountSpecificPageUrl4: string
          AccountSpecificPageUrl5: string
          AccountSpecificPageUrl6: string
          AccountSpecificPageUrl7: string
          AccountSpecificPageUrl8: string
          AccountSpecificPageUrl9: string
          AccountSpecificPageUrl10: string
          RewardFulReferralId: string
          ToltReferralId: string
          TaxIds: []
          TaxStatus: string
          AccountStageLabel: string
          CurrentStripeProducts: string
          CurrentSubscription: {}
          DomainName: string
          HasLoggedIn: false
          LatestSubscription: {}
          LifetimeRevenue: 0
          NextStripeInvoiceDate: string
          Nonce: string
          PrimaryContact: {}
          PrimarySubscription: {}
          PrimaryStripeSubscription: {}
          RecaptchaToken: string
          StripeNextInvoiceSequence: 0
          StripePrice: []
          StripePromotionCode: string
          TaxId: string
          TaxIdIsInvalid: false
          TaxIdType: string
          WebflowSlug: string
        IsPrimary: false
        ReceiveInvoices: false
        Role: 1
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            Person:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Person'
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            IsPrimary:
              type: boolean
            ReceiveInvoices:
              type: boolean
            Role:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/TeamRole'
    StripeInvoice:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfInvoice'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            AmountDue:
              type: integer
              format: int64
            AmountPaid:
              type: integer
              format: int64
            AmountShipping:
              type: integer
              format: int64
            AttemptCount:
              type: integer
              format: int64
            Attempted:
              type: boolean
            Currency:
              type: string
              maxLength: 3
              nullable: true
            Description:
              type: string
              nullable: true
            FinalizedAt:
              type: string
              format: date-time
              nullable: true
            HostedInvoiceUrl:
              type: string
              maxLength: 500
              nullable: true
            InvoicePdf:
              type: string
              maxLength: 500
              nullable: true
            NextPaymentAttempt:
              type: string
              format: date-time
              nullable: true
            Number:
              type: string
              maxLength: 50
              nullable: true
            PeriodEnd:
              type: string
              format: date-time
            PeriodStart:
              type: string
              format: date-time
            Status:
              type: string
              maxLength: 30
              nullable: true
            StripeDiscounts:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeDiscount'
            StripeInvoiceDiscountAmounts:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeInvoiceDiscountAmount'
            StripeInvoiceLineItems:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeInvoiceLineItem'
            StripeInvoicePayments:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeInvoicePayment'
            SubTotal:
              type: integer
              format: int64
            SubTotalExcludingTax:
              type: integer
              format: int64
              nullable: true
            SubscriptionId:
              type: string
              maxLength: 255
              nullable: true
            Tax:
              type: integer
              format: int64
              nullable: true
            Total:
              type: integer
              format: int64
            TotalExcludingTax:
              type: integer
              format: int64
              nullable: true
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            IsRefunded:
              type: boolean
            CurrencyAmountCreditedPostPayment:
              type: number
              format: decimal
            CurrencyAmountCreditedPrePayment:
              type: number
              format: decimal
            CurrencyAmountDue:
              type: number
              format: decimal
            CurrencyAmountPaid:
              type: number
              format: decimal
            CurrencySymbol:
              type: string
              nullable: true
            CurrencyTotal:
              type: number
              format: decimal
            CurrencyTotalExcludingTax:
              type: number
              format: decimal
            CurrencySubTotal:
              type: number
              format: decimal
            CurrencySubTotalExcludingTax:
              type: number
              format: decimal
            CurrencyTax:
              type: number
              format: decimal
            DaysUntilDue:
              type: integer
              format: int64
              nullable: true
            CustomerId:
              type: string
              nullable: true
            PaymentStatus:
              type: string
              nullable: true
            StripeCreditNotes:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeCreditNote'
            StripePaymentMethodId:
              type: string
              nullable: true
    StripePaymentMethod:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfPaymentMethod'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            Card_Brand:
              type: string
              nullable: true
            Card_ExpMonth:
              type: integer
              format: int64
              nullable: true
            Card_ExpYear:
              type: integer
              format: int64
              nullable: true
            Card_Wallet_Type:
              type: string
              nullable: true
            BankName:
              type: string
              nullable: true
            Last4:
              type: string
              nullable: true
            Type:
              type: string
              nullable: true
            Label:
              type: string
              nullable: true
    StripeSubscription:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfSubscription'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            CancelAt:
              type: string
              format: date-time
              nullable: true
            CancelAtPeriodEnd:
              type: boolean
            StripeSubscriptionCancellation:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripeSubscriptionCancellation'
            Currency:
              type: string
              maxLength: 3
              nullable: true
            EndedAt:
              type: string
              format: date-time
              nullable: true
            PauseCollection_Behavior:
              type: string
              maxLength: 30
              nullable: true
            PauseCollection_ResumesAt:
              type: string
              format: date-time
              nullable: true
            StartDate:
              type: string
              format: date-time
            Status:
              type: string
              maxLength: 30
              nullable: true
            TrialEnd:
              type: string
              format: date-time
              nullable: true
            StripeDiscounts:
              type: array
              nullable: true
              items:
                type: object
                title: StripeDiscount
                description: Circular reference to StripeDiscount (not expanded here).
            StripeSubscriptionItems:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeSubscriptionItem'
            StripeSubscriptionSchedules:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeSubscriptionSchedule'
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            AccountUid:
              type: string
              nullable: true
            BillingCycleAnchor:
              type: string
              format: date-time
              nullable: true
            CollectionMethod:
              type: string
              nullable: true
            CustomerId:
              type: string
              nullable: true
            DaysUntilDue:
              type: integer
              format: int64
              nullable: true
            ScheduleId:
              type: string
              nullable: true
            StripeDiscountIds:
              type: array
              nullable: true
              items:
                type: string
            StripePriceIds:
              type: string
              nullable: true
            TrialPeriodDays:
              type: integer
              format: int32
            CurrentStripeSubscriptionSchedule:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripeSubscriptionSchedule'
    Subscription:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        BillingRenewalTerm: 1
        Account:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          StripeId: string
          IsLivemode: false
          Name: string
          ClientIdentifier: string
          Currency: string
          InvoiceNotes: string
          IsDemo: false
          BillingAddress: {}
          MailingAddress: {}
          AccountStage: 2
          PaymentInformation: {}
          PersonAccount: []
          StripeDefaultPaymentMethodId: string
          StripeInvoices: []
          StripePaymentMethods: []
          StripeSubscriptions: []
          Subscriptions: []
          Deals: []
          LastLoginDateTime: string
          AccountSpecificPageUrl1: string
          AccountSpecificPageUrl2: string
          AccountSpecificPageUrl3: string
          AccountSpecificPageUrl4: string
          AccountSpecificPageUrl5: string
          AccountSpecificPageUrl6: string
          AccountSpecificPageUrl7: string
          AccountSpecificPageUrl8: string
          AccountSpecificPageUrl9: string
          AccountSpecificPageUrl10: string
          RewardFulReferralId: string
          ToltReferralId: string
          TaxIds: []
          TaxStatus: string
          AccountStageLabel: string
          CurrentStripeProducts: string
          CurrentSubscription: {}
          DomainName: string
          HasLoggedIn: false
          LatestSubscription: {}
          LifetimeRevenue: 0
          NextStripeInvoiceDate: string
          Nonce: string
          PrimaryContact: {}
          PrimarySubscription: {}
          PrimaryStripeSubscription: {}
          RecaptchaToken: string
          StripeNextInvoiceSequence: 0
          StripePrice: []
          StripePromotionCode: string
          TaxId: string
          TaxIdIsInvalid: false
          TaxIdType: string
          WebflowSlug: string
        Plan:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          Name: string
          Description: string
          PlanFamily: {}
          AccountRegistrationMode: 1
          IsQuantityEditable: false
          MinimumQuantity: 0
          MaximumPeople: 0
          MonthlyRate: 0
          AnnualRate: 0
          QuarterlyRate: 0
          OneTimeRate: 0
          SetupFee: 0
          SkipSetupFeeOnPlanChange: false
          IsTaxable: false
          IsActive: false
          IsPerUser: false
          RequirePaymentInformation: false
          TrialPeriodDays: 0
          TrialUntilDate: string
          ExpiresAfterMonths: 0
          ExpirationDate: string
          PostLoginPath: string
          StripeTaxCodeId: string
          UnitOfMeasure: string
          PlanAddOns: []
          ContentGroups: []
          NumberOfSubscriptions: 0
        Quantity: 0
        StartDate: string
        EndDate: string
        ExpirationDate: string
        RenewalDate: string
        NewRequiredQuantity: 0
        IsPlanUpgradeRequired: false
        PlanUpgradeRequiredMessage: string
        SubscriptionAddOns:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            BillingRenewalTerm: 1
            Subscription: {}
            AddOn: {}
            Quantity: 0
            StartDate: string
            EndDate: string
            ExpirationDate: string
            RenewalDate: string
            NewRequiredQuantity: 0
            Rate: 0
        DiscountCouponSubscriptions:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            RedeemedDate: string
            ExpireDate: string
            Subscription: {}
            DiscountCoupon: {}
        DiscountCode: string
        DiscountCouponExpirationDate: string
        LatestInvoice:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          InvoiceDate: string
          PaymentReminderSentDate: string
          Number: 0
          BillingInvoiceStatus: 1
          Subscription: {}
          Amount: 0
          AmountOutstanding: 0
          InvoiceLineItems: []
          IsUserGenerated: false
          StripeTaxCalculationId: string
          StripeTaxBehavior: string
          AmountCredit: 0
          AmountDiscount: 0
          AmountPaid: 0
          AmountRefunded: 0
          AmountSubtotal: 0
          AmountTax: 0
          AmountTaxRefunded: 0
          IsTaxable: false
          HasPaymentGatewayTransactions: false
          StripePaymentTransactionIds: string
          StripeRefundTransactionIds: string
          StripeTaxRefundTransactionIds: string
        Rate: 0
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            BillingRenewalTerm:
              maximum: 4
              minimum: 1
              oneOf:
                - $ref: '#/components/schemas/BillingRenewalTerm'
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            Plan:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Plan'
            Quantity:
              type: integer
              format: int32
              nullable: true
            StartDate:
              type: string
              format: date-time
            EndDate:
              type: string
              format: date-time
              nullable: true
            ExpirationDate:
              type: string
              format: date-time
              nullable: true
            RenewalDate:
              type: string
              format: date-time
              nullable: true
            NewRequiredQuantity:
              type: integer
              format: int32
              nullable: true
            IsPlanUpgradeRequired:
              type: boolean
            PlanUpgradeRequiredMessage:
              type: string
              nullable: true
            SubscriptionAddOns:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/SubscriptionAddOn'
            DiscountCouponSubscriptions:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/DiscountCouponSubscription'
            DiscountCode:
              type: string
              nullable: true
            DiscountCouponExpirationDate:
              type: string
              format: date-time
              nullable: true
            LatestInvoice:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Invoice'
            Rate:
              type: number
              format: decimal
              nullable: true
    Deal:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        SchemaLessData: {}
        Name: string
        Amount: 0
        DueDate: string
        AssignedToPersonClientIdentifier: string
        Weight: 0
        DealPipelineStage:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          Weight: 0
          Name: string
          DealPipeline: {}
          Deals: []
        Account:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          StripeId: string
          IsLivemode: false
          Name: string
          ClientIdentifier: string
          Currency: string
          InvoiceNotes: string
          IsDemo: false
          BillingAddress: {}
          MailingAddress: {}
          AccountStage: 2
          PaymentInformation: {}
          PersonAccount: []
          StripeDefaultPaymentMethodId: string
          StripeInvoices: []
          StripePaymentMethods: []
          StripeSubscriptions: []
          Subscriptions: []
          Deals: []
          LastLoginDateTime: string
          AccountSpecificPageUrl1: string
          AccountSpecificPageUrl2: string
          AccountSpecificPageUrl3: string
          AccountSpecificPageUrl4: string
          AccountSpecificPageUrl5: string
          AccountSpecificPageUrl6: string
          AccountSpecificPageUrl7: string
          AccountSpecificPageUrl8: string
          AccountSpecificPageUrl9: string
          AccountSpecificPageUrl10: string
          RewardFulReferralId: string
          ToltReferralId: string
          TaxIds: []
          TaxStatus: string
          AccountStageLabel: string
          CurrentStripeProducts: string
          CurrentSubscription: {}
          DomainName: string
          HasLoggedIn: false
          LatestSubscription: {}
          LifetimeRevenue: 0
          NextStripeInvoiceDate: string
          Nonce: string
          PrimaryContact: {}
          PrimarySubscription: {}
          PrimaryStripeSubscription: {}
          RecaptchaToken: string
          StripeNextInvoiceSequence: 0
          StripePrice: []
          StripePromotionCode: string
          TaxId: string
          TaxIdIsInvalid: false
          TaxIdType: string
          WebflowSlug: string
        DealPeople:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            Person: {}
            Deal: {}
        Contacts: string
        AccountId: 0
        Owner:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          Email: string
          FirstName: string
          LastName: string
          MailingAddress: {}
          PasswordLastUpdated: string
          PasswordMustChange: false
          PhoneMobile: string
          PhoneWork: string
          ProfileImageS3Url: string
          Title: string
          Timezone: string
          Language: string
          IPAddress: string
          Referer: string
          UserAgent: string
          LastLoginDateTime: string
          OAuthGoogleProfileId: string
          PersonAccount: []
          DealPeople: []
          LeadFormSubmissions: []
          Account: {}
          AccountUids: string
          EmailListPerson: []
          FullName: string
          HasLoggedIn: false
          OAuthIntegrationStatus: 0
          OptInToEmailList: false
          Password: string
          UserAgentPlatformBrowser: string
          HasUnsubscribed: false
          DiscordUser: {}
          IsConnectedToDiscord: false
        PipelineUid: string
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          required:
            - Name
          properties:
            Name:
              type: string
              maxLength: 250
              minLength: 1
            Amount:
              type: number
              format: decimal
              nullable: true
            DueDate:
              type: string
              format: date-time
              nullable: true
            AssignedToPersonClientIdentifier:
              type: string
              maxLength: 50
              nullable: true
            Weight:
              type: integer
              format: int32
            DealPipelineStage:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/DealPipelineStage'
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            DealPeople:
              type: array
              nullable: true
              items:
                type: object
                title: DealPerson
                description: Circular reference to DealPerson (not expanded here).
            Contacts:
              type: string
              nullable: true
            AccountId:
              type: integer
              format: int64
            Owner:
              nullable: true
              oneOf:
                - type: object
                  title: Person
                  description: Circular reference to Person (not expanded here).
            PipelineUid:
              type: string
              nullable: true
    AccountTaxId:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfTaxId'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            TaxId:
              type: string
              maxLength: 50
              nullable: true
            TaxIdType:
              type: string
              maxLength: 20
              nullable: true
            IsInvalid:
              type: boolean
    Person:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        SchemaLessData: {}
        Email: string
        FirstName: string
        LastName: string
        MailingAddress:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          AddressLine1: string
          AddressLine2: string
          AddressLine3: string
          City: string
          State: string
          PostalCode: string
          Country: string
          GeoLocation: string
        PasswordLastUpdated: string
        PasswordMustChange: false
        PhoneMobile: string
        PhoneWork: string
        ProfileImageS3Url: string
        Title: string
        Timezone: string
        Language: string
        IPAddress: string
        Referer: string
        UserAgent: string
        LastLoginDateTime: string
        OAuthGoogleProfileId: string
        PersonAccount:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            Person: {}
            Account: {}
            IsPrimary: false
            ReceiveInvoices: false
            Role: 1
        DealPeople:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            Person: {}
            Deal: {}
        LeadFormSubmissions:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            Person: {}
            LeadForm: {}
            RefererURL: string
            RecaptchaToken: string
            RecaptchaSiteKey: string
        Account:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          StripeId: string
          IsLivemode: false
          Name: string
          ClientIdentifier: string
          Currency: string
          InvoiceNotes: string
          IsDemo: false
          BillingAddress: {}
          MailingAddress: {}
          AccountStage: 2
          PaymentInformation: {}
          PersonAccount: []
          StripeDefaultPaymentMethodId: string
          StripeInvoices: []
          StripePaymentMethods: []
          StripeSubscriptions: []
          Subscriptions: []
          Deals: []
          LastLoginDateTime: string
          AccountSpecificPageUrl1: string
          AccountSpecificPageUrl2: string
          AccountSpecificPageUrl3: string
          AccountSpecificPageUrl4: string
          AccountSpecificPageUrl5: string
          AccountSpecificPageUrl6: string
          AccountSpecificPageUrl7: string
          AccountSpecificPageUrl8: string
          AccountSpecificPageUrl9: string
          AccountSpecificPageUrl10: string
          RewardFulReferralId: string
          ToltReferralId: string
          TaxIds: []
          TaxStatus: string
          AccountStageLabel: string
          CurrentStripeProducts: string
          CurrentSubscription: {}
          DomainName: string
          HasLoggedIn: false
          LatestSubscription: {}
          LifetimeRevenue: 0
          NextStripeInvoiceDate: string
          Nonce: string
          PrimaryContact: {}
          PrimarySubscription: {}
          PrimaryStripeSubscription: {}
          RecaptchaToken: string
          StripeNextInvoiceSequence: 0
          StripePrice: []
          StripePromotionCode: string
          TaxId: string
          TaxIdIsInvalid: false
          TaxIdType: string
          WebflowSlug: string
        AccountUids: string
        EmailListPerson:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            EmailList: {}
            Person: {}
            EmailListSubscriberStatus: 1
            SubscribedDate: string
            ConfirmedDate: string
            ConfirmationNotes: string
            UnsubscribedDate: string
            CleanedDate: string
            WelcomeEmailDeliverDateTime: string
            WelcomeEmailOpenDateTime: string
            UnsubscribeReason: string
            UnsubscribeReasonOther: string
            RecaptchaToken: string
            RecaptchaSiteKey: string
            SendWelcomeEmail: false
            Source: string
        FullName: string
        HasLoggedIn: false
        OAuthIntegrationStatus: 0
        OptInToEmailList: false
        Password: string
        UserAgentPlatformBrowser: string
        HasUnsubscribed: false
        DiscordUser:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          DiscordUserId: string
          DiscordEmail: string
          DiscordUsername: string
          DiscordOAuthRefreshToken: string
        IsConnectedToDiscord: false
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Email:
              type: string
              format: email
              maxLength: 250
              nullable: true
            FirstName:
              type: string
              maxLength: 250
              nullable: true
            LastName:
              type: string
              maxLength: 250
              nullable: true
            MailingAddress:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Address'
            PasswordLastUpdated:
              type: string
              format: date-time
              nullable: true
            PasswordMustChange:
              type: boolean
            PhoneMobile:
              type: string
              maxLength: 250
              nullable: true
            PhoneWork:
              type: string
              maxLength: 250
              nullable: true
            ProfileImageS3Url:
              type: string
              maxLength: 250
              nullable: true
            Title:
              type: string
              maxLength: 250
              nullable: true
            Timezone:
              type: string
              maxLength: 100
              nullable: true
            Language:
              type: string
              maxLength: 50
              nullable: true
            IPAddress:
              type: string
              maxLength: 250
              nullable: true
            Referer:
              type: string
              maxLength: 250
              nullable: true
            UserAgent:
              type: string
              maxLength: 1000
              nullable: true
            LastLoginDateTime:
              type: string
              format: date-time
              nullable: true
            OAuthGoogleProfileId:
              type: string
              maxLength: 50
              nullable: true
            PersonAccount:
              type: array
              nullable: true
              items:
                type: object
                title: PersonAccount
                description: Circular reference to PersonAccount (not expanded here).
            DealPeople:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/DealPerson'
            LeadFormSubmissions:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/LeadFormSubmission'
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            AccountUids:
              type: string
              nullable: true
            EmailListPerson:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/EmailListPerson'
            FullName:
              type: string
              nullable: true
            HasLoggedIn:
              type: boolean
            OAuthIntegrationStatus:
              $ref: '#/components/schemas/OAuthService'
            OptInToEmailList:
              type: boolean
            Password:
              type: string
              nullable: true
            UserAgentPlatformBrowser:
              type: string
              nullable: true
            HasUnsubscribed:
              type: boolean
            DiscordUser:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/DiscordUser'
            IsConnectedToDiscord:
              type: boolean
    AbstractSchemaLessBean:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          x-abstract: true
          additionalProperties:
            nullable: true
          properties:
            SchemaLessData:
              type: object
              nullable: true
              additionalProperties: {}
    AbstractQcountBean:
      allOf:
        - $ref: '#/components/schemas/AbstractBean'
        - type: object
          additionalProperties: false
          required:
            - Qcount_Id
          properties:
            ActivityEventData:
              nullable: true
    TeamRole:
      type: integer
      description: '`1` - Admin, `2` - FullAccess, `3` - Operator'
      x-enumNames:
        - Admin
        - FullAccess
        - Operator
      x-enum-descriptions:
        - ''
        - ''
        - ''
      enum:
        - 1
        - 2
        - 3
    AbstractStripeBeanOfInvoice:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripeDiscount:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfDiscount'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            CheckoutSessionId:
              type: string
              maxLength: 255
              nullable: true
            End:
              type: string
              format: date-time
              nullable: true
            InvoiceId:
              type: string
              maxLength: 255
              nullable: true
            InvoiceItemId:
              type: string
              maxLength: 255
              nullable: true
            IsDeleted:
              type: boolean
            Start:
              type: string
              format: date-time
            StripeCoupon:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripeCoupon'
            StripePromotionCode:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripePromotionCode'
            SubscriptionId:
              type: string
              maxLength: 255
              nullable: true
            SubscriptionItemId:
              type: string
              maxLength: 255
              nullable: true
            CouponId:
              type: string
              nullable: true
            CustomerId:
              type: string
              nullable: true
            StripeInvoice:
              nullable: true
              oneOf:
                - type: object
                  title: StripeInvoice
                  description: Circular reference to StripeInvoice (not expanded here).
            StripeSubscription:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripeSubscription'
            PromotionCodeId:
              type: string
              nullable: true
    StripeInvoiceDiscountAmount:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            Amount:
              type: integer
              format: int64
            DiscountId:
              type: string
              maxLength: 36
              nullable: true
            StripeInvoice:
              nullable: true
              oneOf:
                - type: object
                  title: StripeInvoice
                  description: Circular reference to StripeInvoice (not expanded here).
            CurrencyAmount:
              type: number
              format: decimal
            StripeDiscount:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripeDiscount'
    StripeInvoiceLineItem:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfInvoiceLineItem'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeInvoice:
              nullable: true
              oneOf:
                - type: object
                  title: StripeInvoice
                  description: Circular reference to StripeInvoice (not expanded here).
            Amount:
              type: integer
              format: int64
            Currency:
              type: string
              maxLength: 3
              nullable: true
            PeriodStart:
              type: string
              format: date-time
            PeriodEnd:
              type: string
              format: date-time
            Quantity:
              type: integer
              format: int64
              nullable: true
            StripeDiscounts:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeDiscount'
            StripePrice:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripePrice'
            EndDate:
              type: string
              format: date-time
              nullable: true
            CurrencyAmount:
              type: number
              format: decimal
              nullable: true
            PriceId:
              type: string
              nullable: true
            Proration:
              type: boolean
    StripeInvoicePayment:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfInvoicePayment'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            AmountPaid:
              type: integer
              format: int64
              nullable: true
            AmountRequested:
              type: integer
              format: int64
            Currency:
              type: string
              maxLength: 3
              nullable: true
            Payment_ChargeId:
              type: string
              maxLength: 50
              nullable: true
            Payment_PaymentIntentId:
              type: string
              maxLength: 50
              nullable: true
            Payment_Type:
              type: string
              maxLength: 20
              nullable: true
            StripeInvoice:
              nullable: true
              oneOf:
                - type: object
                  title: StripeInvoice
                  description: Circular reference to StripeInvoice (not expanded here).
            Status:
              type: string
              nullable: true
            InvoiceId:
              type: string
              nullable: true
            StripeCharges:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeCharge'
    StripeCreditNote:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfCreditNote'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Currency:
              type: string
              maxLength: 3
              nullable: true
            CustomerId:
              type: string
              maxLength: 50
              nullable: true
            InvoiceId:
              type: string
              maxLength: 50
              nullable: true
            OutOfBandAmount:
              type: integer
              format: int64
              nullable: true
            PostPaymentAmount:
              type: integer
              format: int64
            PrePaymentAmount:
              type: integer
              format: int64
            Reason:
              type: string
              maxLength: 30
              nullable: true
            Status:
              type: string
              maxLength: 30
              nullable: true
            Total:
              type: integer
              format: int64
            Type:
              type: string
              maxLength: 30
              nullable: true
            CurrencySymbol:
              type: string
              nullable: true
            CurrencyTotal:
              type: number
              format: decimal
    AbstractStripeBeanOfPaymentMethod:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    AbstractStripeBeanOfSubscription:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripeSubscriptionCancellation:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            Comment:
              type: string
              maxLength: 1024
              nullable: true
            Feedback:
              type: string
              maxLength: 30
              nullable: true
            Reason:
              type: string
              maxLength: 30
              nullable: true
    StripeSubscriptionItem:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfSubscriptionItem'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            CurrentPeriodStart:
              type: string
              format: date-time
            CurrentPeriodEnd:
              type: string
              format: date-time
            StripeSubscription:
              nullable: true
              oneOf:
                - type: object
                  title: StripeSubscription
                  description: >-
                    Circular reference to StripeSubscription (not expanded
                    here).
            StripeDiscounts:
              type: array
              nullable: true
              items:
                type: object
                title: StripeDiscount
                description: Circular reference to StripeDiscount (not expanded here).
            StripePrice:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripePrice'
            Quantity:
              type: integer
              format: int64
            PriceId:
              type: string
              nullable: true
    StripeSubscriptionSchedule:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfSubscriptionSchedule'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            CompletedAt:
              type: string
              format: date-time
              nullable: true
            CurrentPhase_EndDate:
              type: string
              format: date-time
              nullable: true
            CurrentPhase_StartDate:
              type: string
              format: date-time
              nullable: true
            EndBehavior:
              type: string
              nullable: true
            StripeSubscriptionSchedulePhases:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeSubscriptionSchedulePhase'
            ReleasedAt:
              type: string
              format: date-time
              nullable: true
            Status:
              type: string
              nullable: true
            StripeSubscription:
              nullable: true
              oneOf:
                - type: object
                  title: StripeSubscription
                  description: >-
                    Circular reference to StripeSubscription (not expanded
                    here).
            SubscriptionId:
              type: string
              nullable: true
            ReleasedSubscriptionId:
              type: string
              nullable: true
    BillingRenewalTerm:
      type: integer
      description: '`1` - Monthly, `2` - Yearly, `3` - Quarterly, `4` - One Time'
      x-enumNames:
        - Monthly
        - Yearly
        - Quarterly
        - OneTime
      x-enum-descriptions:
        - ''
        - ''
        - ''
        - One Time
      enum:
        - 1
        - 2
        - 3
        - 4
    Plan:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        Name: string
        Description: string
        PlanFamily:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          Name: string
          IsActive: false
          IsDefault: false
          Plans: []
        AccountRegistrationMode: 1
        IsQuantityEditable: false
        MinimumQuantity: 0
        MaximumPeople: 0
        MonthlyRate: 0
        AnnualRate: 0
        QuarterlyRate: 0
        OneTimeRate: 0
        SetupFee: 0
        SkipSetupFeeOnPlanChange: false
        IsTaxable: false
        IsActive: false
        IsPerUser: false
        RequirePaymentInformation: false
        TrialPeriodDays: 0
        TrialUntilDate: string
        ExpiresAfterMonths: 0
        ExpirationDate: string
        PostLoginPath: string
        StripeTaxCodeId: string
        UnitOfMeasure: string
        PlanAddOns:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            Plan: {}
            AddOn: {}
            IsUserSelectable: false
        ContentGroups:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            Name: string
            AccessDeniedPath: string
            ContentGroupItems: []
            AllowedPlans: []
            AllowedProducts: []
            AllowedAddOns: []
        NumberOfSubscriptions: 0
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          required:
            - IsQuantityEditable
            - IsTaxable
          properties:
            Name:
              type: string
              maxLength: 250
              nullable: true
            Description:
              type: string
              nullable: true
            PlanFamily:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/PlanFamily'
            AccountRegistrationMode:
              $ref: '#/components/schemas/AccountRegistrationMode'
            IsQuantityEditable:
              type: boolean
            MinimumQuantity:
              type: integer
              format: int32
            MaximumPeople:
              type: integer
              format: int32
              nullable: true
            MonthlyRate:
              type: number
              format: decimal
            AnnualRate:
              type: number
              format: decimal
            QuarterlyRate:
              type: number
              format: decimal
            OneTimeRate:
              type: number
              format: decimal
            SetupFee:
              type: number
              format: decimal
            SkipSetupFeeOnPlanChange:
              type: boolean
            IsTaxable:
              type: boolean
            IsActive:
              type: boolean
            IsPerUser:
              type: boolean
            RequirePaymentInformation:
              type: boolean
            TrialPeriodDays:
              type: integer
              format: int32
            TrialUntilDate:
              type: string
              format: date-time
              nullable: true
            ExpiresAfterMonths:
              type: integer
              format: int32
            ExpirationDate:
              type: string
              format: date-time
              nullable: true
            PostLoginPath:
              type: string
              maxLength: 250
              nullable: true
            StripeTaxCodeId:
              type: string
              maxLength: 15
              nullable: true
            UnitOfMeasure:
              type: string
              maxLength: 250
              nullable: true
            PlanAddOns:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/PlanAddOn'
            ContentGroups:
              type: array
              nullable: true
              items:
                type: object
                title: ContentGroup
                description: Circular reference to ContentGroup (not expanded here).
            NumberOfSubscriptions:
              type: integer
              format: int32
              nullable: true
    SubscriptionAddOn:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        BillingRenewalTerm: 1
        Subscription:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          BillingRenewalTerm: 1
          Account: {}
          Plan: {}
          Quantity: 0
          StartDate: string
          EndDate: string
          ExpirationDate: string
          RenewalDate: string
          NewRequiredQuantity: 0
          IsPlanUpgradeRequired: false
          PlanUpgradeRequiredMessage: string
          SubscriptionAddOns: []
          DiscountCouponSubscriptions: []
          DiscountCode: string
          DiscountCouponExpirationDate: string
          LatestInvoice: {}
          Rate: 0
        AddOn:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          Name: string
          BillingAddOnType: 1
          IsQuantityEditable: false
          MinimumQuantity: 0
          MonthlyRate: 0
          AnnualRate: 0
          SetupFee: 0
          UnitOfMeasure: string
          IsTaxable: false
          IsBilledDuringTrial: false
          ExpiresAfterMonths: 0
          ExpirationDate: string
          StripeTaxCodeId: string
          PlanAddOns: []
          ContentGroups: []
          IsPerUser: false
          QuarterlyRate: 0
          OneTimeRate: 0
          SubscriptionCount: 0
          Quantity: 0
        Quantity: 0
        StartDate: string
        EndDate: string
        ExpirationDate: string
        RenewalDate: string
        NewRequiredQuantity: 0
        Rate: 0
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            BillingRenewalTerm:
              maximum: 4
              minimum: 1
              oneOf:
                - $ref: '#/components/schemas/BillingRenewalTerm'
            Subscription:
              nullable: true
              oneOf:
                - type: object
                  title: Subscription
                  description: Circular reference to Subscription (not expanded here).
            AddOn:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/AddOn'
            Quantity:
              type: integer
              format: int32
              nullable: true
            StartDate:
              type: string
              format: date-time
            EndDate:
              type: string
              format: date-time
              nullable: true
            ExpirationDate:
              type: string
              format: date-time
              nullable: true
            RenewalDate:
              type: string
              format: date-time
              nullable: true
            NewRequiredQuantity:
              type: integer
              format: int32
              nullable: true
            Rate:
              type: number
              format: decimal
              nullable: true
    DiscountCouponSubscription:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            RedeemedDate:
              type: string
              format: date-time
              nullable: true
            ExpireDate:
              type: string
              format: date-time
              nullable: true
            Subscription:
              nullable: true
              oneOf:
                - type: object
                  title: Subscription
                  description: Circular reference to Subscription (not expanded here).
            DiscountCoupon:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/DiscountCoupon'
    Invoice:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        InvoiceDate: string
        PaymentReminderSentDate: string
        Number: 0
        BillingInvoiceStatus: 1
        Subscription:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          BillingRenewalTerm: 1
          Account: {}
          Plan: {}
          Quantity: 0
          StartDate: string
          EndDate: string
          ExpirationDate: string
          RenewalDate: string
          NewRequiredQuantity: 0
          IsPlanUpgradeRequired: false
          PlanUpgradeRequiredMessage: string
          SubscriptionAddOns: []
          DiscountCouponSubscriptions: []
          DiscountCode: string
          DiscountCouponExpirationDate: string
          LatestInvoice: {}
          Rate: 0
        Amount: 0
        AmountOutstanding: 0
        InvoiceLineItems:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            StartDate: string
            EndDate: string
            Description: string
            UnitOfMeasure: string
            Quantity: 0
            Rate: 0
            Amount: 0
            Tax: 0
            Invoice: {}
            LineItemType: 1
            EntityId: 0
            StripeTaxReference: string
            StripeTaxLineItemId: string
            EntityUid: string
        IsUserGenerated: false
        StripeTaxCalculationId: string
        StripeTaxBehavior: string
        AmountCredit: 0
        AmountDiscount: 0
        AmountPaid: 0
        AmountRefunded: 0
        AmountSubtotal: 0
        AmountTax: 0
        AmountTaxRefunded: 0
        IsTaxable: false
        HasPaymentGatewayTransactions: false
        StripePaymentTransactionIds: string
        StripeRefundTransactionIds: string
        StripeTaxRefundTransactionIds: string
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            InvoiceDate:
              type: string
              format: date-time
            PaymentReminderSentDate:
              type: string
              format: date-time
              nullable: true
            Number:
              type: integer
              format: int32
            BillingInvoiceStatus:
              $ref: '#/components/schemas/BillingInvoiceStatus'
            Subscription:
              nullable: true
              oneOf:
                - type: object
                  title: Subscription
                  description: Circular reference to Subscription (not expanded here).
            Amount:
              type: number
              format: decimal
            AmountOutstanding:
              type: number
              format: decimal
            InvoiceLineItems:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/InvoiceLineItem'
            IsUserGenerated:
              type: boolean
            StripeTaxCalculationId:
              type: string
              maxLength: 50
              nullable: true
            StripeTaxBehavior:
              type: string
              maxLength: 10
              nullable: true
            AmountCredit:
              type: number
              format: decimal
            AmountDiscount:
              type: number
              format: decimal
            AmountPaid:
              type: number
              format: decimal
            AmountRefunded:
              type: number
              format: decimal
            AmountSubtotal:
              type: number
              format: decimal
            AmountTax:
              type: number
              format: decimal
            AmountTaxRefunded:
              type: number
              format: decimal
            IsTaxable:
              type: boolean
            HasPaymentGatewayTransactions:
              type: boolean
            StripePaymentTransactionIds:
              type: string
              nullable: true
            StripeRefundTransactionIds:
              type: string
              nullable: true
            StripeTaxRefundTransactionIds:
              type: string
              nullable: true
    DealPipelineStage:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            Weight:
              type: integer
              format: int32
            Name:
              type: string
              maxLength: 250
              nullable: true
            DealPipeline:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/DealPipeline'
            Deals:
              type: array
              nullable: true
              items:
                type: object
                title: Deal
                description: Circular reference to Deal (not expanded here).
    AbstractStripeBeanOfTaxId:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    DealPerson:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            Person:
              nullable: true
              oneOf:
                - type: object
                  title: Person
                  description: Circular reference to Person (not expanded here).
            Deal:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Deal'
    LeadFormSubmission:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          required:
            - Person
            - LeadForm
          properties:
            Person:
              type: object
              title: Person
              description: Circular reference to Person (not expanded here).
            LeadForm:
              $ref: '#/components/schemas/LeadForm'
            RefererURL:
              type: string
              nullable: true
            RecaptchaToken:
              type: string
              nullable: true
            RecaptchaSiteKey:
              type: string
              nullable: true
    EmailListPerson:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        EmailList:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          Name: string
          Description: string
          WelcomeSubject: string
          WelcomeBody: string
          WelcomeFromName: string
          WelcomeFromEmail: string
          RequiresDoubleOptIn: false
          IsInternal: false
          EmailListPerson: []
          FieldConfigurationDataJSON: string
          CountSubscriptionsActive: 0
          CountSubscriptionsBounce: 0
          CountSubscriptionsNotConfirmed: 0
          CountSubscriptionsSpam: 0
          CountSubscriptionsUnsubscribed: 0
        Person:
          Uid: string
          _objectType: string
          Created: string
          Updated: string
          ActivityEventData: {}
          SchemaLessData: {}
          Email: string
          FirstName: string
          LastName: string
          MailingAddress: {}
          PasswordLastUpdated: string
          PasswordMustChange: false
          PhoneMobile: string
          PhoneWork: string
          ProfileImageS3Url: string
          Title: string
          Timezone: string
          Language: string
          IPAddress: string
          Referer: string
          UserAgent: string
          LastLoginDateTime: string
          OAuthGoogleProfileId: string
          PersonAccount: []
          DealPeople: []
          LeadFormSubmissions: []
          Account: {}
          AccountUids: string
          EmailListPerson: []
          FullName: string
          HasLoggedIn: false
          OAuthIntegrationStatus: 0
          OptInToEmailList: false
          Password: string
          UserAgentPlatformBrowser: string
          HasUnsubscribed: false
          DiscordUser: {}
          IsConnectedToDiscord: false
        EmailListSubscriberStatus: 1
        SubscribedDate: string
        ConfirmedDate: string
        ConfirmationNotes: string
        UnsubscribedDate: string
        CleanedDate: string
        WelcomeEmailDeliverDateTime: string
        WelcomeEmailOpenDateTime: string
        UnsubscribeReason: string
        UnsubscribeReasonOther: string
        RecaptchaToken: string
        RecaptchaSiteKey: string
        SendWelcomeEmail: false
        Source: string
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            EmailList:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/EmailList'
            Person:
              nullable: true
              oneOf:
                - type: object
                  title: Person
                  description: Circular reference to Person (not expanded here).
            EmailListSubscriberStatus:
              maximum: 4
              minimum: 1
              oneOf:
                - $ref: '#/components/schemas/EmailListSubscriberStatus'
            SubscribedDate:
              type: string
              format: date-time
            ConfirmedDate:
              type: string
              format: date-time
              nullable: true
            ConfirmationNotes:
              type: string
              maxLength: 500
              nullable: true
            UnsubscribedDate:
              type: string
              format: date-time
              nullable: true
            CleanedDate:
              type: string
              format: date-time
              nullable: true
            WelcomeEmailDeliverDateTime:
              type: string
              format: date-time
              nullable: true
            WelcomeEmailOpenDateTime:
              type: string
              format: date-time
              nullable: true
            UnsubscribeReason:
              type: string
              maxLength: 20
              nullable: true
            UnsubscribeReasonOther:
              type: string
              nullable: true
            RecaptchaToken:
              type: string
              nullable: true
            RecaptchaSiteKey:
              type: string
              nullable: true
            SendWelcomeEmail:
              type: boolean
            Source:
              type: string
              nullable: true
    OAuthService:
      type: integer
      description: '`0` - None, `1` - Gmail'
      x-enumFlags: true
      x-enumNames:
        - None
        - Gmail
      x-enum-descriptions:
        - ''
        - ''
      enum:
        - 0
        - 1
    DiscordUser:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          required:
            - Person
          properties:
            DiscordUserId:
              type: string
              maxLength: 250
              nullable: true
            DiscordEmail:
              type: string
              maxLength: 250
              nullable: true
            DiscordUsername:
              type: string
              maxLength: 250
              nullable: true
            DiscordOAuthRefreshToken:
              type: string
              nullable: true
    AbstractBean:
      type: object
      x-abstract: true
      additionalProperties: false
      required:
        - Id
        - Created
        - CreatedByUser_Id
        - Updated
        - UpdatedByUser_Id
      properties:
        Uid:
          type: string
          maxLength: 10
          nullable: true
        _objectType:
          type: string
          nullable: true
        Created:
          type: string
          readOnly: true
          format: date-time
          minLength: 1
        Updated:
          type: string
          readOnly: true
          format: date-time
          minLength: 1
    AbstractStripeBeanOfDiscount:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripeCoupon:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfCoupon'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            AmountOff:
              type: integer
              format: int64
              nullable: true
            AppliesToProducts:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeProduct'
            Currency:
              type: string
              maxLength: 3
              nullable: true
            Duration:
              type: string
              maxLength: 30
              nullable: true
            DurationInMonths:
              type: integer
              format: int64
              nullable: true
            MaxRedemptions:
              type: integer
              format: int64
              nullable: true
            Name:
              type: string
              maxLength: 250
              nullable: true
            PercentOff:
              type: number
              format: decimal
              nullable: true
            RedeemBy:
              type: string
              format: date-time
              nullable: true
            TimesRedeemed:
              type: integer
              format: int64
            Valid:
              type: boolean
            AppliesToProductIds:
              type: array
              nullable: true
              items:
                type: string
            CurrencySymbol:
              type: string
              nullable: true
            CurrencyAmountOff:
              type: number
              format: decimal
              nullable: true
    StripePromotionCode:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfPromotionCode'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            Active:
              type: boolean
            Code:
              type: string
              maxLength: 250
              nullable: true
            ExpiresAt:
              type: string
              format: date-time
              nullable: true
            MaxRedemptions:
              type: integer
              format: int64
              nullable: true
            Restrictions_FirstTimeTransaction:
              type: boolean
            StripeCoupon:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripeCoupon'
            TimesRedeemed:
              type: integer
              format: int64
            Valid:
              type: boolean
            CustomerId:
              type: string
              nullable: true
            CouponId:
              type: string
              nullable: true
    AbstractStripeBeanOfInvoiceLineItem:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripePrice:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfPrice'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            BillingScheme:
              type: string
              maxLength: 36
              nullable: true
            Currency:
              type: string
              maxLength: 36
              nullable: true
            IsActive:
              type: boolean
            Nickname:
              type: string
              maxLength: 250
              nullable: true
            Recurring_Interval:
              type: string
              maxLength: 36
              nullable: true
            Recurring_IntervalCount:
              type: integer
              format: int64
              nullable: true
            Recurring_StripeMeter:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripeMeter'
            Recurring_UsageType:
              type: string
              maxLength: 36
              nullable: true
            StripeProduct:
              nullable: true
              oneOf:
                - type: object
                  title: StripeProduct
                  description: Circular reference to StripeProduct (not expanded here).
            TaxBehavior:
              type: string
              maxLength: 36
              nullable: true
            TransformQuantity_DivideBy:
              type: integer
              format: int64
              nullable: true
            Type:
              type: string
              maxLength: 36
              nullable: true
            UnitAmount:
              type: integer
              format: int64
              nullable: true
            UnitAmountDecimal:
              type: number
              format: decimal
              nullable: true
            ShowInSignUpForm:
              type: boolean
            CurrencySymbol:
              type: string
              nullable: true
            CurrencyUnitAmount:
              type: number
              format: decimal
              nullable: true
            CurrencyUnitAmountDecimal:
              type: number
              format: decimal
              nullable: true
            Recurring_IntervalDays:
              type: integer
              format: int64
              nullable: true
            Recurring_Description:
              type: string
              nullable: true
            StripeMeterId:
              type: string
              nullable: true
            StripeProductId:
              type: string
              nullable: true
    AbstractStripeBeanOfInvoicePayment:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripeCharge:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfCharge'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Amount:
              type: integer
              format: int64
            AmountCaptured:
              type: integer
              format: int64
            AmountRefunded:
              type: integer
              format: int64
            Captured:
              type: boolean
            Currency:
              type: string
              maxLength: 3
              nullable: true
            Paid:
              type: boolean
            PaymentIntentId:
              type: string
              maxLength: 50
              nullable: true
            Refunded:
              type: boolean
            Status:
              type: string
              maxLength: 30
              nullable: true
            StripePaymentMethod:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripePaymentMethod'
            Account:
              nullable: true
              oneOf:
                - type: object
                  title: Account
                  description: Circular reference to Account (not expanded here).
            ExtraData:
              type: string
              maxLength: 256
              nullable: true
            CurrencySymbol:
              type: string
              nullable: true
            CurrencyAmount:
              type: number
              format: decimal
            CustomerId:
              type: string
              nullable: true
            PaymentMethodId:
              type: string
              nullable: true
            StripeRefunds:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeRefund'
    AbstractStripeBeanOfCreditNote:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    AbstractStripeBeanOfSubscriptionItem:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    AbstractStripeBeanOfSubscriptionSchedule:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripeSubscriptionSchedulePhase:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfSubscriptionSchedulePhase'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            EndDate:
              type: string
              format: date-time
            IsLivemode:
              type: boolean
            StartDate:
              type: string
              format: date-time
            StripeSubscriptionSchedulePhaseItems:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeSubscriptionSchedulePhaseItem'
            StripeSubscriptionSchedule:
              nullable: true
              oneOf:
                - type: object
                  title: StripeSubscriptionSchedule
                  description: >-
                    Circular reference to StripeSubscriptionSchedule (not
                    expanded here).
            TrialEnd:
              type: string
              format: date-time
              nullable: true
    PlanFamily:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        SchemaLessData: {}
        Name: string
        IsActive: false
        IsDefault: false
        Plans:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            Name: string
            Description: string
            PlanFamily: {}
            AccountRegistrationMode: 1
            IsQuantityEditable: false
            MinimumQuantity: 0
            MaximumPeople: 0
            MonthlyRate: 0
            AnnualRate: 0
            QuarterlyRate: 0
            OneTimeRate: 0
            SetupFee: 0
            SkipSetupFeeOnPlanChange: false
            IsTaxable: false
            IsActive: false
            IsPerUser: false
            RequirePaymentInformation: false
            TrialPeriodDays: 0
            TrialUntilDate: string
            ExpiresAfterMonths: 0
            ExpirationDate: string
            PostLoginPath: string
            StripeTaxCodeId: string
            UnitOfMeasure: string
            PlanAddOns: []
            ContentGroups: []
            NumberOfSubscriptions: 0
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Name:
              type: string
              maxLength: 250
              nullable: true
            IsActive:
              type: boolean
            IsDefault:
              type: boolean
            Plans:
              type: array
              nullable: true
              items:
                type: object
                title: Plan
                description: Circular reference to Plan (not expanded here).
    AccountRegistrationMode:
      type: integer
      description: '`1` - Individual, `2` - Team'
      x-enumNames:
        - Individual
        - Team
      x-enum-descriptions:
        - ''
        - ''
      enum:
        - 1
        - 2
    PlanAddOn:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          required:
            - IsUserSelectable
          properties:
            Plan:
              nullable: true
              oneOf:
                - type: object
                  title: Plan
                  description: Circular reference to Plan (not expanded here).
            AddOn:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/AddOn'
            IsUserSelectable:
              type: boolean
    AddOn:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          required:
            - IsQuantityEditable
            - IsTaxable
            - IsBilledDuringTrial
          properties:
            Name:
              type: string
              maxLength: 250
              nullable: true
            BillingAddOnType:
              maximum: 3
              minimum: 1
              oneOf:
                - $ref: '#/components/schemas/BillingAddOnType'
            IsQuantityEditable:
              type: boolean
            MinimumQuantity:
              type: integer
              format: int32
            MonthlyRate:
              type: number
              format: decimal
            AnnualRate:
              type: number
              format: decimal
            SetupFee:
              type: number
              format: decimal
            UnitOfMeasure:
              type: string
              maxLength: 250
              nullable: true
            IsTaxable:
              type: boolean
            IsBilledDuringTrial:
              type: boolean
            ExpiresAfterMonths:
              type: integer
              format: int32
            ExpirationDate:
              type: string
              format: date-time
              nullable: true
            StripeTaxCodeId:
              type: string
              maxLength: 15
              nullable: true
            PlanAddOns:
              type: array
              nullable: true
              items:
                type: object
                title: PlanAddOn
                description: Circular reference to PlanAddOn (not expanded here).
            ContentGroups:
              type: array
              nullable: true
              items:
                type: object
                title: ContentGroup
                description: Circular reference to ContentGroup (not expanded here).
            IsPerUser:
              type: boolean
            QuarterlyRate:
              type: number
              format: decimal
            OneTimeRate:
              type: number
              format: decimal
            SubscriptionCount:
              type: integer
              format: int32
            Quantity:
              type: integer
              format: int32
    DiscountCoupon:
      example:
        Uid: string
        _objectType: string
        Created: string
        Updated: string
        ActivityEventData: {}
        UniqueIdentifier: string
        Name: string
        IsActive: false
        AmountOff: 0
        PercentOff: 0
        RedeemBy: string
        Duration: 1
        DurationInMonths: 0
        TimesRedeemed: 0
        MaxRedemptions: 0
        DiscountCouponPlans:
          - Uid: string
            _objectType: string
            Created: string
            Updated: string
            ActivityEventData: {}
            Plan: {}
            DiscountCoupon: {}
        ApplyToAddOns: false
        PlanUids: string
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            UniqueIdentifier:
              type: string
              nullable: true
            Name:
              type: string
              nullable: true
            IsActive:
              type: boolean
            AmountOff:
              type: number
              format: decimal
              nullable: true
            PercentOff:
              type: number
              format: decimal
              nullable: true
            RedeemBy:
              type: string
              format: date-time
              nullable: true
            Duration:
              maximum: 3
              minimum: 1
              oneOf:
                - $ref: '#/components/schemas/BillingDiscountDuration'
            DurationInMonths:
              type: integer
              format: int32
              nullable: true
            TimesRedeemed:
              type: integer
              format: int32
            MaxRedemptions:
              type: integer
              format: int32
              nullable: true
            DiscountCouponPlans:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/DiscountCouponPlan'
            ApplyToAddOns:
              type: boolean
            PlanUids:
              type: string
              nullable: true
    BillingInvoiceStatus:
      type: integer
      description: >-
        `1` - Unpaid, `2` - Paid, `3` - Partial, `4` - Uncollected, `5` -
        Refunded, `6` - Uncollectible, `7` - Processing
      x-enumNames:
        - Unpaid
        - Paid
        - Partial
        - Uncollected
        - Refunded
        - Uncollectible
        - Processing
      x-enum-descriptions:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
    InvoiceLineItem:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            StartDate:
              type: string
              format: date-time
              nullable: true
            EndDate:
              type: string
              format: date-time
              nullable: true
            Description:
              type: string
              nullable: true
            UnitOfMeasure:
              type: string
              maxLength: 250
              nullable: true
            Quantity:
              type: number
              format: decimal
              nullable: true
            Rate:
              type: number
              format: decimal
            Amount:
              type: number
              format: decimal
            Tax:
              type: number
              format: decimal
            Invoice:
              nullable: true
              oneOf:
                - type: object
                  title: Invoice
                  description: Circular reference to Invoice (not expanded here).
            LineItemType:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/LineItemType'
            EntityId:
              type: integer
              format: int64
              nullable: true
            StripeTaxReference:
              type: string
              maxLength: 10
              nullable: true
            StripeTaxLineItemId:
              type: string
              maxLength: 50
              nullable: true
            EntityUid:
              type: string
              nullable: true
    DealPipeline:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            Name:
              type: string
              maxLength: 250
              nullable: true
            DealPipelineStages:
              type: array
              nullable: true
              items:
                type: object
                title: DealPipelineStage
                description: Circular reference to DealPipelineStage (not expanded here).
    LeadForm:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            Name:
              type: string
              maxLength: 250
              nullable: true
            FieldConfigurationDataJSON:
              type: string
              nullable: true
            ThankYouRedirectUrl:
              type: string
              format: uri
              maxLength: 1000
              deprecated: true
              x-deprecatedMessage: RedirectUrl stored in FieldConfigurationJSON
              nullable: true
            SubmissionCount:
              type: integer
              format: int32
            PipelineStageUid:
              type: string
              nullable: true
            DealPipelineStage:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/DealPipelineStage'
    EmailList:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          required:
            - Name
          properties:
            Name:
              type: string
              maxLength: 100
              minLength: 1
            Description:
              type: string
              maxLength: 255
              nullable: true
            WelcomeSubject:
              type: string
              maxLength: 250
              nullable: true
            WelcomeBody:
              type: string
              nullable: true
            WelcomeFromName:
              type: string
              maxLength: 250
              nullable: true
            WelcomeFromEmail:
              title: From Email
              type: string
              maxLength: 250
              nullable: true
            RequiresDoubleOptIn:
              type: boolean
            IsInternal:
              type: boolean
            EmailListPerson:
              type: array
              nullable: true
              items:
                type: object
                title: EmailListPerson
                description: Circular reference to EmailListPerson (not expanded here).
            FieldConfigurationDataJSON:
              type: string
              nullable: true
            CountSubscriptionsActive:
              type: integer
              format: int32
            CountSubscriptionsBounce:
              type: integer
              format: int32
            CountSubscriptionsNotConfirmed:
              type: integer
              format: int32
            CountSubscriptionsSpam:
              type: integer
              format: int32
            CountSubscriptionsUnsubscribed:
              type: integer
              format: int32
    EmailListSubscriberStatus:
      type: integer
      description: '`1` - Subscribed, `2` - Unsubscribed, `3` - Cleaned, `4` - Confirmed'
      x-enumNames:
        - Subscribed
        - Unsubscribed
        - Cleaned
        - Confirmed
      x-enum-descriptions:
        - ''
        - ''
        - ''
        - ''
      enum:
        - 1
        - 2
        - 3
        - 4
    AbstractStripeBeanOfCoupon:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripeProduct:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfProduct'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Name:
              type: string
              maxLength: 250
              nullable: true
            DefaultPriceId:
              type: string
              maxLength: 255
              nullable: true
            Description:
              type: string
              nullable: true
            IsActive:
              type: boolean
            TaxCodeId:
              type: string
              maxLength: 36
              nullable: true
            UnitLabel:
              type: string
              maxLength: 250
              nullable: true
            ContentGroups:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ContentGroup'
            StripePrices:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripePrice'
            AccountRegistrationMode:
              $ref: '#/components/schemas/AccountRegistrationMode'
            ExpiresAfterMonths:
              type: integer
              format: int32
            ExpirationDate:
              type: string
              format: date-time
              nullable: true
            IsPerUser:
              type: boolean
            IsQuantityEditable:
              type: boolean
            MaximumPeople:
              type: integer
              format: int32
              nullable: true
            MigratedAddOnUid:
              type: string
              maxLength: 8
              nullable: true
            MigratedPlanUid:
              type: string
              maxLength: 8
              nullable: true
            MinimumQuantity:
              type: integer
              format: int32
              nullable: true
            PostLoginPath:
              type: string
              maxLength: 250
              nullable: true
            PostPurchaseUrl:
              type: string
              maxLength: 500
              nullable: true
            RequirePaymentInformation:
              type: boolean
            StripeProductCrossSells:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/StripeProductCrossSell'
            TrialPeriodDays:
              type: integer
              format: int32
            TrialUntilDate:
              type: string
              format: date-time
              nullable: true
            NumberOfPurchases:
              type: integer
              format: int32
            NumberOfSubscriptions:
              type: integer
              format: int32
            StripeProductFamily:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripeProductFamily'
    AbstractStripeBeanOfPromotionCode:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    AbstractStripeBeanOfPrice:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripeMeter:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfMeter'
        - type: object
          additionalProperties:
            nullable: true
          required:
            - DisplayName
            - EventName
          properties:
            DisplayName:
              type: string
              maxLength: 250
              minLength: 1
            EventName:
              type: string
              maxLength: 50
              minLength: 1
            Status:
              type: string
              maxLength: 10
              nullable: true
    AbstractStripeBeanOfCharge:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripeRefund:
      allOf:
        - $ref: '#/components/schemas/AbstractStripeBeanOfRefund'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Amount:
              type: integer
              format: int64
            ChargeId:
              type: string
              maxLength: 50
              nullable: true
            Currency:
              type: string
              maxLength: 3
              nullable: true
            PaymentIntentId:
              type: string
              maxLength: 50
              nullable: true
            Reason:
              type: string
              maxLength: 50
              nullable: true
            Status:
              type: string
              maxLength: 30
              nullable: true
            CurrencySymbol:
              type: string
              nullable: true
            CurrencyAmount:
              type: number
              format: decimal
            StripeCharge:
              nullable: true
              oneOf:
                - type: object
                  title: StripeCharge
                  description: Circular reference to StripeCharge (not expanded here).
    AbstractStripeBeanOfSubscriptionSchedulePhase:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    StripeSubscriptionSchedulePhaseItem:
      allOf:
        - $ref: >-
            #/components/schemas/AbstractStripeBeanOfSubscriptionSchedulePhaseItem
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripePrice:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/StripePrice'
            Quantity:
              type: integer
              format: int64
            PriceId:
              type: string
              nullable: true
    BillingAddOnType:
      type: integer
      description: '`1` - Recurring, `2` - Usage, `3` - OneTime'
      x-enumNames:
        - Recurring
        - Usage
        - OneTime
      x-enum-descriptions:
        - ''
        - ''
        - ''
      enum:
        - 1
        - 2
        - 3
    BillingDiscountDuration:
      type: integer
      description: '`1` - Forever, `2` - Once, `3` - Repeating'
      x-enumNames:
        - Forever
        - Once
        - Repeating
      x-enum-descriptions:
        - ''
        - ''
        - ''
      enum:
        - 1
        - 2
        - 3
    DiscountCouponPlan:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            Plan:
              nullable: true
              oneOf:
                - $ref: '#/components/schemas/Plan'
            DiscountCoupon:
              nullable: true
              oneOf:
                - type: object
                  title: DiscountCoupon
                  description: Circular reference to DiscountCoupon (not expanded here).
    LineItemType:
      type: integer
      description: >-
        `1` - Plan, `2` - PlanSetupFee, `3` - AddOn, `4` - AddOnSetupFee, `5` -
        Discount, `6` - Credit, `7` - PlanCredit, `8` - AddOnCredit
      x-enumNames:
        - Plan
        - PlanSetupFee
        - AddOn
        - AddOnSetupFee
        - Discount
        - Credit
        - PlanCredit
        - AddOnCredit
      x-enum-descriptions:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
    AbstractStripeBeanOfProduct:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    ContentGroup:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          required:
            - Name
          properties:
            Name:
              type: string
              maxLength: 50
              minLength: 1
            AccessDeniedPath:
              type: string
              maxLength: 1024
              nullable: true
            ContentGroupItems:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/ContentGroupItem'
            AllowedPlans:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/Plan'
            AllowedProducts:
              type: array
              nullable: true
              items:
                type: object
                title: StripeProduct
                description: Circular reference to StripeProduct (not expanded here).
            AllowedAddOns:
              type: array
              nullable: true
              items:
                $ref: '#/components/schemas/AddOn'
    StripeProductCrossSell:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          properties:
            StripeProduct:
              nullable: true
              oneOf:
                - type: object
                  title: StripeProduct
                  description: Circular reference to StripeProduct (not expanded here).
            CrossSellProduct:
              nullable: true
              oneOf:
                - type: object
                  title: StripeProduct
                  description: Circular reference to StripeProduct (not expanded here).
            IsUserSelectable:
              type: boolean
    StripeProductFamily:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            Name:
              type: string
              maxLength: 250
              nullable: true
            IsActive:
              type: boolean
            IsDefault:
              type: boolean
            StripeProducts:
              type: array
              nullable: true
              items:
                type: object
                title: StripeProduct
                description: Circular reference to StripeProduct (not expanded here).
    AbstractStripeBeanOfMeter:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    AbstractStripeBeanOfRefund:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    AbstractStripeBeanOfSubscriptionSchedulePhaseItem:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    ContentGroupItem:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          additionalProperties: false
          required:
            - Pattern
            - MatchMode
            - ContentGroup
          properties:
            Pattern:
              type: string
              minLength: 1
            MatchMode:
              $ref: '#/components/schemas/ContentGroupItemMatchMode'
            ContentGroup:
              type: object
              title: ContentGroup
              description: Circular reference to ContentGroup (not expanded here).
    ContentGroupItemMatchMode:
      type: integer
      description: '`1` - Equals, `2` - StartsWith'
      x-enumNames:
        - Equals
        - StartsWith
      x-enum-descriptions:
        - ''
        - ''
      enum:
        - 1
        - 2
  securitySchemes:
    Bearer:
      type: http
      description: Enter your access token (OAuth / JWT).
      scheme: bearer
      bearerFormat: JWT
    ApiKey:
      type: apiKey
      description: 'Enter: Outseta {api_key}:{api_secret}'
      name: Authorization
      in: header

````