# `applications/no_touch.py` ## Overview This file defines the `no_touch_api` Flask Blueprint with the URL prefix `/V2`. It primarily handles the "no touch" workflow (often used for solar or specialized fast-tracked applications). It relies heavily on Dependency Injection to supply the `EMIService` and uses `NoTouchMiddleware.main` for securing its routes. ## Endpoints All endpoints below are prefixed with `/V2` and mostly use `POST` methods: ### Application & Journey Endpoints - **`/create-application`**: Creates a new solar/no-touch application. Validates inputs like PAN, DOB, and source origin. - **`/update-application`**: Updates details of an existing application. - **`/get-user-details`**: Fetches the user journey state based on `mobile_number` and `application_id`. ### Authentication & OTP - **`/otp`**: Initiates OTP dispatch. - **`/verify-otp`**: Verifies the dispatched OTP. - **`/get-token`**: Retrieves a token for a given `application_id`. ### Customer & KYC details - **`/ckyc`**: Initiates Central KYC (CKYC) using PAN and DOB. - **`/check-bureau`**: Fetches Bureau credit scores/reports for the customer. - **`/generate-account-aggregator-link`**: Creates a link for the customer to authorize account aggregation. ### Product & Solar specifics - **`/product-details`**: Processes solar product details (kW installation, panel/inverter details, subsidies). - **`/upload-solar-docs`**: Triggers a document upload pipeline for Solar forms. - **`/store-installation-address`**: Stores the location where solar setup will be installed. - **`/get-inverters-list`**: Lists available inverters (and panels) for solar configurations. ### Bills & Employment - **`/electricity-bill`**: Fetches details of the electricity bill, requires validation. - **`/employement-details`**: Validates and stores employment details (income, type, GST). - **`/get-serviceprovider-list`**: Fetches electricity service providers or UP districts depending on parameters. ### Offers & Agreements - **`/get-available-offers`**: Retrieves applicable loan offers for an application. - **`/save-offer`**: Saves the selected loan offer. - **`/sign-agreement`**: Logs the signing times for the final loan agreement. ### Utilities & Merchants - **`/upload-presigned-url`**: Generates and returns an AWS S3 presigned URL for document uploads. - **`/get-config`** & **`/get-consumer-app-config`**: Fetches schema and configuration files dynamically. - **`/get-merchant-category`**, **`/get-merchant-details`**, **`/get-merchant-name`**, **`/get-merchant-center-name`**: Retrieves various merchant hierarchies and names using slugs or IDs. ## Dependencies - `flask` (Blueprint, request) - `dependency_injector` (inject, Provide) - `bugsnag` (Error logging) - `NoTouchMiddleware.main` (Authentication) - `EMIService` (Business Logic)