Skip to main content
POST
Validate uploaded paper portfolio import

Authorizations

Authorization
string
header
required

Itoflow access token issued for the Itoflow API.

Body

application/json

Approved portfolio upload import request for a managed paper portfolio.

draft
object
required

User-approved edited draft to import as a managed paper portfolio.

output_id
string
required

Stable portfolio_import output id for idempotency.

Required string length: 1 - 240
approval_token
string

Signed approval token returned by import preflight for the approved draft.

Required string length: 1 - 4000
draft_file
object

Optional draft.json file reference used for auditability.

Response

Portfolio import validation result. An unvalued holding makes book_summary NAV and all weights null, with valuation_unavailable_reason.

Successful portfolio import preflight response.

allocated_amount_usd
string
required

USD capital allocated from cash and holdings with a current USD valuation. If valuation_coverage is partial, this excludes unvalued holdings and is not the complete portfolio market value.

Minimum string length: 1
approval_token
string
required

Signed token authorizing import of the currently validated draft.

Minimum string length: 1
execution_mode
enum<string>
required

Execution mode that will be used by import.

Available options:
paper
holding_prices
object[]
required

Provider current prices resolved during preflight for display in the review UI. Inspect valuation_coverage and unvalued_holding_row_ids before treating allocated_amount_usd as a complete value.

imported_cash_count
integer
required

Count of included cash rows accepted by preflight.

Required range: x >= 0
imported_holding_count
integer
required

Count of included holding rows accepted by preflight.

Required range: x >= 0
ok
enum<boolean>
required

True when preflight succeeded.

Available options:
true
portfolio_type
enum<string>
required

Portfolio type that will be created by import.

Available options:
managed
source_broker
enum<string> | null
required

Broker metadata accepted from the draft, or null when absent.

Available options:
trading212,
robinhood,
zerodha,
alpaca,
ibkr,
other,
null
unvalued_holding_row_ids
string[]
required

Included holding row ids without a current USD value. Review these rows before approving a partial valuation. Empty for complete or not_rechecked coverage.

valuation_coverage
enum<string>
required

complete means every included holding has a current USD value; partial means some included holdings are unvalued; not_rechecked is an idempotent preflight for an already imported portfolio.

Available options:
complete,
partial,
not_rechecked
book_summary
object

Long, short, gross, and net exposure. Cash counts only in NAV. An unvalued holding makes its leg, gross value, net value, NAV and all weights null, with valuation_unavailable_reason.

normalized_draft
object

Provider-verified draft used to create the approval token, including exact symbol, currency, and quote-unit metadata resolved during preflight.

portfolio_value
object

Reviewed value provenance and its difference from the current provider mark, when comparable.

row_warnings
object[]

Per-holding valuation warnings with row_id. Price warnings use field price: price_not_fetched means the vendor did not answer; no_recent_close means no usable close in the last 14 days. holding_fx_unavailable uses field currency and names the missing exchange rate to USD. Warnings do not block confirmation.