{ "get": { "tags": ["Repayment Schedules"], "summary": "Get all loan repayment schedules with optional filtering", "description": "Retrieve loan repayment schedules with various filter options including loan ID, product ID, paid status, etc.", "operationId": "getRepaymentSchedules", "parameters": [ { "name": "loan_id", "in": "query", "description": "Filter by loan ID", "required": false, "schema": { "type": "integer" }, "example": 1234 }, { "name": "product_id", "in": "query", "description": "Filter by product ID", "required": false, "schema": { "type": "string" }, "example": "101" }, { "name": "transaction_id", "in": "query", "description": "Filter by transaction ID", "required": false, "schema": { "type": "string" }, "example": "TRX789" }, { "name": "paid", "in": "query", "description": "Filter by paid status (true/false)", "required": false, "schema": { "type": "boolean" }, "example": false }, { "name": "due_before", "in": "query", "description": "Filter schedules due before this date (ISO format)", "required": false, "schema": { "type": "string", "format": "date-time" }, "example": "2023-12-31T23:59:59Z" }, { "name": "due_after", "in": "query", "description": "Filter schedules due after this date (ISO format)", "required": false, "schema": { "type": "string", "format": "date-time" }, "example": "2023-01-01T00:00:00Z" }, { "name": "installment_number", "in": "query", "description": "Filter by installment number", "required": false, "schema": { "type": "integer" }, "example": 1 }, { "name": "page", "in": "query", "description": "Page number for pagination", "required": false, "schema": { "type": "integer", "default": 1, "minimum": 1 }, "example": 1 }, { "name": "limit", "in": "query", "description": "Number of items per page (max 100)", "required": false, "schema": { "type": "integer", "default": 20, "minimum": 1, "maximum": 100 }, "example": 20 } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "$ref": "../schemas/RepaymentSchedulesResponse.json" } } } }, "400": { "description": "Invalid request" }, "500": { "description": "Internal server error" } } } }