---
title: "Get app"
method: GET
path: "/openmeter/apps/{appId}"
tags: ["OpenMeter Apps"]
---

# Get app

`GET /openmeter/apps/{appId}`

Get an installed app.

## Path parameters

- `appId` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).

## Response `200`

App response.

- union — Installed application.
  - object — Stripe app.
    - `id` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).
    - `name` string, required — Display name of the resource. Between 1 and 256 characters.
    - `description` string — Optional description of the resource. Maximum 1024 characters.
    - `labels` Labels — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `created_at` string, date-time, required — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `updated_at` string, date-time, required — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `deleted_at` string, date-time — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `type` 'stripe', required — The app type.
    - `definition` BillingAppCatalogItem, required — Available apps for billing integrations to connect with third-party services. Apps can have various capabilities like syncing data from or to external systems, integrating with third-party services for tax calculation, delivery of invoices, collection of payments, etc.
      - `type` 'sandbox' | 'stripe' | 'external_invoicing', required — The type of the app.
      - `name` string, required — Name of the app.
      - `description` string, required — Description of the app.
      - `capabilities` BillingAppCapability[], required — Capabilities of the app.
        - `type` 'report_usage' | 'report_events' | 'calculate_tax' | 'invoice_customers' | 'collect_payments', required — Supported capability types for an App. Each capability defines an integration function that an App can perform.
        - `key` string, required — A key is a unique string that is used to identify a resource.
        - `name` string, required — Name of the capability.
        - `description` string, required — Description of the capability.
      - `install_methods` BillingAppInstallMethods[], required — Available install methods of the app.
    - `status` 'ready' | 'unauthorized', required — Connection status of an installed app.
    - `account_id` string, required — The Stripe account ID associated with the connected Stripe account.
    - `livemode` boolean, required — Indicates whether the app is connected to a live Stripe account.
    - `masked_api_key` string, required — The masked Stripe API key that only exposes the first and last few characters.
  - object — Sandbox app can be used for testing billing features.
    - `id` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).
    - `name` string, required — Display name of the resource. Between 1 and 256 characters.
    - `description` string — Optional description of the resource. Maximum 1024 characters.
    - `labels` Labels — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `created_at` string, date-time, required — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `updated_at` string, date-time, required — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `deleted_at` string, date-time — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `type` 'sandbox', required — The app type.
    - `definition` BillingAppCatalogItem, required — Available apps for billing integrations to connect with third-party services. Apps can have various capabilities like syncing data from or to external systems, integrating with third-party services for tax calculation, delivery of invoices, collection of payments, etc.
      - `type` 'sandbox' | 'stripe' | 'external_invoicing', required — The type of the app.
      - `name` string, required — Name of the app.
      - `description` string, required — Description of the app.
      - `capabilities` BillingAppCapability[], required — Capabilities of the app.
        - `type` 'report_usage' | 'report_events' | 'calculate_tax' | 'invoice_customers' | 'collect_payments', required — Supported capability types for an App. Each capability defines an integration function that an App can perform.
        - `key` string, required — A key is a unique string that is used to identify a resource.
        - `name` string, required — Name of the capability.
        - `description` string, required — Description of the capability.
      - `install_methods` BillingAppInstallMethods[], required — Available install methods of the app.
    - `status` 'ready' | 'unauthorized', required — Connection status of an installed app.
  - object — External Invoicing app enables integration with third-party invoicing or payment system. The app supports a bi-directional synchronization pattern where OpenMeter Billing manages the invoice lifecycle while the external system handles invoice presentation and payment collection. Integration workflow: 1. The billing system creates invoices and transitions them through lifecycle states (draft → issuing → issued) 2. The integration receives webhook notifications about invoice state changes 3. The integration calls back to provide external system IDs and metadata 4. The integration reports payment events back via the payment status API State synchronization is controlled by hooks that pause invoice progression until the external system confirms synchronization via API callbacks.
    - `id` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).
    - `name` string, required — Display name of the resource. Between 1 and 256 characters.
    - `description` string — Optional description of the resource. Maximum 1024 characters.
    - `labels` Labels — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `created_at` string, date-time, required — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `updated_at` string, date-time, required — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `deleted_at` string, date-time — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.
    - `type` 'external_invoicing', required — The app type.
    - `definition` BillingAppCatalogItem, required — Available apps for billing integrations to connect with third-party services. Apps can have various capabilities like syncing data from or to external systems, integrating with third-party services for tax calculation, delivery of invoices, collection of payments, etc.
      - `type` 'sandbox' | 'stripe' | 'external_invoicing', required — The type of the app.
      - `name` string, required — Name of the app.
      - `description` string, required — Description of the app.
      - `capabilities` BillingAppCapability[], required — Capabilities of the app.
        - `type` 'report_usage' | 'report_events' | 'calculate_tax' | 'invoice_customers' | 'collect_payments', required — Supported capability types for an App. Each capability defines an integration function that an App can perform.
        - `key` string, required — A key is a unique string that is used to identify a resource.
        - `name` string, required — Name of the capability.
        - `description` string, required — Description of the capability.
      - `install_methods` BillingAppInstallMethods[], required — Available install methods of the app.
    - `status` 'ready' | 'unauthorized', required — Connection status of an installed app.
    - `enable_draft_sync_hook` boolean, required — Enable draft synchronization hook. When enabled, invoices will pause at the draft state and wait for the integration to call the draft synchronized endpoint before progressing to the issuing state. This allows the external system to validate and prepare the invoice data. When disabled, invoices automatically progress through the draft state based on the configured workflow timing.
    - `enable_issuing_sync_hook` boolean, required — Enable issuing synchronization hook. When enabled, invoices will pause at the issuing state and wait for the integration to call the issuing synchronized endpoint before progressing to the issued state. This ensures the external invoicing system has successfully created and finalized the invoice before it is marked as issued. When disabled, invoices automatically progress through the issuing state and are immediately marked as issued.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

---

[API](https://skmtc.net/openmeterio/apis/openmeter-and-konnect-metering-billing-api.md) · [All operations](https://skmtc.net/openmeterio/apis/openmeter-and-konnect-metering-billing-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openmeterio/openmeter-and-konnect-metering-billing-api/versions/9bca44e2d61d/schema)
