Layer 0 ack no. {{ total }} records
MR id / ack / victim / account / UTR Status All open All @for (s of statuses; track s.value) { {{ s.label }} } @if (role === 'BENEFICIARY_BANK') { Bank action Any Pending @for (a of bankActions; track a.value) { {{ a.label }} } }
@if (loading) { } @if (error) {
{{ error }}
}
MRM Money Restoration Assess a hold for MRM from the hold (Holds Register → hold → GRM / MRM). Click a row to work on it.
@if (role === 'BENEFICIARY_BANK') { } @for (r of rows; track r.id) { @if (role === 'BENEFICIARY_BANK') { } } @empty { }
Opened Ack / MR idAccount on hold Basis Restorable (₹)Victim Status Money
{{ r.created_at | date: 'dd MMM yyyy' }}
{{ r.created_by }}
{{ r.acknowledgement_no }}
{{ r.mrm_request_no || 'no MR id yet' }}
{{ r.hold_account_no }}
{{ r.client_name }} · held ₹{{ r.amount_held | number: '1.2-2' }}
{{ label(bases, r.basis) }} {{ r.restorable_amount | number: '1.2-2' }} {{ r.victim_name || '-' }}
{{ r.victim_account_no }} {{ r.victim_ifsc }}
{{ label(statuses, r.status) }} @if (r.bank_action && r.bank_action !== 'PENDING') {
{{ r.bank_action }}
} @if (r.transfer_error) {
{{ r.transfer_error }}
}
@if (r.role === 'VICTIM_BANK') { {{ r.received_amount ? '₹' + (r.received_amount | number: '1.2-2') + ' received' : r.victim_status || '-' }} } @else { {{ r.restored_amount ? '₹' + (r.restored_amount | number: '1.2-2') : '-' }}
{{ r.utr || r.transfer_status || '' }}{{ r.mrm_updated ? ' · on MRM' : '' }}
}
No restorations match these filters.
@if (selected; as r) {
@if (isVictim) { Our customer's account {{ r.victim_account_no }} } @else { Held on {{ r.hold_account_no }} ({{ r.client_name }}): ₹{{ r.amount_held | number: '1.2-2' }} · disputed ₹{{ r.disputed_amount | number: '1.2-2' }} }
@if (tab === 'workflow') {
@if (!isVictim) { @if (r.status === 'ASSESSED' || r.status === 'REQUESTED') {
1. Assessment (what the bank updates on MRM)
Restoration @for (b of bases; track b.value) { {{ b.label }} } @if (possible) { Restorable amount (₹) }
@if (proRata) { @for (h of proRata.holds; track h.id) { }
Complaint (ack) Disputed Held Pro-rata share
{{ h.acknowledgement_no }}{{ h.id === r.hold_id ? ' (this one)' : '' }} {{ h.disputed_amount | number: '1.2-2' }} {{ h.amount_held | number: '1.2-2' }} {{ h.share | number: '1.2-2' }}
₹{{ proRata.amount | number: '1.2-2' }} held on {{ proRata.accountNo }} split by disputed amount (total ₹{{ proRata.totalDisputed | number: '1.2-2' }}).
} Remarks{{ possible ? '' : ' (why not possible) *' }}
@if (r.status === 'ASSESSED' && !r.mrm_updated) { }
} @if (r.status === 'ASSESSED' || r.status === 'REQUESTED' || r.status === 'IN_POOL') {
{{ r.status === 'IN_POOL' ? 'Refund account (correct it if the victim bank referred back)' : "2. Victim's MRM request, as the IO sent it" }}
@if (r.status !== 'IN_POOL') { MRM request id * } Victim name * Refund account no. * IFSC (blank = this bank) Victim's bank @if (request['victimIfsc']) { Send by NEFT IMPS RTGS }
@if (r.status !== 'IN_POOL') {
IO name Police station BNSS 106 notice no. Notice date Indemnity bond received (Rs 10 stamp paper)
FIR no. (needed above ₹{{ r.firThreshold }}) FIR date Court order no. Court order date Court
}
} @if (r.status === 'REQUESTED') {
3. Bank action (as on MRM)
Action @for (a of bankActions; track a.value) { {{ a.label }} } @if (action.action === 'REFER_BACK_LEA') { Reason @for (x of referBackReasons; track x.value) { {{ x.label }} } } @else { Remarks{{ action.action === 'COMPLIED' ? '' : ' *' }} }
@if (action.action === 'COMPLIED') { @if (papers.length) {
Still needed before compliance: {{ papers.join(', ') }}.
}
₹{{ r.restorable_amount | number: '1.2-2' }} goes to {{ r.victim_name }} ({{ r.victim_account_no }}{{ r.victim_ifsc ? ', ' + r.victim_ifsc : ', this bank' }}) once a second officer approves. @if (r.victim_ifsc && !r.poolConfigured) { No restoration pool account is configured, so an outward restoration cannot be approved. }
} @else if (action.action === 'NOT_COMPLIED' || action.action === 'REFER_BACK_LEA') {
MRM asks for the account's bank statement with this action; attach it on the Documents tab.
}
} @if (r.status === 'AWAITING_APPROVAL') {
Restoration request #{{ r.action_request_id }} is waiting for a second officer on the Approvals page. On approval ₹{{ r.restorable_amount | number: '1.2-2' }} leaves {{ r.hold_account_no }} at once.
} @if (r.status === 'IN_POOL') {
₹{{ r.restored_amount | number: '1.2-2' }} is in the restoration pool
It left the suspect account on approval. The outward {{ r.transfer_channel }} to {{ r.victim_account_no }} / {{ r.victim_ifsc }} has not gone through yet{{ r.transfer_error ? ': ' + r.transfer_error : '.' }}
} @if (r.status === 'TRANSFER_PENDING') {
Outward transfer {{ r.fund_transfer_ref }} is {{ r.transfer_status }} (fund-transfer approval / NEFT batch). The I4C Hold Review job marks it restored once it settles.
} @if (r.status === 'RESTORED') {
Restored ₹{{ r.restored_amount | number: '1.2-2' }} on {{ r.restored_at | date: 'dd MMM yyyy, HH:mm' }}
On MRM, choose "Compliance of restoration order" and enter amount ₹{{ r.restored_amount | number: '1.2-2' }}, transaction id {{ r.utr }} and this date and time.
} } @else { @if (r.status !== 'CLOSED') {
Restored money received for our customer
Amount (₹) * UTR / transaction id * Credited on * Credited to account
@if (r.status === 'RECEIVED') { }
Or: why no (more) restoration is expected
Victim status @for (v of victimStatuses; track v.value) { {{ v.label }} } Justification *
} @else {
Case closed{{ r.victim_status ? ': ' + label(victimStatuses, r.victim_status) : '' }}.
} } @if (!isVictim && r.status === 'CLOSED') {
Closed{{ r.bank_action === 'NOT_COMPLIED' ? ': order not complied (' + r.bank_action_reason + ')' : '' }}.
}
} @if (tab === 'details') {
Request & papers
MR id
{{ r.mrm_request_no || '-' }}
Basis
{{ label(bases, r.basis) }} {{ r.basis_remarks ? '(' + r.basis_remarks + ')' : '' }}
Restorable
{{ r.restorable_amount | number: '1.2-2' }}
Victim
{{ r.victim_name }} · {{ r.victim_account_no }} {{ r.victim_ifsc }} {{ r.victim_bank_name }}
IO
{{ r.io_name || '-' }} {{ r.io_police_station }}
BNSS 106
{{ r.bnss_notice_no || '-' }} {{ r.bnss_notice_date | date: 'dd MMM yyyy' }}
Indemnity bond
{{ r.indemnity_bond_received ? 'Received' : 'Not received' }}
FIR
{{ r.fir_no || '-' }} {{ r.fir_date | date: 'dd MMM yyyy' }}
Court order
{{ r.court_order_no || '-' }} {{ r.court_order_date | date: 'dd MMM yyyy' }} {{ r.court_name }}
Money
Bank action
{{ r.bank_action }} {{ r.bank_action_reason ? '(' + r.bank_action_reason + ')' : '' }}
Approval
@if (r.actionRequest?.length) { #{{ r.actionRequest[0].id }} {{ r.actionRequest[0].status }} {{ r.actionRequest[0].checker_name || '' }} {{ r.actionRequest[0].failure_message || r.actionRequest[0].rejection_reason || '' }} } @else { - }
Channel
{{ r.transfer_channel || '-' }} {{ r.transfer_status || '' }}
Pool transfer
{{ r.pool_transfer_id || '-' }}
Outward ref
{{ r.fund_transfer_ref || '-' }}
UTR / txn id
{{ r.utr || r.received_utr || '-' }}
Restored
{{ r.restored_amount ? (r.restored_amount | number: '1.2-2') : '-' }} {{ r.restored_at | date: 'dd MMM yyyy, HH:mm' }}
On MRM
{{ r.mrm_updated ? 'Yes, by ' + r.mrm_updated_by + ' ' + (r.mrm_updated_at | date: 'dd MMM yyyy') : 'Not yet' }}
} @if (tab === 'documents') {
}
}