Process 2: Query + Hold Cash (Buy Securities)
Query cash balance and hold funds for securities purchase.
Message Type
camt.048 - Intra Balance Movement Instruction
camt.025 - Receipt (Response)
Purpose
The Securities Company queries the cash balance and simultaneously requests to hold (block) a specific amount to ensure the customer has sufficient funds to pay for the securities purchase transaction.
REQUEST - Broker → UFG → Custody Bank
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.048.001.05">
<IntraBalMvmntInstr>
<MsgHdr>
<MsgId>BRK00-HOLD-20250126-001</MsgId>
<CreDtTm>2025-01-26T11:00:00Z</CreDtTm>
</MsgHdr>
<InstrId>HOLD-VN30-20250126-001</InstrId>
<ReqdExctnDt>
<Dt>2025-01-26</Dt>
</ReqdExctnDt>
<CshAcct>
<Id>
<Othr>
<Id>0821234567</Id>
</Othr>
</Id>
</CshAcct>
<SttlmAmt Ccy="VND">1500000000</SttlmAmt> <!-- Hold Amount -->
<CdtDbtInd>DBIT</CdtDbtInd>
<Purp>
<Cd>SECU</Cd> <!-- Securities Purchase -->
</Purp>
<SplmtryData>
<PlcAndNm>OrderDetails</PlcAndNm>
<Envlp>
<OrderRef>ORD-VN30-001</OrderRef>
<Symbol>VN30F2501</Symbol>
<Quantity>100</Quantity>
<Price>15000000</Price>
<Side>BUY</Side>
</Envlp>
</SplmtryData>
</IntraBalMvmntInstr>
</Document>
Key Fields Explanation
| Field | Description |
|---|---|
InstrId | Instruction ID - identifier for the hold request |
SttlmAmt | Settlement Amount - amount to hold |
CdtDbtInd | Credit/Debit Indicator - DBIT = debit |
Purp | Purpose - SECU = Securities |
SplmtryData | Supplementary Data - additional order info |
RESPONSE - Custody Bank → UFG → Broker
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.025.001.05">
<Rct>
<MsgId>
<MsgId>CUSTODY00-ACK-20250126-001</MsgId>
<CreDtTm>2025-01-26T11:00:01Z</CreDtTm>
</MsgId>
<ReqHdlg>
<StsCd>PACK</StsCd> <!-- Partially Accepted = Sufficient -->
<!-- Or RJCT = Rejected = Insufficient -->
</ReqHdlg>
<OrgnlMsgId>
<MsgId>BRK00-HOLD-20250126-001</MsgId>
</OrgnlMsgId>
<SplmtryData>
<PlcAndNm>HoldDetails</PlcAndNm>
<Envlp>
<HoldRef>HOLD-CUSTODY-001</HoldRef>
<Status>ACCEPTED</Status> <!-- ACCEPTED or REJECTED -->
<HoldAmount Ccy="VND">1500000000</HoldAmount>
<ValidUntil>2025-01-26T16:00:00Z</ValidUntil>
</Envlp>
</SplmtryData>
</Rct>
</Document>
Status Codes
| Code | Meaning | Description |
|---|---|---|
PACK | Partially Accepted | Sufficient balance - Hold successful |
RJCT | Rejected | Insufficient balance - Hold failed |
Hold requests have a default expiry of 4 hours (for T+0 trading). After this time, if no settlement occurs, the funds are automatically released.
Use Cases
1. Place Buy Order
When a customer places a buy order, the securities company holds the funds immediately to ensure payment.
2. Place Derivative Order
For derivative transactions, hold margin requirement.
3. Pre-settlement Check
Before T+2 settlement, reconfirm hold is still valid.
Flow Diagram
Technical Notes
Hold Duration
- Default: 4 hours for T+0 trading
- T+2 securities: Can extend to settlement date
- Derivatives: Per margin regulations
Hold Reference
Custody Bank returns HoldRef for tracking. Broker needs to save this reference for:
- Release hold (when cancelling order)
- Query hold status
- Modify hold amount
Concurrent Holds
An account can have multiple hold requests simultaneously for different orders.
Total Balance: 10,000,000,000 VND
├── Hold 1: 1,500,000,000 VND (Order VN30-001)
├── Hold 2: 2,000,000,000 VND (Order HPG-002)
└── Available: 6,500,000,000 VND