Skip to main content

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

FieldDescription
InstrIdInstruction ID - identifier for the hold request
SttlmAmtSettlement Amount - amount to hold
CdtDbtIndCredit/Debit Indicator - DBIT = debit
PurpPurpose - SECU = Securities
SplmtryDataSupplementary 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

CodeMeaningDescription
PACKPartially AcceptedSufficient balance - Hold successful
RJCTRejectedInsufficient balance - Hold failed
Hold Expiry

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