Shop It Docs
Developer Resourcesemi

EMI Module Feature List

EMI configuration, bank management, and customer inquiry surfaces.

EMI Module - Feature List

1. Feature Overview

EMI adds two API surfaces:

  • admin management for global EMI settings, supported banks, and inquiry tracking
  • mobile-composed customer endpoints for reading EMI availability and submitting product-specific EMI interest

The module stores inquiry-time product and pricing snapshots so follow-up can be based on the state visible when the customer submitted the request.

2. Route Ownership and Surfaces

SurfaceRoute prefixOwner
Admin API/api/admin/emiEmiAdminModule
Mobile customer API/api/mobile/emiEmiCustomerModule via MobileModule

Swagger tags used by EMI controllers:

  • EMI (Admin)
  • EMI (Mobile)

3. Admin Feature Matrix

CapabilityEndpointAuthZ
Read global EMI configGET /api/admin/emi/configEmiConfig_READ
Update global EMI configPUT /api/admin/emi/configEmiConfig_UPDATE
Create bankPOST /api/admin/emi/banksEmiBanks_CREATE
List banksGET /api/admin/emi/banksEmiBanks_READ
Bank detailGET /api/admin/emi/banks/:idEmiBanks_READ
Update bankPATCH /api/admin/emi/banks/:idEmiBanks_UPDATE
Deactivate bankDELETE /api/admin/emi/banks/:idEmiBanks_DELETE
List inquiriesGET /api/admin/emi/inquiriesEmiInquiries_READ
Inquiry detailGET /api/admin/emi/inquiries/:idEmiInquiries_READ
Update inquiry statusPATCH /api/admin/emi/inquiries/:id/statusEmiInquiries_UPDATE

4. Customer/Mobile Feature Matrix

CapabilityEndpointNotes
Read EMI configGET /api/mobile/emi/configPublic/mobile, cache-backed
List active banksGET /api/mobile/emi/banksPublic/mobile, cache-backed
Submit EMI inquiryPOST /api/mobile/emi/inquiriesPublic/mobile, transactional write

5. Key Business Rules

  • EMI config is a singleton row stored in PostgreSQL, not an environment toggle.
  • EMI periods are stored as integer month values; installment math stays on the frontend.
  • Banks are soft-deactivated with is_active = false.
  • EMI inquiries can only be submitted when EMI is enabled.
  • At least one active bank must be selected for each inquiry.
  • Product price snapshot uses the product sp value in paisa.
  • Down payment is optional and stored in paisa.
  • Inquiry status lifecycle is pending -> contacted -> resolved.

6. Data Tables

TablePurpose
emi_configSingleton global EMI settings
emi_bankAdmin-managed EMI bank catalog
emi_inquiryCustomer inquiry records with product snapshot
emi_inquiry_bankInquiry-to-bank join table for multi-select banks