semt.001 — Statement of Securities Holdings
Le relevé historique des positions titres. Format originel ISO 20022 pour le statement of holdings, désormais en coexistence avec ses descendants semt.002 (Custody Statement) et semt.003 (Accounting Statement) plus précis pour chaque rôle métier.
Objet et place dans le flux
semt.001 est le relevé général des positions titres d'un compte. Il liste, pour chaque ISIN détenu :
- La quantité (face amount pour obligations, units pour actions).
- Le prix de référence (clean price ou yield).
- La devise et le taux de change utilisé pour la valorisation.
Le statement est une photo à un instant donné (typiquement fin de journée ou fin de mois). Périodicité variable : daily, weekly, monthly selon le contrat de custody. semt.001 ne porte pas de mouvements ; pour cela, voir semt.017 ou semt.018.
Structure XML
- Id — identifiant unique du statement.
- StmtGnlDtls — métadonnées du statement : date, numéro de séquence, type de mise à jour.
- AcctOwnr — Account Owner (BIC).
- SfkpgAcct — Safekeeping Account identifier.
- BalForFinInstrm (répétable) — balance par instrument : ISIN, quantité agrégée, prix, FX.
Champs clés
StmtGnlDtls/StmtDtTm/Dt— date d'arrêté du statement.StmtGnlDtls/RptNb— numéro séquentiel pour détecter les manques.StmtGnlDtls/StmtUpdTp/Cd— COMP (complete), DELT (delta), REPL (replacement).BalForFinInstrm/AggtBal/Qty/UnitouFaceAmt— quantité.BalForFinInstrm/PricDtls/Pric/Val/Amt— prix de valorisation.
Exemple XML
Relevé fin mai 2026 de BNP Paribas chez son custodian. Une position : 5 M€ de nominal sur OAT 2032 à 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— statement complet (vs incremental).RptNb = 5— cinquième numéro séquentiel du mois.ActvtyInd = true— il y a eu de l'activité depuis le statement précédent.BalForFinInstrm/FaceAmt = 5000000EUR — 5M€ de nominal détenu.
Pièges courants
- RptNb manquant ou non séquentiel — sans numéro, impossible de détecter les statements manqués (incidents réseau, etc.). Toujours respecter l'incrémentation.
- COMP vs DELT confusion — un DELT (delta) sans COMP préalable n'est pas exploitable. Le destinataire doit avoir un baseline.
- Pricing manquant — un BalForFinInstrm sans PricDtls empêche la valorisation NAV. Toujours fournir un prix (clean ou dirty, mais cohérent dans tout le message).
- FX manquant pour positions multi-devises — pour les ISIN cotés en devise différente du compte, FXDtls obligatoire pour conversion.
- Confusion semt.001 vs semt.002/003 — semt.001 = générique, semt.002 = custody, semt.003 = accounting. Pour les nouveaux flows, préférer la version métier précise.