--- title: "Payout components" description: "Use Platform Experience components to build interactive dashboards for your users." url: "https://docs.adyen.com/platforms/components-overview/after-payment/payouts-component" source_url: "https://docs.adyen.com/platforms/components-overview/after-payment/payouts-component.md" canonical: "https://docs.adyen.com/platforms/components-overview/after-payment/payouts-component" last_modified: "2026-09-15T14:06:03+02:00" language: "en" --- # Payout components Use Platform Experience components to build interactive dashboards for your users. ##### Learn more  [View our repository on GitHub](https://github.com/Adyen/adyen-platform-experience-web)  [Try it out with a live demo](https://demotool.adyen.com/se/pie/platform-tx)  [Explore the latest updates](/release-notes/platforms-and-financial-products) The payout components enable payout reporting within a portal's user interface (UI) with minimal engineering effort. These components integrate all the features required to view completed payouts without making multiple API requests. This removes the need to implement complex API calls to calculate net payouts, monitor adjustments, or retrieve remaining balances, as the components handle these processes automatically. Additionally, the components provide greater flexibility for data customization. These components can be customized with your own custom fields, icons, links, and buttons, allowing the UI to align with your specific business needs.\ This page provides guidance on: * The available payout component includes the **Payout Overview** component and the **Payout Details** component. * A standard user flow that these components cover. * Functionalities such as filtering by balance account, viewing captured funds and adjustments, and tracking net amounts. The guidance and features available may differ based on the library version in use. We recommend using the latest library version to take advantage of the newest features and improvements. Ensure you select a version in the next section before starting your integration. ## Payout components Use Platform Experience components to build interactive dashboards for your users. ## Requirements Before you begin, take into account the following requirements, limitations, and preparations. | Requirement | Description | | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Integration type** | You must have the Adyen for Platforms integration. | | **API credentials** | You must have a [Balance Platform API key](/marketplaces/manage-access/api-credentials-web-service?tab=create-ws_1) (for example, **ws\[\_123456]@BalancePlatform.****\[YourBalancePlatform]**) to access the [Session authentication API](https://docs.adyen.com/api-explorer/sessionauthentication/latest/overview). Ensure that you have asked your Adyen contact to assign the following role to your API credential:- **Payouts Overview Component: View** | | **Limitations** | The Payout report relies on the [Balance Platform Payout report](/platforms/reports-and-fees/payout-report/). The Payout report has several limitations.- It is designed for platforms using [automatic payouts](/marketplaces/custom-payouts/scheduled-payouts) with a default [settlement delay](/platforms/settle-funds/#settlement-delay). - It does not support manual payouts, pass-through payouts, or sales day payout T+0. | | **Setup steps** | Before you begin:- Verify that the component is available in the languages that apply to your situation. - Set up the Balance Platform Payout report to be generated, see [Balance Platform Payout report](/platforms/reports-and-fees/payout-report/) to learn more. - Check our [Component libraries](/marketplaces/components-overview) page for additional information on the supported countries/regions and browser versions. | ### Component Description ## Payouts Overview component The **Payouts Overview** component shows a list of automatic payouts completed for a specific balance account within a specified time period. Each payout record includes details such as the date and time, funds captured, total adjustments, and net payout. Additionally, the component allows for custom data integration, such as your own fields, icons, links, and buttons. The funds captured represent the initial amount in the balance account on the day when a payout is initiated. This amount may be adjusted due to factors like fees, commissions, refunds, business financing, or internal funds transfers. The component presents these adjustments in an aggregated view. If you need to provide your users with a detailed breakdown of the payout adjustments, refer to the **Payout Details** component. After being adjusted, the funds captured amount results in the net payout amount, which is the final amount credited to the user's bank account. All amounts are shown in the currency of the chosen balance account. The following tabs illustrate how the component appears on various screen sizes. ### Tab: Mobile [](/user/pages/filters/pe-components-dashboards/payouts/1-4-0/component-description/payouts-overview-mobile.svg) ### Tab: Desktop [](/user/pages/filters/pe-components-dashboards/payouts/1-4-0/component-description/payouts-overview-desktop.svg) The **Payouts Overview** component enables users to: * View a list of automatic payouts completed for a balance account, including funds captured, adjustments, and net payout amounts per payout. * Filter payouts by time period and balance account (if applicable). See the [available filters](#available-filters) for more details. By default, the **Payouts Overview** component includes the [**Payout Details** ](#payout-details-component)component, which provides more details about a specific payout. ### Available filters The following sections shows the available filters and their values for the **Payouts Overview** component. ** #### Balance account Users with multiple balance accounts can switch between them using the **Balance Account** filter. ** #### Time period The **Time period** filter specifies the date and time range for showing payout records. The specified time is based on the UTC+0 time zone. | Filter value | Description | | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **Last 7 days** | Includes payouts from the previous six days and from today until the current time. For example, if today is a Tuesday and the time is 8:00 PM, payouts from the previous Wednesday midnight until this Tuesday 8:00 PM are included. | | **This week** | Includes payouts for the current week, starting from Monday midnight until the present moment. | | **Last week** | Includes payouts from Monday midnight to Sunday 11:59:59 PM of the previous week. | | **Last 30 days** | The default setting. Includes payouts from the previous 29 days and from today until the current time. | | **This month** | Includes payouts for the current month, starting from the first day of the month until today's date. | | **Last month** | Includes payouts from the previous month, starting from the first day of the month until the end of the month at 11:59:59 PM. | | **Year to date** | Includes payouts from the first day of the current year up until today's date. | | **Custom** | Allows setting a custom time period. | ## Payout Details component The **Payout Details** component shows specific information about a payout, including the date and time, breakdown of captured funds and adjustments, and the net payout amount. If there are any remaining funds in the balance account after the payout is completed, they will also be shown in the component. Additionally, the component allows for custom data integration, such as your own fields, icons, links, and buttons. By default, the **Payout Details** component is embedded in the **Payouts Overview** component and is shown as a modal window on the overview page. You can also choose to show the **Payout Details** component on a separate page during the [initialization of the components](##initialize-components). The following tabs illustrate how the component appears on various screen sizes. ### Tab: Mobile [](/user/pages/filters/pe-components-dashboards/payouts/1-4-0/component-description/payout-details-mobile.svg) ### Tab: Desktop [](/user/pages/filters/pe-components-dashboards/payouts/1-4-0/component-description/payout-details-desktop.svg) ## How it works The integration of components involves both server-side and client-side processes. You can find more details on the [component libraries](#see-also) page. ### Integration steps Follow these steps to integrate the component(s): 1. [Create an authentication session from your server](#create-token) 2. [Install component library in your front end](#install-library) 3. [Initialize components](#initialize-components) 4. [Optional: Localize components](#localize-components) 5. [Optional: Customize component appearance](#customize-appearance) 6. [Optional: Customize component data](#customize-data) ### Create A Session ## 1. Create an authentication session from your server To ensure secure communication between components and Adyen server, you must configure your server for authentication and create a session token. To create the token: 1. From your server, make a POST [/sessions](https://docs.adyen.com/api-explorer/sessionauthentication/latest/post/sessions) request specifying the following parameters: To make this API request, your API key must have the **Payouts Overview Component: View** role in your Customer Area. For more information, refer to the [Requirements](#requirements) section. | Parameter | Required | Description | | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [allowOrigin](https://docs.adyen.com/api-explorer/sessionauthentication/latest/post/sessions#request-allowOrigin) |  | The URL where the component will appear. Must follow the format of `https://www.yourcompany.com` or `https://*.yourcompany.com`, where `yourcompany.com` is the actual web address of your marketplace. On live, only the HTTPS protocol is supported. | | [policy](https://docs.adyen.com/api-explorer/sessionauthentication/latest/post/sessions#request-policy) |  | An object that contains:- [resources](https://docs.adyen.com/api-explorer/sessionauthentication/latest/post/sessions#request-policy-resources): An object that contains: * `accountHolderId`: The unique identifier of the account holder that is linked to the balance account shown in the component. * [type](https://docs.adyen.com/api-explorer/sessionauthentication/latest/post/sessions#request-policy-resources-type): The type of resource. Set this to **accountHolder**. - [roles](https://docs.adyen.com/api-explorer/sessionauthentication/latest/post/sessions#request-policy-roles): The role required to use the component. Set this to **Payouts Overview Component: View**. | | [product](https://docs.adyen.com/api-explorer/sessionauthentication/latest/post/sessions#request-product) |  | The type of product the component belongs to. Set this to **platform**. | Here is an example request for creating a session token. **Create a session token** ```bash curl https://test.adyen.com/authe/api/v1/sessions \ -H 'content-type: application/json' \ -H 'x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY' \ -d '{ "allowOrigin":"YOUR_DOMAIN", "product":"platform", "policy": { "resources": [ { "accountHolderId": "AH00000000000000000000001", "type": "accountHolder" } ], "roles": [ "Payouts Overview Component: View" ] } }' ``` 2. Note the API response. Later, when [initializing the components](#initialize-components), you need to create and call a function that passes the entire session object from the response to your front end. **Session token created** ```json { "id": "EC1234-1234-1234-1234", "token": "xxxxx.yyyyy.zzzzzz" } ``` ### Install Component Library ## 2. Install component library in your front end Use the Adyen Web npm package, or embed the Adyen Platform Experience script and stylesheet into your HTML file: ### Tab: npm (recommended) Install the **Adyen Platform Experience** library in your front-end application as follows: 1. Install the npm package. ```bash npm install @adyen/adyen-platform-experience-web ``` 2. Import the library, the components, and the style sheet. ```bash import { AdyenPlatformExperience, component_name } from '@adyen/adyen-platform-experience-web'; import "@adyen/adyen-platform-experience-web/adyen-platform-experience-web.css"; ``` ### Tab: Embed script and stylesheet Use the `integrity` attribute so browsers can verify that the script and stylesheet have not been changed unexpectedly. The value of the `integrity` attribute is the [Subresource Integrity (SRI) hash](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) which Adyen provides for each version of the Adyen Web JavaScript and CSS files. Get the SRI hashes from the [release notes](/release-notes/platforms-and-financial-products) for the Platform Experience components, under **Updating to this version**. **embed-script-stylesheet.html** ```html ``` ### Initialize Components ## 3. Initialize components To initialize the components: 1. Gather the following information to be passed when initializing the library and its components. 1. Gather these parameters to initialize the library. | Parameter | Required | Description | | --------------------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `availableTranslations`Deprecated | | **Deprecated.** This field is no longer needed because locales are now dynamically loaded on demand via CDN. Setting this field will trigger a deprecation warning. An array containing the names of the imported locale files used for localizing the components. For example, `[es_ES, nl_NL, fr_FR]`. | | `environment` | | Specifies the environment for the component integration. The default value is **test**. Set the parameter to **live** when you are ready to go live. | | `locale` | | Specifies the locale code, which determines the desired language of the components. This code must correspond to a [supported language](#supported-languages). For example, use **es-ES** for Spanish. | | `onSessionCreate` |  | The callback function that retrieves an authentication session token and refreshes the current session. | 2. Gather these parameters to initialize each component. Select the tab for the component you want to use: ### Tab: Payouts Overview component | Parameter | Required | Description | | --------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `allowLimitSelection` | | Determines whether the user can change the number of payouts shown per page. Default value: **true**. | | `core` |  | The instance of the library. | | `dataCustomization` | | An object that contains both the `list` and `details` objects, which include [customization specifications](#customize-data) for dashboard fields, allowing for additional data integration from your database. | | `onRecordSelection` | | If defined, the event allows obtaining the payout date and the corresponding balance account ID when the user selects a specific payout from the overview. You can use the obtained values to show the **Payout Details** component in a different location within your portal's UI, outside the **Payouts Overview** component. | | `preferredLimit` | | The number of payouts shown per page. Default value: **10**. | ### Tab: Payout Details component | Parameter | Required | Description | | ------------------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `core` |  | The instance of the library. | | `dataCustomization` | | An object that contains the `details` object, which include [customization specifications](#customize-data) for dashboard fields, allowing for additional data integration from your database. | | `date` |  | The payout date in an [ISO format](https://www.iso.org/iso-8601-date-and-time-format.html). | | `id` |  | The unique identifier of the balance account. | 2. Create a DOM element on your portal's UI page where you want the component to be rendered. Assign the element a unique and descriptive ID. This unique ID is important to avoid any misconfigurations when integrating multiple components into your portal's UI. By default, the **Payout Details** component is shown as a modal window within the **Payouts Overview** component. In this scenario, you only need to create a DOM element for the **Payouts Overview** component. If you want to use the **Payout Details** component on its own, you need to create a separate DOM element for it. If you are using JavaScript frameworks such as Vue or React, make sure that you use references instead of selectors and that you do not re-render the DOM element. Select the tab for the component you want to use: ### Tab: Payouts Overview component **Create DOM element** ```html
``` ### Tab: Payout Details component **Create DOM element** ```html ``` 3. Add a function that [calls your API](#create-token) to retrieve and refresh an authentication session token. The following code, including the role, is the same for both payout components. **Add function to retrieve and refresh an authentication session token** ```bash async function handleSessionCreate() { const response = await fetch('YOUR_IMPLEMENTATION_OF_CREATE_SESSION_ENDPOINT'); return response.json(); } ``` 4. Initialize the component and mount it to the container you created. Be sure to include the function for retrieving and refreshing the session token that you added in the previous step. To implement the **Payout Details** component as a modal window within the **Payouts Overview** component, use the following code examples. In this implementation, when the user selects a specific payout from the overview page, the payout date and the corresponding balance account ID are automatically passed to the **Payout Details** component, and the modal window opens. Select the tab for the component you want to use: ### Tab: Payouts Overview component **Initialize library and create component** ```javascript import { AdyenPlatformExperience, PayoutsOverview } from '@adyen/adyen-platform-experience-web'; import "@adyen/adyen-platform-experience-web/adyen-platform-experience-web.css"; const core = await AdyenPlatformExperience({ onSessionCreate: handleSessionCreate, }); const payoutsOverview = new PayoutsOverview({ core }); payoutsOverview.mount('#payouts-overview-container'); ``` ### Tab: Payout Details component **Initialize library and create component** ```javascript import { AdyenPlatformExperience, PayoutDetails } from '@adyen/adyen-platform-experience-web'; import "@adyen/adyen-platform-experience-web/adyen-platform-experience-web.css"; const core = await AdyenPlatformExperience({ onSessionCreate: handleSessionCreate, }); const payoutDetails = new PayoutDetails({ core, id: 'BA00000000000000000000001' date: '2024-12-31T00:00:00.135Z' }); payoutDetails.mount('#payout-details-container'); ``` 5. To use the **Payout Details** component outside of the **Payouts Overview** component: 1. Define the `onRecordSelection` callback. **Define onRecordSelection callback** ```javascript const payoutsOverview = new PayoutsOverview({ core, onRecordSelection: ({ balanceAccountId, date }) => { // Use selected payout balance account id and date. } }); ``` 2. Initialize the **Payout Details** component using the `id` and the `date` from the object argument as shown below. **Link to the selected record** ```javascript const payoutDetails = new PayoutDetails({ core, id: '