Skip to main content

Book Registers - Developer Documentation

Introduction

Book Registers manage physical banking instruments issued to deposit account holders, including:

  • Cheque Books - for making payments
  • Deposit Slips - for cash/cheque deposits
  • Withdrawal Slips - for cash withdrawals

Each book register tracks serial number ranges, issuance dates, status, and usage for audit and security purposes.

Available Operations

Query Operations

CommandPurposeEndpoint
RetrieveBookRegistersListQueryGet paginated list of book registers with filtersPOST /api/bpm/cmd
RetrieveBookRegisterByIdQueryGet specific book register detailsPOST /api/bpm/cmd

Management Operations

CommandPurposeEndpoint
CreateBookRegisterCommandIssue new book register to accountPOST /api/bpm/cmd
UpdateBookRegisterCommandUpdate book register detailsPOST /api/bpm/cmd
ActivateBookRegisterCommandActivate a book registerPOST /api/bpm/cmd
DeactivateBookRegisterCommandDeactivate a book registerPOST /api/bpm/cmd
BlockBookRegisterCommandBlock a book register (fraud/security)POST /api/bpm/cmd

Book Types

Book registers can be one of three types:

ValueTypeDescription
1ChequeCheque book for making payments
2DepositSlipDeposit slip book for cash/cheque deposits
3WithdrawalSlipWithdrawal slip book for cash withdrawals

Status Management

Book registers have three possible statuses:

ValueStatusDescription
1ACTIVEBook is active and can be used
2INACTIVEBook is deactivated (cannot be used)
3BLOCKEDBook is blocked due to security/fraud concerns

Status Transitions

       CREATE

ACTIVE ←→ INACTIVE

BLOCKED (irreversible)
  • Books are created in ACTIVE status by default
  • ACTIVEINACTIVE: Reversible via Activate/Deactivate commands
  • BLOCKED: Permanent status for security reasons (cannot be reversed)

Key Features

Serial Number Management

  • Each book register has a start and end serial number range
  • System validates that serial numbers don't overlap
  • Number of leaves is automatically calculated from the range

Multi-Account Support

  • Books are linked to specific deposit accounts
  • One account can have multiple book registers
  • Each book type can have multiple active books per account

Branch Integration

  • Books are issued by specific branches
  • Branch information is tracked for audit purposes
  • Multi-branch banks can manage book inventory separately

Security & Audit

  • All book operations are logged with timestamp and user
  • Blocking is permanent to prevent fraudulent use
  • Remarks field captures reason for state changes

Search & Filtering

Books can be filtered by:

  • Deposit account
  • Book type (Cheque/Deposit/Withdrawal)
  • Status (Active/Inactive/Blocked)
  • Date range
  • Serial numbers
  • Account number

Export Capabilities

  • List queries support Excel export
  • Useful for inventory management
  • Audit trail reporting

Common Use Cases

1. Issue Cheque Book

{
"cmd": "CreateBookRegisterCommand",
"data": {
"depositAccountId": 12345,
"bookType": 1,
"startSerialNumber": "0001001",
"endSerialNumber": "0001050",
"numberOfLeaves": 50,
"issuedDate": "2024-12-01",
"remarks": "Initial cheque book issuance"
}
}

2. Block Lost Cheque Book

{
"cmd": "BlockBookRegisterCommand",
"data": {
"id": 789,
"remarks": "Customer reported book as lost/stolen"
}
}

3. Find All Active Books for Account

{
"cmd": "RetrieveBookRegistersListQuery",
"data": {
"depositAccountId": 12345,
"status": 1
}
}

Best Practices

Issuance

  1. Verify Account Status: Ensure deposit account is active before issuing
  2. Check Existing Books: Avoid issuing too many active books simultaneously
  3. Serial Number Validation: Ensure no overlapping serial number ranges
  4. Document Issuance: Always include meaningful remarks

Security

  1. Prompt Blocking: Block books immediately when reported lost/stolen
  2. Regular Audits: Review active books periodically
  3. Deactivate Unused: Deactivate books that are no longer needed
  4. Track Usage: Monitor serial number usage patterns

Data Management

  1. Pagination: Use appropriate page sizes for large result sets
  2. Filtering: Apply filters to narrow down search results
  3. Export: Use export feature for inventory reports
  4. Caching: Leverage system caching for frequently accessed data

Error Handling

Common error scenarios:

ErrorCauseResolution
Book register not foundInvalid IDVerify book register exists
Account not foundInvalid deposit account IDCheck account number
Overlapping serial numbersRange conflicts with existing bookUse different serial number range
Invalid book typeType not in enum (1-3)Use valid book type value
Cannot activate blocked bookBook is permanently blockedIssue new book instead
Missing required fieldsIncomplete requestProvide all mandatory fields

Performance Considerations

  • Caching: Book register lists are cached for improved performance
  • Indexing: Queries on account ID, status, and book type are optimized
  • Pagination: Use pagination for large datasets
  • Export: Excel exports handle large volumes efficiently

API Response Format

All book register commands return responses in this format:

{
"isSuccessful": true,
"message": "Operation completed successfully",
"statusCode": "00",
"data": { /* response data */ }
}

Error responses:

{
"isSuccessful": false,
"message": "Error description",
"statusCode": "04",
"data": null
}