semt.001 — Statement of Securities Holdings
The historical securities-positions statement. Original ISO 20022 format for the holdings statement, now in coexistence with its descendants semt.002 (Custody Statement) and semt.003 (Accounting Statement) more precise for each business role.
Purpose and place in the flow
semt.001 is the general statement of an account's securities positions. It lists for each held ISIN:
- The quantity (face amount for bonds, units for equities).
- The reference price (clean price or yield).
- The currency and the FX rate used for valuation.
The statement is a snapshot at a given moment (typically end-of-day or end-of-month). Variable periodicity: daily, weekly, monthly per custody contract. semt.001 does not carry movements; for those, see semt.017 or semt.018.
XML structure
- Id — unique statement identifier.
- StmtGnlDtls — statement metadata: date, sequence number, update type.
- AcctOwnr — Account Owner (BIC).
- SfkpgAcct — Safekeeping Account identifier.
- BalForFinInstrm (repeating) — balance per instrument: ISIN, aggregated quantity, price, FX.
Key fields
StmtGnlDtls/StmtDtTm/Dt— statement closing date.StmtGnlDtls/RptNb— sequential number to detect missing statements.StmtGnlDtls/StmtUpdTp/Cd— COMP (complete), DELT (delta), REPL (replacement).BalForFinInstrm/AggtBal/Qty/UnitorFaceAmt— quantity.BalForFinInstrm/PricDtls/Pric/Val/Amt— valuation price.
XML example
End-of-May 2026 BNP Paribas statement at its custodian. One position: 5M€ nominal on OAT 2032 at 96.00:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:semt.001.001.04">
<SctiesHldgsStmt>
<Id>STMT-20260531-BNPP-001</Id>
<StmtGnlDtls>
<StmtDtTm>
<Dt>2026-05-31</Dt>
</StmtDtTm>
<RptNb>5</RptNb>
<StmtUpdTp>
<Cd>COMP</Cd>
</StmtUpdTp>
<ActvtyInd>true</ActvtyInd>
</StmtGnlDtls>
<AcctOwnr>
<Id>
<AnyBIC>
<AnyBIC>BNPAFRPP</AnyBIC>
</AnyBIC>
</Id>
</AcctOwnr>
<SfkpgAcct>
<Id>BNPPSAFEKEEP-EUR-001</Id>
</SfkpgAcct>
<BalForFinInstrm>
<FinInstrmId>
<ISIN>FR0014007T87</ISIN>
<Desc>OAT 0,50% 05/2032</Desc>
</FinInstrmId>
<AggtBal>
<FaceAmt Ccy="EUR">5000000.00</FaceAmt>
</AggtBal>
<PricDtls>
<Ccy>EUR</Ccy>
<Pric>
<Tp><Yldd>false</Yldd></Tp>
<Val><Amt Ccy="EUR">96.00</Amt></Val>
</Pric>
</PricDtls>
<FXDtls>
<UnitCcy>EUR</UnitCcy>
<QtdCcy>EUR</QtdCcy>
<XchgRate>1.0</XchgRate>
</FXDtls>
</BalForFinInstrm>
</SctiesHldgsStmt>
</Document> StmtUpdTp/Cd = COMP— complete statement (vs incremental).RptNb = 5— fifth sequential number of the month.ActvtyInd = true— there was activity since the previous statement.BalForFinInstrm/FaceAmt = 5000000EUR — 5M€ nominal held.
Common pitfalls
- RptNb missing or non-sequential — without a number, impossible to detect missing statements (network incidents, etc.). Always respect incrementation.
- COMP vs DELT confusion — a DELT (delta) without prior COMP is unusable. The recipient must have a baseline.
- Missing pricing — a BalForFinInstrm without PricDtls blocks NAV valuation. Always provide a price (clean or dirty, but consistent across the message).
- Missing FX for multi-currency positions — for ISINs listed in a different currency than the account, FXDtls mandatory for conversion.
- semt.001 vs semt.002/003 confusion — semt.001 = generic, semt.002 = custody, semt.003 = accounting. For new flows, prefer the precise business version.