# DetailPagePropertyList component for Stripe Apps

Use DetailPagePropertyList to render your app in Stripe dashboard pages.

# v8

> This is a v8 for when app-sdk-version is 8. View the full page at https://docs.stripe.com/stripe-apps/components/detailpagepropertylist?app-sdk-version=8.

The `DetailPagePropertyList` component isn’t available in the selected SDK version.


# v9

> This is a v9 for when app-sdk-version is 9. View the full page at https://docs.stripe.com/stripe-apps/components/detailpagepropertylist?app-sdk-version=9.

To add the `DetailPagePropertyList` component to your app:

```js
import {DetailPagePropertyList} from '@stripe/ui-extension-sdk/ui';
```

The `DetailPagePropertyList` component provides a standardized way to display and organize content within the Stripe Dashboard. It creates a consistent UI section that seamlessly integrates with Stripe’s design system. It displays structured key-value data pairs in either a horizontal or vertical orientation. You can use this format for showing object details, configurations, or any information that naturally fits into label-value relationships, maintaining Stripe’s design consistency. It can display up to eight items.

### DetailPagePropertyList props

| Property            | Type                                                                                                                                                                                                                                                                                              |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `pending`           | (Required)
  `boolean`

  Sets the visual style to pending.                                                                                                                                                                                                                                       |
| `createAction`      | (Optional)
  `(() => void) | undefined`

  An event handler to create a new item.                                                                                                                                                                                                                 |
| `emptyMessage`      | (Optional)
  `(string | DetailPageModuleEmptyActionMessage) | undefined`

  The message to display when the table is empty.

  Related types: [DetailPageModuleEmptyActionMessage](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemoduleemptyactionmessage).  |
| `error`             | (Optional)
  `DetailPageModuleDisplayError | undefined`

  Sets the visual style to `error`, displaying an error message.

  Related types: [DetailPageModuleDisplayError](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemoduledisplayerror).                |
| `extraActions`      | (Optional)
  `DetailPageModuleAction[] | undefined`

  An array of extra actions to display in the module.

  Related types: [DetailPageModuleAction](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemoduleaction).                                           |
| `items`             | (Optional)
  `DetailPagePropertyListItem[] | undefined`

  The items to display in the property list. Each item defines a label-values pair.

  Related types: [DetailPagePropertyListItem](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagepropertylistitem). |
| `orientation`       | (Optional)
  `("vertical" | "horizontal") | undefined`

  The orientation of the list.                                                                                                                                                                                                            |
| `showOpenAppAction` | (Optional)
  `boolean | undefined`                                                                                                                                                                                                                                                                |

### DetailPageModuleEmptyActionMessage

| Property  | Type                                                                                                                                                                                                                    |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action`  | (Required)
  `Action`

  An call to action displayed below the message.

  Related types: [Action](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemoduleemptyactionmessage-action). |
| `message` | (Required)
  `string`

  A custom message to display when the table is empty.                                                                                                                                           |

### DetailPageModuleEmptyActionMessage Action

| Property | Type                                              |
| -------- | ------------------------------------------------- |
| `href`   | (Required)
  `string`

  The link of the action.  |
| `label`  | (Required)
  `string`

  The label of the action. |

### DetailPageModuleDisplayError

| Property      | Type                                                                                                                                                                                                                         |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `message`     | (Required)
  `string`

  The error message to display.                                                                                                                                                                       |
| `errorAction` | (Optional)
  `ErrorAction | undefined`

  An action to handle the error.

  Related types: [ErrorAction](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemoduledisplayerror-erroraction). |

### DetailPageModuleDisplayError ErrorAction

| Property | Type                                                    |
| -------- | ------------------------------------------------------- |
| `href`   | (Required)
  `string`

  Native `href` attribute.       |
| `title`  | (Required)
  `string`

  The title of the error action. |

### DetailPageModuleAction

This is a union type. It can be one of: [DetailPageModuleLink](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemodulelink), [DetailPageModuleEvent](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemoduleevent), [DetailPageModuleActionLegacy](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemoduleactionlegacy).

### DetailPageModuleLink

| Property | Type                                                                                                                                                                                            |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `href`   | (Required)
  `string | RouteDescriptor`

  The href of the link.

  Related types: [RouteDescriptor](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#routedescriptor). |
| `label`  | (Required)
  `string`

  The label of the link.                                                                                                                                                 |
| `type`   | (Required)
  `"link"`

  The type of the action.                                                                                                                                                |

### RouteDescriptor

This is a union type. It can be one of: [BalanceOverviewRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#balanceoverviewroute), [BillingRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#billingroute), [CustomersRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#customersroute), [CustomerDetailsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#customerdetailsroute), [DashboardRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#dashboardroute), [FullPageRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#fullpageroute), [InvoiceDetailsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#invoicedetailsroute), [InvoicesRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#invoicesroute), [OnboardingRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#onboardingroute), [PaymentDetailsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#paymentdetailsroute), [PaymentReviewDetailsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#paymentreviewdetailsroute), [PaymentsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#paymentsroute), [ProductDetailsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#productdetailsroute), [ProductsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#productsroute), [ReportsHubRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#reportshubroute), [RevenueRecognitionRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#revenuerecognitionroute), [ShippingRateDetailsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#shippingratedetailsroute), [ShippingRatesRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#shippingratesroute), [SubscriptionDetailsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#subscriptiondetailsroute), [SubscriptionsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#subscriptionsroute), [TaxReportingLocationsRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#taxreportinglocationsroute), [TaxReportingRoute](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#taxreportingroute).

### BalanceOverviewRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"balanceOverview"`                                                                                                       |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### BillingRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"billing"`                                                                                                               |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### CustomersRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"customers"`                                                                                                             |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### CustomerDetailsRoute

