Loading...
Loading...
A Holding in Quiltt represents an investment position such as a stock, bond, ETF, or mutual fund held in an investment account.
Quiltt provides holdings at two levels:
holdings query.account.holdings.| Aspect | Profile Level (Holding) | Account Level (AccountHolding) |
|---|---|---|
| Access | holdings query | account.holdings |
| ID format | hld_... | achld_... |
| Scope | All investment accounts | Single account |
| Data source | System-calculated roll-up | Provider remote data |
| Remote data | Not available | Available |
Use the holdings query when you want:
Use account-level holdings (account.holdings) when you want:
Use the holdings query to fetch aggregated positions across all investment
accounts belonging to the Profile. This provides a consolidated portfolio view.
query GetHoldings {
holdings {
nodes {
id
quantity
price
value
costBasis
at
security {
id
name
ticker
type
}
}
}
}
{
"data": {
"holdings": {
"nodes": [
{
"id": "hld_12xBsJKrI455PNcaCkqpGk",
"quantity": 250.75,
"price": 178.32,
"value": 44713.74,
"costBasis": 38542.50,
"at": "2024-06-09T12:34:56Z",
"security": {
"id": "sec_12xBsJKrI455PNcaCkqpGj",
"name": "Apple Inc.",
"ticker": "AAPL",
"type": "EQUITY"
}
}
]
}
}
}
Profile-level holdings are calculated after each sync completes and the profile.ready event is fired. When you own the same investment across multiple
accounts, positions are combined:
Account-level holdings are available through Accounts. Use account.holdings
when you need positions for a specific investment account, including access to provider-specific remote data.
query GetAccountHoldings {
account(id: "acct_12tgD1YP33AwEvbdmSrcRY") {
id
name
holdings {
nodes {
id
quantity
price
value
costBasis
at
security {
id
name
ticker
type
}
}
}
}
}
{
"data": {
"account": {
"id": "acct_12tgD1YP33AwEvbdmSrcRY",
"name": "Individual Brokerage",
"holdings": {
"nodes": [
{
"id": "achld_12xBsJKrI455PNcaCkqpGh",
"quantity": 150.5,
"price": 178.32,
"value": 26837.16,
"costBasis": 22542.00,
"at": "2024-06-09T12:34:56Z",
"security": {
"id": "sec_12xBsJKrI455PNcaCkqpGj",
"name": "Apple Inc.",
"ticker": "AAPL",
"type": "EQUITY"
}
}
]
}
}
}
}
Account-level holdings include raw provider data via the remoteData field:
query AccountHoldingRemoteData {
account(id: "acct_12tgD1YP33AwEvbdmSrcRY") {
holdings {
nodes {
id
remoteData {
plaid {
holding {
response {
security_id
latest_price
}
}
}
}
}
}
}
}
Holdings data is only available for accounts that contain investment positions (e.g., brokerage, IRA, 401k). If your test profile only has checking or savings accounts, holdings queries will return empty results. Use the profiles below with Finicity (Mastercard) to test with investment data.
These profiles only work in the Sandbox environment. See the Connections guide for details on creating test connections.
These personas represent complete user profiles with investment accounts. Connect through FinBank Profiles A or FinBank Profiles B.
| Persona | Username | Password | Investment Account Types |
|---|---|---|---|
| Sue Wealthy | sue_wealthy | profile_700 | IRA, Brokerage |
| Alex Student | alex_student | profile_704 | Investment Account |
For a full list of test profiles including additional bank account profiles with specific investment account types (IRAs, 401ks, brokerage, etc.), refer to the Mastercard Test APIs documentation.