--- title: "How do I create a transaction portfolio?" slug: "how-do-i-create-a-transaction-portfolio" tags: ["transaction portfolio"] updated: 2025-07-30T12:10:06Z published: 2025-07-30T12:10:06Z canonical: "support.lusid.com/how-do-i-create-a-transaction-portfolio" --- > ## Documentation Index > Fetch the complete documentation index at: https://support.lusid.com/llms.txt > Use this file to discover all available pages before exploring further. # How do I create a transaction portfolio? You can create a [transaction portfolio](/v1/docs/what-is-a-transaction-portfolio) to build holdings (positions) in an underlying set of instruments. > **Note**: Once created, you can only change certain characteristics of a transaction portfolio in restricted circumstances. [More information](/v1/docs/updating-certain-characteristics-of-an-existing-portfolio). To create a transaction portfolio, you must specify a unique identifier, friendly name and base (or reporting) currency. You can optionally: - Specify a [creation date](/v1/docs/understanding-the-importance-of-portfolio-creation-date) prior to today (the default). This is important if you intend to load historical activity. - Register an [instrument scope](/v1/docs/understanding-instrument-scopes) in order to resolve transactions to instruments mastered in that scope, before [falling back](/v1/docs/what-is-a-scope#fallback-behaviour-for-hierarchies-of-scopes) to the `default` instrument scope. - Register a [transaction type scope](/v1/docs/grouping-related-transaction-types-using-scopes-and-sources) in order to resolve transactions to transaction types domiciled in that scope. Note LUSID does not fall back to searching the `default` transaction type scope. Only if omitted does LUSID search the `default` scope. - Register one or more [sub-holding keys](/v1/docs/how-do-i-register-sub-holding-keys-shks-with-a-portfolio) (SHKs) in order to split holdings into categories. By default, LUSID generates one holding per instrument per settlement currency. - Register a [portfolio recipe](/v1/docs/setting-a-portfolio-recipe). Note this is required in certain circumstances, such as to enable instrument events. - Register a [transaction template scope](/v1/docs/how-do-i-create-a-custom-transaction-template) in order to configure the process of handling instrument events, before falling back to the `default` transaction template scope. - Subscribe to a [corporate action source](/v1/docs/corporate-actions) containing corporate actions impacting underlying instruments held in the portfolio. - Change the default `AverageCost` accounting method to one of the [supported tax lot accounting methods](/v1/docs/what-are-the-supported-tax-lot-accounting-methods-in-lusid). - Register a [tax ruleset scope](/v1/docs/tax-calculations) to enable LUSID to calculate tax amounts for matching calculations. - If the portfolio contains bond holdings, change the default `NoAmortisation` method to one of the [supported amortisation methods](/v1/docs/how-does-lusid-calculate-amortisation-and-accretion). - Add [custom properties](/v1/docs/properties) to store additional information about the portfolio not recorded by the standard set of data fields. These properties must be from the `Portfolio` domain. To examine the complete set of data fields for a transaction portfolio, examine the [API documentation](https://www.lusid.com/docs/api#operation/CreatePortfolio). Note that to subsequently interact you can use the APIs in the `Portfolios` collection as well as the `Transaction Portfolios` collection. ## Using the LUSID REST API Call the [CreatePortfolio](https://www.lusid.com/docs/api/lusid/endpoints/transaction-portfolios/CreatePortfolio/) API, nominating a scope in the URL and specifying in the request body: - A `displayName`. - A `code` unique within the scope. - A `baseCurrency` to which foreign currency transactions can be normalised upon provision of a trade to portfolio rate. This must be an ISO 4217 currency code, for example `GBP` or `JPY`. - Optionally, any of the objects explained above. For example, to create a GBP-denominated portfolio with a code of `Income` and a creation date at the start of 2023 in `myportfolioscope` (specified in the URL; this is created if it does not exist): ```json curl -X POST 'https://.lusid.com/api/api/transactionportfolios/myportfolioscope' -H 'Authorization: Bearer ' -H 'Content-Type: application/json-patch+json' -d '{  "displayName": "Portfolio UK",  "description": "Portfolio for UK market",  "code": "my-portfolio-code",  "created": "2023-01-01T00:00:00.0000000+00:00",  "baseCurrency": "GBP",  "corporateActionSourceId": {    "scope": "my-cas-scope",    "code": "my-cas-code"  },  "accountingMethod": "FirstInFirstOut",  "subHoldingKeys": ["Transaction/Strategy/Signal"],  "properties": {    "Portfolio/Manager/Name": {      "key": "Portfolio/Manager/Name",      "value": {        "labelValue": "Matt Smith"      }    }  },  "instrumentScopes": ["my-instr-scope"],  "amortisationMethod": "StraightLine",  "transactionTypeScope": "my-type-scope",  "instrumentEventConfiguration": {    "transactionTemplateScopes": ["my-template-scope"],    "recipeId": {      "scope": "my-recipe-scope",      "code": "my-recipe-code"    }  },  "taxRuleSetScope": "my-taxruleset-scope" }' ``` Note the response does not contain all the fields, so call the [GetDetails](https://www.lusid.com/docs/api#operation/GetDetails) API to confirm the transaction portfolio has been created as specified, for example: ```json {  "originPortfolioId": {    "scope": "myportfolioscope",    "code": "my-portfolio-code"  },  "baseCurrency": "GBP",  "corporateActionSourceId": {    "scope": "my-cas-scope",    "code": "my-cas-code"  },  "subHoldingKeys": [    "Transaction/Strategy/Signal"  ],  "instrumentScopes": [    "my-instr-scope"  ],  "accountingMethod": "FirstInFirstOut",  "amortisationMethod": "StraightLine",  "transactionTypeScope": "my-type-scope",  "cashGainLossCalculationDate": "Default",  "instrumentEventConfiguration": {    "transactionTemplateScopes": [      "my-template-scope"    ],    "recipeId": {      "scope": "my-recipe-scope",      "code": "my-recipe-code"    }  },  "taxRuleSetScope": "my-taxruleset-scope"  ... } ``` ## Using Luminesce You can use the [Lusid.Portfolio.Writer](/v1/docs/lusidportfoliowriter) provider. ## Using the LUSID web app 1. Sign in to the [LUSID web app](https://www.lusid.com/app) using the credentials of a LUSID administrator. 2. From the top left menu, select **Data Management > Portfolios**. 3. Click the **Create Portfolio** button (top right). 4. On the **Basic data** screen of the **Create Portfolio** dialog, choose `Transaction` from the **Type** dropdown menu, and specify a **Scope**, **Code** and **Effective date**: ![](https://cdn.document360.io/d575ad81-c0ed-4980-bbd1-d59ac5c3de82/Images/Documentation/48b83b22-b187-42de-9236-aaf8623e4598.png?sv=2026-02-06&spr=https&st=2026-11-04T02%3A02%3A16Z&se=2026-11-04T03%3A02%3A16Z&sr=c&sp=r&sig=vSh%2FsYxfRu%2Fbf3Fm1kq4db0vLJkV41BkpRi1urAnEkc%3D) 5. On the **Details** screen, specify a **Base currency** using an ISO 4217 currency code, for example `GBP` or `JPY`. 6. Complete the other optional fields if desired and click the **Create** button.