> ## 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.

# Retrieve all invoices.

> Retrieve all invoices. Invoices imported from another billing system are left out,
unless IsImported=true is passed in the query string, which returns only imported
invoices. Pass excludeInvoiceUid in the query string to leave out one invoice.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/billing/stripe/invoices
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)
      - [Sorting and filtering metadata](#sorting-and-filtering-metadata)
    - [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

    ```


    > **Unknown paths are ignored, not rejected.** A `fields` path that does not
    match a property on the object is dropped from the request. The response is
    still `200`, still well-formed, and simply has no such property — the same
    shape you would get if the value were legitimately `null`. Nothing in the
    response distinguishes "you asked for a property that does not exist" from
    "that property is null". Confirm that what you requested came back before
    relying on it, and check spelling against the endpoint's response schema
    rather than a similarly named property on another object.


    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` | Zero-based page number, not a record offset |

    | `limit` | integer | `25` | Requested page size. Capped at `100`, or `25`
    when requested fields expand child objects or require additional queries;
    `metadata.limit` reports the applied value |


    **Examples:**

    ```

    ?offset=0&limit=20     # page 1 (index 0) — results 1-20

    ?offset=1&limit=20     # page 2 (index 1) — results 21-40

    ?offset=20&limit=20    # page index 20 — results 401-420, NOT results 21-40

    ```


    ### Sorting


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


    ```

    ?orderBy=PropertyName+DESC

    ```


    `orderBy` generally supports database-backed scalar properties. Support for
    nested paths is endpoint-specific, especially when a path traverses a
    collection and does not identify a single ordering value. Important known
    unsupported paths, including calculated properties, are listed in the
    endpoint's `x-outseta-sort-denylist`; this list is curated rather than
    exhaustive.


    ### 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&EndDate__isnull=true&fields=Uid,StartDate,EndDate,Plan.Name

    ```


    ### Sorting and filtering metadata


    Collection operations in the OpenAPI document can include
    `x-outseta-sort-denylist` and `x-outseta-filter-denylist`. Each extension is
    an array of property paths, relative to an item in that operation's response
    collection, that the operation does not support for sorting or filtering.
    Paths can be nested.


    ```yaml

    x-outseta-sort-denylist:
      - CurrentSubscription.Rate
    x-outseta-filter-denylist:
      - CurrentSubscription.Rate
    ```


    These lists currently prioritize high-value financial and CRM properties
    that API consumers frequently attempt to query. They are curated rather than
    exhaustive, so the absence of a property is not by itself a guarantee that
    every query shape is supported.


    ## 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.


    On accounts that bill through Stripe, account payloads carry
    `CurrentStripeProductInstances`: the Stripe products the account owns right
    now, each with the owned `Quantity`. The `AccountProductsChanged` event
    fires when that list changes and names the added and removed product UIDs in
    `ActivityEventData`.




    | 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` |

    | `AccountProductsChanged` | `Account` |
    `AccountProductsChangedWebhookPayload` |

    | `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` |

    | `TaskCreated` | `Deal` or `Person` or `Account` |
    `TaskCreatedWebhookPayload` |

    | `TaskUpdated` | `Deal` or `Person` or `Account` |
    `TaskUpdatedWebhookPayload` |

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

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

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

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

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

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

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

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


    An activity that lists more than one entity is rooted on whichever of those
    entities it fires on, so its payload schema is a `oneOf` of them.
    `TaskCreated` and `TaskUpdated` work this way: the webhook is rooted on the
    deal, person or account the task belongs to, and the task itself is carried
    in the `ActivityEventData` property.
  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/billing/stripe/invoices:
    get:
      tags:
        - Billing (v3)
      summary: Retrieve all invoices.
      description: >-
        Retrieve all invoices. Invoices imported from another billing system are
        left out,

        unless IsImported=true is passed in the query string, which returns only
        imported

        invoices. Pass excludeInvoiceUid in the query string to leave out one
        invoice.
      operationId: StripeInvoices_GetAll
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  metadata:
                    limit: 0
                    offset: 0
                    total: 0
                  items:
                    - 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: {}
                      IsImported: false
                      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
                properties:
                  metadata:
                    $ref: '#/components/schemas/CollectionMetadata'
                  items:
                    type: array
                    items:
                      example:
                        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:
                          - Uid: string
                            _objectType: string
                            Created: string
                            Updated: string
                            ActivityEventData: {}
                            SchemaLessData: {}
                            StripeId: string
                            IsLivemode: false
                            Account: {}
                            CheckoutSessionId: string
                            End: string
                            InvoiceId: string
                            InvoiceItemId: string
                            IsDeleted: false
                            Start: string
                            StripeCoupon: {}
                            StripePromotionCode: {}
                            SubscriptionId: string
                            SubscriptionItemId: string
                            CouponId: string
                            CustomerId: string
                            StripeInvoice: {}
                            StripeSubscription: {}
                            PromotionCodeId: string
                        StripeInvoiceDiscountAmounts:
                          - Uid: string
                            _objectType: string
                            Created: string
                            Updated: string
                            ActivityEventData: {}
                            Amount: 0
                            DiscountId: string
                            StripeInvoice: {}
                            CurrencyAmount: 0
                            StripeDiscount: {}
                        StripeInvoiceLineItems:
                          - Uid: string
                            _objectType: string
                            Created: string
                            Updated: string
                            ActivityEventData: {}
                            SchemaLessData: {}
                            StripeId: string
                            IsLivemode: false
                            StripeInvoice: {}
                            Amount: 0
                            Currency: string
                            PeriodStart: string
                            PeriodEnd: string
                            Quantity: 0
                            StripeDiscounts: []
                            StripePrice: {}
                            EndDate: string
                            CurrencyAmount: 0
                            PriceId: string
                            Proration: false
                        StripeInvoicePayments:
                          - Uid: string
                            _objectType: string
                            Created: string
                            Updated: string
                            ActivityEventData: {}
                            SchemaLessData: {}
                            StripeId: string
                            IsLivemode: false
                            AmountPaid: 0
                            AmountRequested: 0
                            Currency: string
                            Payment_ChargeId: string
                            Payment_PaymentIntentId: string
                            Payment_Type: string
                            StripeInvoice: {}
                            Status: string
                            InvoiceId: string
                            StripeCharges: []
                        SubTotal: 0
                        SubTotalExcludingTax: 0
                        SubscriptionId: string
                        Tax: 0
                        Total: 0
                        TotalExcludingTax: 0
                        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
                          CurrentStripeProductInstances: []
                          CurrentSubscription: {}
                          DomainName: string
                          TenantBillingSystem: 1
                          HasLoggedIn: false
                          LatestSubscription: {}
                          LifetimeRevenue: 0
                          NextStripeInvoiceDate: string
                          Nonce: string
                          PrimaryContact: {}
                          PrimarySubscription: {}
                          PrimaryStripeSubscription: {}
                          RecaptchaToken: string
                          StripeCheckoutMetadata: {}
                          StripeNextInvoiceSequence: 0
                          StripePrice: []
                          StripePriceIds: string
                          StripePromotionCode: string
                          TaxId: string
                          TaxIdIsInvalid: false
                          TaxIdType: string
                          WebflowSlug: string
                        IsImported: false
                        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:
                          - Uid: string
                            _objectType: string
                            Created: string
                            Updated: string
                            ActivityEventData: {}
                            SchemaLessData: {}
                            StripeId: string
                            IsLivemode: false
                            Currency: string
                            CustomerId: string
                            InvoiceId: string
                            OutOfBandAmount: 0
                            PostPaymentAmount: 0
                            PrePaymentAmount: 0
                            Reason: string
                            Status: string
                            Total: 0
                            Type: string
                            CurrencySymbol: string
                            CurrencyTotal: 0
                        StripePaymentMethodId: string
                      title: StripeInvoice
                      type: object
                      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
                        ActivityEventData:
                          nullable: true
                        SchemaLessData:
                          type: object
                          nullable: true
                          additionalProperties: {}
                        StripeId:
                          type: string
                          maxLength: 255
                          nullable: true
                        IsLivemode:
                          type: boolean
                        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:
                            title: StripeDiscount
                            type: object
                            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
                              ActivityEventData:
                                nullable: true
                              SchemaLessData:
                                type: object
                                nullable: true
                                additionalProperties: {}
                              StripeId:
                                type: string
                                maxLength: 255
                                nullable: true
                              IsLivemode:
                                type: boolean
                              Account:
                                nullable: true
                                oneOf:
                                  - type: object
                                    title: Account
                                    description: >-
                                      Related Account. Not included by default;
                                      request its fields with the fields
                                      parameter, e.g.
                                      fields=*,StripeDiscounts.Account.*
                              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:
                                  - type: object
                                    title: StripeCoupon
                                    description: >-
                                      Related StripeCoupon. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,StripeDiscounts.StripeCoupon.*
                              StripePromotionCode:
                                nullable: true
                                oneOf:
                                  - type: object
                                    title: StripePromotionCode
                                    description: >-
                                      Related StripePromotionCode. Not included
                                      by default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,StripeDiscounts.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: >-
                                      Related StripeInvoice. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,StripeDiscounts.StripeInvoice.*
                              StripeSubscription:
                                nullable: true
                                oneOf:
                                  - type: object
                                    title: StripeSubscription
                                    description: >-
                                      Related StripeSubscription. Not included
                                      by default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,StripeDiscounts.StripeSubscription.*
                              PromotionCodeId:
                                type: string
                                nullable: true
                            required:
                              - Id
                              - Created
                              - CreatedByUser_Id
                              - Updated
                              - UpdatedByUser_Id
                              - Qcount_Id
                        StripeInvoiceDiscountAmounts:
                          type: array
                          nullable: true
                          items:
                            title: StripeInvoiceDiscountAmount
                            type: object
                            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
                              ActivityEventData:
                                nullable: true
                              Amount:
                                type: integer
                                format: int64
                              DiscountId:
                                type: string
                                maxLength: 36
                                nullable: true
                              StripeInvoice:
                                nullable: true
                                oneOf:
                                  - type: object
                                    title: StripeInvoice
                                    description: >-
                                      Related StripeInvoice. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,StripeInvoiceDiscountAmounts.StripeInvoice.*
                              CurrencyAmount:
                                type: number
                                format: decimal
                              StripeDiscount:
                                nullable: true
                                oneOf:
                                  - type: object
                                    title: StripeDiscount
                                    description: >-
                                      Related StripeDiscount. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,StripeInvoiceDiscountAmounts.StripeDiscount.*
                            required:
                              - Id
                              - Created
                              - CreatedByUser_Id
                              - Updated
                              - UpdatedByUser_Id
                              - Qcount_Id
                        StripeInvoiceLineItems:
                          type: array
                          nullable: true
                          items:
                            title: StripeInvoiceLineItem
                            type: object
                            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
                              ActivityEventData:
                                nullable: true
                              SchemaLessData:
                                type: object
                                nullable: true
                                additionalProperties: {}
                              StripeId:
                                type: string
                                maxLength: 255
                                nullable: true
                              IsLivemode:
                                type: boolean
                              StripeInvoice:
                                nullable: true
                                oneOf:
                                  - type: object
                                    title: StripeInvoice
                                    description: >-
                                      Related StripeInvoice. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,StripeInvoiceLineItems.StripeInvoice.*
                              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:
                                  type: object
                                  title: StripeDiscount
                                  description: >-
                                    Related StripeDiscount. Not included by
                                    default; request its fields with the fields
                                    parameter, e.g.
                                    fields=*,StripeInvoiceLineItems.StripeDiscounts.*
                              StripePrice:
                                nullable: true
                                oneOf:
                                  - type: object
                                    title: StripePrice
                                    description: >-
                                      Related StripePrice. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,StripeInvoiceLineItems.StripePrice.*
                              EndDate:
                                type: string
                                format: date-time
                                nullable: true
                              CurrencyAmount:
                                type: number
                                format: decimal
                                nullable: true
                              PriceId:
                                type: string
                                nullable: true
                              Proration:
                                type: boolean
                            required:
                              - Id
                              - Created
                              - CreatedByUser_Id
                              - Updated
                              - UpdatedByUser_Id
                              - Qcount_Id
                        StripeInvoicePayments:
                          type: array
                          nullable: true
                          items:
                            title: StripeInvoicePayment
                            type: object
                            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
                              ActivityEventData:
                                nullable: true
                              SchemaLessData:
                                type: object
                                nullable: true
                                additionalProperties: {}
                              StripeId:
                                type: string
                                maxLength: 255
                                nullable: true
                              IsLivemode:
                                type: boolean
                              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: >-
                                      Related StripeInvoice. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,StripeInvoicePayments.StripeInvoice.*
                              Status:
                                type: string
                                nullable: true
                              InvoiceId:
                                type: string
                                nullable: true
                              StripeCharges:
                                type: array
                                nullable: true
                                items:
                                  type: object
                                  title: StripeCharge
                                  description: >-
                                    Related StripeCharge. Not included by
                                    default; request its fields with the fields
                                    parameter, e.g.
                                    fields=*,StripeInvoicePayments.StripeCharges.*
                            required:
                              - Id
                              - Created
                              - CreatedByUser_Id
                              - Updated
                              - UpdatedByUser_Id
                              - Qcount_Id
                        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:
                            - title: Account
                              type: object
                              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
                                ActivityEventData:
                                  nullable: true
                                SchemaLessData:
                                  type: object
                                  nullable: true
                                  additionalProperties: {}
                                StripeId:
                                  type: string
                                  maxLength: 255
                                  nullable: true
                                IsLivemode:
                                  type: boolean
                                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:
                                    - type: object
                                      title: PaymentInformation
                                      description: >-
                                        Related PaymentInformation. Not included
                                        by default; request its fields with the
                                        fields parameter, e.g.
                                        fields=*,Account.PaymentInformation.*
                                PersonAccount:
                                  type: array
                                  nullable: true
                                  items:
                                    type: object
                                    title: PersonAccount
                                    description: >-
                                      Related PersonAccount. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,Account.PersonAccount.*
                                StripeDefaultPaymentMethodId:
                                  type: string
                                  maxLength: 50
                                  nullable: true
                                StripeInvoices:
                                  type: array
                                  nullable: true
                                  items:
                                    type: object
                                    title: StripeInvoice
                                    description: >-
                                      Related StripeInvoice. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,Account.StripeInvoices.*
                                StripePaymentMethods:
                                  type: array
                                  nullable: true
                                  items:
                                    type: object
                                    title: StripePaymentMethod
                                    description: >-
                                      Related StripePaymentMethod. Not included
                                      by default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,Account.StripePaymentMethods.*
                                StripeSubscriptions:
                                  type: array
                                  nullable: true
                                  items:
                                    type: object
                                    title: StripeSubscription
                                    description: >-
                                      Related StripeSubscription. Not included
                                      by default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,Account.StripeSubscriptions.*
                                Subscriptions:
                                  type: array
                                  nullable: true
                                  items:
                                    type: object
                                    title: Subscription
                                    description: >-
                                      Related Subscription. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,Account.Subscriptions.*
                                Deals:
                                  type: array
                                  nullable: true
                                  items:
                                    type: object
                                    title: Deal
                                    description: >-
                                      Related Deal. Not included by default;
                                      request its fields with the fields
                                      parameter, e.g. fields=*,Account.Deals.*
                                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:
                                    type: object
                                    title: AccountTaxId
                                    description: >-
                                      Related AccountTaxId. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,Account.TaxIds.*
                                TaxStatus:
                                  type: string
                                  maxLength: 20
                                  nullable: true
                                AccountStageLabel:
                                  type: string
                                  nullable: true
                                CurrentStripeProducts:
                                  type: string
                                  nullable: true
                                CurrentStripeProductInstances:
                                  type: array
                                  nullable: true
                                  items:
                                    type: object
                                    title: StripeProduct
                                    description: >-
                                      Related StripeProduct. Not included by
                                      default; request its fields with the
                                      fields parameter, e.g.
                                      fields=*,Account.CurrentStripeProductInstances.*
                                CurrentSubscription:
                                  nullable: true
                                  oneOf:
                                    - type: object
                                      title: Subscription
                                      description: >-
                                        Related Subscription. Not included by
                                        default; request its fields with the
                                        fields parameter, e.g.
                                        fields=*,Account.CurrentSubscription.*
                                DomainName:
                                  type: string
                                  nullable: true
                                TenantBillingSystem:
                                  nullable: true
                                  oneOf:
                                    - $ref: '#/components/schemas/BillingSystem'
                                HasLoggedIn:
                                  type: boolean
                                LatestSubscription:
                                  nullable: true
                                  oneOf:
                                    - type: object
                                      title: Subscription
                                      description: >-
                                        Related Subscription. Not included by
                                        default; request its fields with the
                                        fields parameter, e.g.
                                        fields=*,Account.LatestSubscription.*
                                LifetimeRevenue:
                                  type: number
                                  format: decimal
                                NextStripeInvoiceDate:
                                  type: string
                                  format: date-time
                                  nullable: true
                                Nonce:
                                  type: string
                                  nullable: true
                                PrimaryContact:
                                  nullable: true
                                  oneOf:
                                    - type: object
                                      title: Person
                                      description: >-
                                        Related Person. Not included by default;
                                        request its fields with the fields
                                        parameter, e.g.
                                        fields=*,Account.PrimaryContact.*
                                PrimarySubscription:
                                  nullable: true
                                  oneOf:
                                    - type: object
                                      title: Subscription
                                      description: >-
                                        Related Subscription. Not included by
                                        default; request its fields with the
                                        fields parameter, e.g.
                                        fields=*,Account.PrimarySubscription.*
                                PrimaryStripeSubscription:
                                  nullable: true
                                  oneOf:
                                    - type: object
                                      title: StripeSubscription
                                      description: >-
                                        Related StripeSubscription. Not included
                                        by default; request its fields with the
                                        fields parameter, e.g.
                                        fields=*,Account.PrimaryStripeSubscription.*
                                RecaptchaToken:
                                  type: string
                                  nullable: true
                                StripeCheckoutMetadata:
                                  type: object
                                  nullable: true
                                  additionalProperties:
                                    type: string
                                StripeNextInvoiceSequence:
                                  type: integer
                                  format: int64
                                  nullable: true
                                StripePrice:
                                  type: array
                                  nullable: true
                                  items:
                                    type: string
                                StripePriceIds:
                                  type: string
                                  nullable: true
                                StripePromotionCode:
                                  type: string
                                  nullable: true
                                TaxId:
                                  type: string
                                  nullable: true
                                TaxIdIsInvalid:
                                  type: boolean
                                TaxIdType:
                                  type: string
                                  nullable: true
                                WebflowSlug:
                                  type: string
                                  nullable: true
                              required:
                                - Id
                                - Created
                                - CreatedByUser_Id
                                - Updated
                                - UpdatedByUser_Id
                                - Qcount_Id
                                - Name
                        IsImported:
                          type: boolean
                        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
                      required:
                        - Id
                        - Created
                        - CreatedByUser_Id
                        - Updated
                        - UpdatedByUser_Id
                        - Qcount_Id
        '401':
          description: Unauthorized
      security:
        - Bearer: []
        - ApiKey: []
components:
  parameters:
    limit:
      name: limit
      in: query
      description: >-
        Requested page size. The server caps it at 100, or 25 when requested
        fields expand child objects or require additional queries;
        metadata.limit reports the applied value. Use offset=1 for the second
        page.
      schema:
        type: integer
        default: 25
    offset:
      name: offset
      in: query
      description: >-
        Zero-based page number, not a record offset. With limit=50, the second
        page is offset=1; offset=50 is page index 50 (records 2501-2550).
      schema:
        type: integer
        default: 0
  schemas:
    CollectionMetadata:
      type: object
      properties:
        limit:
          type: integer
        offset:
          type: integer
        total:
          type: integer
    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
    BillingSystem:
      type: integer
      description: '`1` - Outseta, `2` - Stripe'
      x-enumNames:
        - Outseta
        - Stripe
      x-enum-descriptions:
        - ''
        - ''
      enum:
        - 1
        - 2
    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
    AbstractQcountBean:
      allOf:
        - $ref: '#/components/schemas/AbstractBean'
        - type: object
          additionalProperties: false
          required:
            - Qcount_Id
          properties:
            ActivityEventData:
              nullable: true
    AbstractStripeBeanOfCreditNote:
      allOf:
        - $ref: '#/components/schemas/AbstractSchemaLessBean'
        - type: object
          additionalProperties:
            nullable: true
          properties:
            StripeId:
              type: string
              maxLength: 255
              nullable: true
            IsLivemode:
              type: boolean
    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
    AbstractSchemaLessBean:
      allOf:
        - $ref: '#/components/schemas/AbstractQcountBean'
        - type: object
          x-abstract: true
          additionalProperties:
            nullable: true
          properties:
            SchemaLessData:
              type: object
              nullable: true
              additionalProperties: {}
  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

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.