| Property    | Type                                                                                                                                                    |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"customerDetails"`                                                                                                                        |
| `params`    | (Required)
  `Params`

  Related types: [Params](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#customerdetailsroute-params). |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop.                  |

### CustomerDetailsRoute Params

| Property     | Type                                             |
| ------------ | ------------------------------------------------ |
| `customerId` | (Required)
  `string`

  The id of the customer. |

### DashboardRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"dashboard"`                                                                                                             |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### FullPageRoute

| Property    | Type                                                                                                                                                         |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`      | (Required)
  `"fullPage"`                                                                                                                                    |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop.                       |
| `params`    | (Optional)
  `Params | undefined`

  Related types: [Params](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#fullpageroute-params). |

### FullPageRoute Params

| Property | Type                                                                              |
| -------- | --------------------------------------------------------------------------------- |
| `appId`  | (Optional)
  `string | undefined`

  The id of the app.                           |
| `tabId`  | (Optional)
  `string | undefined`

  The id of the tab that needs to be selected. |

### InvoiceDetailsRoute

| Property    | Type                                                                                                                                                   |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`      | (Required)
  `"invoiceDetails"`                                                                                                                        |
| `params`    | (Required)
  `Params`

  Related types: [Params](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#invoicedetailsroute-params). |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop.                 |

### InvoiceDetailsRoute Params

| Property    | Type                                            |
| ----------- | ----------------------------------------------- |
| `invoiceId` | (Required)
  `string`

  The id of the invoice. |

### InvoicesRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"invoices"`                                                                                                              |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### OnboardingRoute

| Property    | Type                                                                                                                                                           |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"onboarding"`                                                                                                                                    |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop.                         |
| `params`    | (Optional)
  `Params | undefined`

  Related types: [Params](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#onboardingroute-params). |

### OnboardingRoute Params

| Property | Type                                                    |
| -------- | ------------------------------------------------------- |
| `appId`  | (Optional)
  `string | undefined`

  The id of the app. |

### PaymentDetailsRoute

| Property    | Type                                                                                                                                                   |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`      | (Required)
  `"paymentDetails"`                                                                                                                        |
| `params`    | (Required)
  `Params`

  Related types: [Params](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#paymentdetailsroute-params). |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop.                 |

### PaymentDetailsRoute Params

| Property    | Type                                            |
| ----------- | ----------------------------------------------- |
| `paymentId` | (Required)
  `string`

  The id of the payment. |

### PaymentReviewDetailsRoute

| Property    | Type                                                                                                                                                         |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`      | (Required)
  `"paymentReviewDetails"`                                                                                                                        |
| `params`    | (Required)
  `Params`

  Related types: [Params](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#paymentreviewdetailsroute-params). |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop.                       |

### PaymentReviewDetailsRoute Params

| Property    | Type                                            |
| ----------- | ----------------------------------------------- |
| `paymentId` | (Required)
  `string`

  The id of the payment. |

### PaymentsRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"payments"`                                                                                                              |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### ProductDetailsRoute

| Property    | Type                                                                                                                                                   |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `name`      | (Required)
  `"productDetails"`                                                                                                                        |
| `params`    | (Required)
  `Params`

  Related types: [Params](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#productdetailsroute-params). |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop.                 |

### ProductDetailsRoute Params

| Property    | Type                                            |
| ----------- | ----------------------------------------------- |
| `productId` | (Required)
  `string`

  The id of the product. |

### ProductsRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"products"`                                                                                                              |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### ReportsHubRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"reportsHub"`                                                                                                            |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### RevenueRecognitionRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"revenueRecognition"`                                                                                                    |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### ShippingRateDetailsRoute

| Property    | Type                                                                                                                                                        |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"shippingRateDetails"`                                                                                                                        |
| `params`    | (Required)
  `Params`

  Related types: [Params](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#shippingratedetailsroute-params). |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop.                      |

### ShippingRateDetailsRoute Params

| Property         | Type                                                  |
| ---------------- | ----------------------------------------------------- |
| `shippingRateId` | (Required)
  `string`

  The id of the shipping rate. |

### ShippingRatesRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"shippingRates"`                                                                                                         |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### SubscriptionDetailsRoute

| Property    | Type                                                                                                                                                        |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"subscriptionDetails"`                                                                                                                        |
| `params`    | (Required)
  `Params`

  Related types: [Params](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#subscriptiondetailsroute-params). |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop.                      |

### SubscriptionDetailsRoute Params

| Property         | Type                                                 |
| ---------------- | ---------------------------------------------------- |
| `subscriptionId` | (Required)
  `string`

  The id of the subscription. |

### SubscriptionsRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"subscriptions"`                                                                                                         |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### TaxReportingLocationsRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"taxReportingLocations"`                                                                                                 |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### TaxReportingRoute

| Property    | Type                                                                                                                                   |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `name`      | (Required)
  `"taxReporting"`                                                                                                          |
| `envParams` | (Optional)
  `{     [x: string]: string; } | undefined`

  Query params that are passed to Extension views via the `environment` prop. |

### DetailPageModuleEvent

| Property  | Type                                                          |
| --------- | ------------------------------------------------------------- |
| `label`   | (Required)
  `string`

  The label of the action.             |
| `onPress` | (Required)
  `() => void`

  An event handler for the action. |
| `type`    | (Required)
  `"action"`

  The type of the action.            |

### DetailPageModuleActionLegacy

| Property  | Type                                                          |
| --------- | ------------------------------------------------------------- |
| `label`   | (Required)
  `string`

  The label of the action.             |
| `onPress` | (Required)
  `() => void`

  An event handler for the action. |

### DetailPagePropertyListItem

| Property      | Type                                                                                                                                                                                                                                                                                                                                                                           |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `label`       | (Required)
  `string`

  The label of the property.                                                                                                                                                                                                                                                                                                                            |
| `values`      | (Required)
  `Array<Values>`

  The values of the property.

  Related types: [Values](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagepropertylistitem-values).

  Related types: [DetailPageModulePropertyListItemValue](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemodulepropertylistitemvalue). |
| `description` | (Optional)
  `string | undefined`

  The description of the property.                                                                                                                                                                                                                                                                                                          |

### DetailPagePropertyListItem Values

| Property | Type                                                                                                                                                                                                                                                                       |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `label`  | (Optional)
  `DetailPageModulePropertyListItemValue | undefined`

  The label of the value.

  Related types: [DetailPageModulePropertyListItemValue](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemodulepropertylistitemvalue).     |
| `value`  | (Optional)
  `DetailPageModulePropertyListItemValue | undefined`

  The sub-value of the value.

  Related types: [DetailPageModulePropertyListItemValue](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemodulepropertylistitemvalue). |

### DetailPageModulePropertyListItemValue

| Property | Type                                                                                                                                                                                                                       |
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `action` | (Optional)
  `Action | undefined`

  An action to display in the value.

  Related types: [Action](https://docs.stripe.com/stripe-apps/components/detailpagepropertylist.md#detailpagemodulepropertylistitemvalue-action). |
| `text`   | (Optional)
  `string | undefined`

  The label of the value.                                                                                                                                                               |

### DetailPageModulePropertyListItemValue Action

| Property  | Type                                                                               |
| --------- | ---------------------------------------------------------------------------------- |
| `onPress` | (Required)
  `() => void`

  An event handler for when the user clicks the action. |
| `title`   | (Required)
  `string`

  The title of the action.                                  |


## See also

- [Design patterns to follow](https://docs.stripe.com/stripe-apps/patterns.md)
- [Style your app](https://docs.stripe.com/stripe-apps/style.md)
- [UI testing](https://docs.stripe.com/stripe-apps/ui-testing.md)
