semt.002 — Custody Statement of Holdings
The custody-side positions statement. Optimised for reconciliation of safekeeping accounts, it splits each ISIN by sub-compartment (available, blocked, repo…) — the real physical snapshot of held securities.
Purpose and place in the flow
semt.002 is the custody-specialised statement of holdings. Compared to the generic semt.001, it adds:
- A sub-balance breakdown (SubBalTp): AVAI (available), BLCK (blocked), PEND (pending), RSTR (restricted), COLL (collateral).
- The account type (SfkpgAcct/Tp): SEGR (segregated), OMNI (omnibus), SUSP (suspense).
- Custody-specific information: SSI, sub-custodian, account servicer.
It's the reference format for custodian reconciliation engines (Omgeo CTM, SmartStream TLM, Calypso reconciliation). Issued daily (EOD) or streaming per service agreement.
XML structure
- Id — unique identifier.
- StmtGnlDtls — metadata.
- AcctOwnr / SfkpgAcct — owner and account with type.
- BalForFinInstrm (repeating) — per ISIN, with AggtBal (total) and SubBalTp (sub-balance breakdown).
Key fields
SfkpgAcct/Tp/Cd— SEGR (segregated), OMNI (omnibus).BalForFinInstrm/AggtBal/FaceAmtorQty/Unit— total quantity.BalForFinInstrm/SubBalTp/SubBalQty/SubBalTp/Cd— AVAI, BLCK, PEND, RSTR, COLL.BalForFinInstrm/SubBalTp/SubBalQty/AddtlSubBalInf— narrative (collateral reference, suspense, etc.).
XML example
BNP Paribas custody statement on 31 May 2026. 5M€ OAT 2032 position split: 4.92M€ available, 80k€ blocked for CSA-2024-001 collateral:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:semt.002.001.11">
<CtdyStmtOfHldgs>
<Id>CST-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>
<Tp><Cd>SEGR</Cd></Tp>
</SfkpgAcct>
<BalForFinInstrm>
<FinInstrmId>
<ISIN>FR0014007T87</ISIN>
<Desc>OAT 0,50% 05/2032</Desc>
</FinInstrmId>
<AggtBal>
<FaceAmt Ccy="EUR">5000000.00</FaceAmt>
</AggtBal>
<SubBalTp>
<SubBalQty>
<Qty><FaceAmt Ccy="EUR">4920000.00</FaceAmt></Qty>
<SubBalTp><Cd>AVAI</Cd></SubBalTp>
</SubBalQty>
<SubBalQty>
<Qty><FaceAmt Ccy="EUR">80000.00</FaceAmt></Qty>
<SubBalTp><Cd>BLCK</Cd></SubBalTp>
<AddtlSubBalInf>COLLATERAL PLEDGE CSA-2024-001</AddtlSubBalInf>
</SubBalQty>
</SubBalTp>
</BalForFinInstrm>
</CtdyStmtOfHldgs>
</Document> SfkpgAcct/Tp/Cd = SEGR— segregated account.AggtBal/FaceAmt = 5000000— total.- Two
SubBalQty: 4,920,000 AVAI + 80,000 BLCK. AddtlSubBalInfdocuments the blocking reason.
Common pitfalls
- Inconsistent SubBalQty — total SubBalQty ≠ AggtBal breaks reconciliation. Always validate the invariant.
- BLCK without AddtlSubBalInf — context-less blocking prevents investigation. Always document (collateral, settlement, regulator).
- OMNI account and claims — on an omnibus account, sub-balances may not be attributable to specific beneficiaries. Check the SSI convention.
- SEGR vs OMNI confusion — SEGR = dedicated account, OMNI = mutualised. Different compliance and MiFID II impacts.
- Partial pricing — semt.002 may omit prices for some illiquid ISINs. Always check before NAV valuation.