{"info":{"_postman_id":"d45c5917-5dbe-4bdf-98cb-543ba349178c","name":"Finance API","description":"<html><head></head><body><h3 id=\"welcome-to-postman-this-is-your-first-collection\">Welcome to Postman! This is your first collection.</h3>\n<p>Collections are your starting point for building and testing APIs. You can use this one to:</p>\n<p>• Group related requests\n• Test your API in real-world scenarios\n• Document and share your requests</p>\n<p>Update the name and overview whenever you’re ready to make it yours.</p>\n<p><a href=\"https://learning.postman.com/docs/collections/collections-overview/\">Learn more about Postman Collections.</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"53763320","collectionId":"d45c5917-5dbe-4bdf-98cb-543ba349178c","publishedId":"2sBXiqE8To","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-04-05T10:47:33.000Z"},"item":[{"name":"Records","item":[{"name":"Get Financial Records","id":"1e39ba14-7c2d-44f2-b1d1-a00d423deaa1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Fetch all financial records with pagination.</p>\n<p>Query Parameters:</p>\n<ul>\n<li><p>role: User role (ADMIN, ANALYST, VIEWER)</p>\n</li>\n<li><p>page: Page number (starts from 0)</p>\n</li>\n<li><p>size: Number of records per page</p>\n</li>\n</ul>\n<p>Response:<br />Returns a paginated list of financial records including:</p>\n<ul>\n<li><p>id</p>\n</li>\n<li><p>type (INCOME / EXPENSE)</p>\n</li>\n<li><p>category</p>\n</li>\n<li><p>amount</p>\n</li>\n<li><p>note</p>\n</li>\n<li><p>date</p>\n</li>\n</ul>\n<p>Access Control:</p>\n<ul>\n<li><p>ADMIN: Full access</p>\n</li>\n<li><p>ANALYST: Can view records and insights</p>\n</li>\n<li><p>VIEWER: Read-only access</p>\n</li>\n</ul>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"1e39ba14-7c2d-44f2-b1d1-a00d423deaa1"},{"name":"Create Financial Record","id":"9c49f9d1-aaa5-41b7-b8b7-46877009cca0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Create a new financial record.</p>\n<p>Request Body:</p>\n<ul>\n<li><p>amount: transaction amount (number)</p>\n</li>\n<li><p>type: INCOME or EXPENSE</p>\n</li>\n<li><p>category: category name (string)</p>\n</li>\n<li><p>date: transaction date (YYYY-MM-DD)</p>\n</li>\n<li><p>notes: optional description</p>\n</li>\n</ul>\n<p>Example:<br />{<br />\"amount\": 1000,<br />\"type\": \"INCOME\",<br />\"category\": \"Salary\",<br />\"date\": \"2026-04-05\",<br />\"notes\": \"Monthly salary\"<br />}</p>\n<p>Response:<br />Returns the created financial record with ID.</p>\n<p>Access Control:<br />Only ADMIN users are allowed to create records.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"9c49f9d1-aaa5-41b7-b8b7-46877009cca0"},{"name":"Update Financial Record","id":"ac79a909-8d19-4e9e-90db-60dad7f32977","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Update an existing financial record.</p>\n<p>Path Parameter:</p>\n<ul>\n<li>id: ID of the record to update</li>\n</ul>\n<p>Request Body:</p>\n<ul>\n<li><p>amount: transaction amount</p>\n</li>\n<li><p>type: INCOME or EXPENSE</p>\n</li>\n<li><p>category: category name</p>\n</li>\n<li><p>date: transaction date</p>\n</li>\n<li><p>notes: optional</p>\n</li>\n</ul>\n<p>Response:<br />Returns updated financial record.</p>\n<p>Access Control:<br />Only ADMIN users can update records.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"ac79a909-8d19-4e9e-90db-60dad7f32977"},{"name":"Delete Financial Record","id":"dadfd4e3-7678-420c-82d5-06df8bd3696d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Delete a financial record.</p>\n<p>Path Parameter:</p>\n<ul>\n<li>id: ID of the record to delete</li>\n</ul>\n<p>Note:<br />This performs a soft delete (record is marked as deleted, not permanently removed).</p>\n<p>Response:<br />Returns success message or updated record status.</p>\n<p>Access Control:<br />Only ADMIN users can delete records.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"dadfd4e3-7678-420c-82d5-06df8bd3696d"}],"id":"1a25c1fc-3732-4a74-b2cd-17b924b250b8","_postman_id":"1a25c1fc-3732-4a74-b2cd-17b924b250b8","description":""},{"name":"Filters","item":[{"name":"Filter by category","id":"0a51b4d3-0a56-47aa-89d8-de9400ec8e1b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Fetch financial records filtered by category.</p>\n<p>Query Parameters:</p>\n<ul>\n<li><p>category (required): Category name (e.g., Salary, Food, Travel)</p>\n</li>\n<li><p>role (required): User role (ADMIN / ANALYST / VIEWER)</p>\n</li>\n<li><p>page (optional): Page number (default 0)</p>\n</li>\n<li><p>size (optional): Number of records per page (default 5)</p>\n</li>\n</ul>\n<p>Example Request:<br />GET /records?category=Salary&amp;role=ADMIN&amp;page=0&amp;size=5</p>\n<p>Response:<br />Returns a paginated list of financial records matching the given category.</p>\n<p>Access Control:<br />ADMIN and ANALYST can access filtered data.<br />VIEWER has limited access (read-only).</p>\n<p>Note:<br />Pagination is supported and results are returned page-wise.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"0a51b4d3-0a56-47aa-89d8-de9400ec8e1b"},{"name":"Filter by Type","id":"3cb82bd0-004f-4ac6-81a8-fc7fd47bb905","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Fetch financial records filtered by type.</p>\n<p>Query Parameters:</p>\n<ul>\n<li><p>type (required): INCOME or EXPENSE</p>\n</li>\n<li><p>role (required): User role (ADMIN / ANALYST / VIEWER)</p>\n</li>\n<li><p>page (optional): Page number (default 0)</p>\n</li>\n<li><p>size (optional): Number of records per page (default 5)</p>\n</li>\n</ul>\n<p>Example Request:<br />GET /records?type=INCOME&amp;role=ADMIN&amp;page=0&amp;size=5</p>\n<p>Response:<br />Returns paginated list of records filtered by transaction type.</p>\n<p>Access Control:<br />ADMIN and ANALYST can access this data.</p>\n<p>Note:<br />Supports pagination and can be combined with other filters.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"3cb82bd0-004f-4ac6-81a8-fc7fd47bb905"},{"name":"Filter by Date","id":"670e8ab3-4a96-4e4a-a877-aa32c8fb5e03","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Fetch financial records filtered by date.</p>\n<p>Query Parameters:</p>\n<ul>\n<li><p>date (required): Transaction date in format YYYY-MM-DD</p>\n</li>\n<li><p>role (required): User role (ADMIN / ANALYST / VIEWER)</p>\n</li>\n<li><p>page (optional): Page number (default 0)</p>\n</li>\n<li><p>size (optional): Number of records per page (default 5)</p>\n</li>\n</ul>\n<p>Example Request:<br />GET /records?date=2026-04-05&amp;role=ADMIN&amp;page=0&amp;size=5</p>\n<p>Response:<br />Returns paginated list of financial records for the given date.</p>\n<p>Access Control:<br />ADMIN and ANALYST can access this data.</p>\n<p>Note:<br />Date format must be YYYY-MM-DD.<br />Supports pagination and can be combined with other filters.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"670e8ab3-4a96-4e4a-a877-aa32c8fb5e03"}],"id":"3d0d1e2d-e409-4af9-9276-337a54dd37ae","_postman_id":"3d0d1e2d-e409-4af9-9276-337a54dd37ae","description":""},{"name":"Dashboard","item":[{"name":"Get Total Income","id":"d4016915-405a-4ca6-a899-c932b5a319a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Fetch total income from all financial records.</p>\n<p>Query Parameters:</p>\n<ul>\n<li>role: User role (ADMIN / ANALYST)</li>\n</ul>\n<p>Response:<br />Returns total income amount.</p>\n<p>Access Control:<br />ADMIN and ANALYST can access this data.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"d4016915-405a-4ca6-a899-c932b5a319a1"},{"name":"Get Total Expense","id":"8ee8def3-83b5-4040-a873-bc6a84ad96e4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Fetch total Expense from financial records</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"8ee8def3-83b5-4040-a873-bc6a84ad96e4"},{"name":"Net Balance","id":"25bff496-0b73-4576-867e-0f3c99fdfbb3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Return net balance = total income-total expense.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"25bff496-0b73-4576-867e-0f3c99fdfbb3"},{"name":"Category summary","id":"acfed240-207e-400a-a7fe-ad7933a12263","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"description":"<p>Fetch dashboard summary including category-level insights.</p>\n<p>Query Parameters:</p>\n<ul>\n<li>role (required): User role (ADMIN / ANALYST)</li>\n</ul>\n<p>Example Request:<br />GET /records/summary?role=ADMIN</p>\n<p>Response:<br />Returns summary data including:</p>\n<ul>\n<li><p>Total Income</p>\n</li>\n<li><p>Total Expense</p>\n</li>\n<li><p>Net Balance</p>\n</li>\n</ul>\n<p>Note:<br />Category-wise summary is included as part of overall summary.<br />Separate category API is not implemented.</p>\n<p>Access Control:<br />ADMIN and ANALYST can access this data.</p>\n","urlObject":{"query":[],"variable":[]},"url":""},"response":[],"_postman_id":"acfed240-207e-400a-a7fe-ad7933a12263"}],"id":"35fd2061-1065-4f59-a9f4-984fb907e971","_postman_id":"35fd2061-1065-4f59-a9f4-984fb907e971","description":""}]}