{"info":{"_postman_id":"c6264c87-24db-42a9-b771-811a735bf44f","name":"Finanace_API_Testing","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"37603669","collectionId":"c6264c87-24db-42a9-b771-811a735bf44f","publishedId":"2sBXiqFUmd","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-04-06T13:08:10.000Z"},"item":[{"name":"Auth APIs","item":[{"name":"/user/login","id":"7f34e99a-5b9a-4691-93f4-36d1db388d10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"admin\",\r\n  \"password\": \"admin123\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/user/login","description":"<p><strong>Authenticates user using username and password.</strong></p>\n<p>Returns a JWT token on successfull login.</p>\n<p><strong>Endpoint: POST /user/login</strong></p>\n<p><strong>Access: Public</strong></p>\n","urlObject":{"protocol":"http","port":"8080","path":["user","login"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"e751bf7c-c79e-401b-8edd-97d9eee3f257","name":"Success Response for Admin","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"admin\",\r\n  \"password\": \"admin123\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/user/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"157"},{"key":"Date","value":"Sun, 05 Apr 2026 12:48:19 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiUk9MRV9BRE1JTiIsInN1YiI6ImFkbWluIiwiaWF0IjoxNzc1MzkzMjk5LCJleHAiOjE3NzUzOTY4OTl9.VUqdXboXSVBLBY6zL-jMk4yI2OKOj3neFijvc8WVl6g"},{"id":"a77d7f1e-21a7-44a4-b59d-65b3394255e5","name":"Success Response for Analyst","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"user1\",\r\n  \"password\": \"password123\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/user/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"160"},{"key":"Date","value":"Sun, 05 Apr 2026 14:01:00 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiUk9MRV9BTkFMWVNUIiwic3ViIjoidXNlcjEiLCJpYXQiOjE3NzUzOTc2NjAsImV4cCI6MTc3NTQwMTI2MH0.cTfD2CqHCtykGoX6O_vPsTpc0P6Wh9ccjgE3r522nus"}],"_postman_id":"7f34e99a-5b9a-4691-93f4-36d1db388d10"},{"name":"/user/register","id":"29478446-5211-43ea-97ad-79939655119d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"user2\",\r\n  \"password\": \"password123\",\r\n  \"role\": \"VIEWER\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/user/register","description":"<p>**Creates a new user in the system.**<strong>Only accessible by ADMIN users.</strong></p>\n<p><strong>Endpoint: POST /user/register<strong><strong>Access: ADMIN only</strong></strong>Authorization: Bearer Token required</strong></p>\n<img src=\"https://content.pstmn.io/91e0ca05-391f-44c1-9b00-42a5ec2b5aa3/U2NyZWVuc2hvdCAyMDI2LTA0LTA1IDIzMTI0OS5wbmc=\" />","urlObject":{"protocol":"http","port":"8080","path":["user","register"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"eaba99dd-16f1-4881-aabd-b4d3d7fdc2db","name":"Analyst created successfully","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"user1\",\r\n  \"password\": \"password123\",\r\n  \"role\": \"ANALYST\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/user/register"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"23"},{"key":"Date","value":"Sun, 05 Apr 2026 12:56:43 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"User Added Successfully"},{"id":"3a033141-0d37-421e-a632-f9addfe73b33","name":"Viewer created successfully","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"user2\",\r\n  \"password\": \"password123\",\r\n  \"role\": \"VIEWER\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/user/register"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"23"},{"key":"Date","value":"Sun, 05 Apr 2026 13:00:11 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"User Added Successfully"},{"id":"fb07fc3a-df68-43f2-af1e-25dcb50f3cf0","name":"Another viewer created","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"username\": \"user4\",\r\n  \"password\": \"password123\",\r\n  \"role\": \"VIEWER\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/user/register"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"23"},{"key":"Date","value":"Sun, 05 Apr 2026 17:41:29 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"User Added Successfully"}],"_postman_id":"29478446-5211-43ea-97ad-79939655119d"},{"name":"/user/delete/{username}","id":"38b57151-eb7c-4f9f-9b40-387083f5ea1d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"urlObject":{"query":[],"variable":[]},"url":""},"response":[{"id":"7ea0db0a-1928-4fa9-a3cb-0692c1cef245","name":"Failed response-Analyst tried to delete","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/user/delete/user5"},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json;charset=ISO-8859-1"},{"key":"Content-Length","value":"43"},{"key":"Date","value":"Sun, 05 Apr 2026 18:04:06 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"You are not allowed to perform this action."},{"id":"09fe062f-d8ae-4231-b26c-a0460ed9d4f8","name":"Failed-No user with username user5","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/user/delete/user5"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"14"},{"key":"Date","value":"Sun, 05 Apr 2026 18:18:18 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"User not found"},{"id":"54010fc5-f427-4aa9-8de8-cfa0caa21d73","name":"Success Response","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/user/delete/user4"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"37"},{"key":"Date","value":"Sun, 05 Apr 2026 18:19:13 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"User with user4 deleted successfully."}],"_postman_id":"38b57151-eb7c-4f9f-9b40-387083f5ea1d"}],"id":"a9d9d806-c6c3-4898-a838-c3445e35445d","_postman_id":"a9d9d806-c6c3-4898-a838-c3445e35445d","description":""},{"name":"Record APIs","item":[{"name":"/records/create","id":"7bebbede-70c3-4a61-b433-f5396d50aa98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"amount\": 5000,\r\n  \"type\": \"INCOME\",\r\n  \"category\": \"Salary\",\r\n  \"date\": \"2026-04-05\",\r\n  \"notes\": \"Monthly salary\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/records/create","description":"<p>Creates a new financial record (income or expense).</p>\n<p>Endpoint: POST /records/create<br />Access: ADMIN only<br />Authorization: Bearer Token required</p>\n<img src=\"https://content.pstmn.io/8c426848-db7f-40f8-96cf-a8780da7e077/U2NyZWVuc2hvdCAyMDI2LTA0LTA1IDE5Mjk0Ny5wbmc=\" alt />","urlObject":{"protocol":"http","port":"8080","path":["records","create"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"9d26de20-2826-46d0-ac98-0d0a96b44145","name":"Success request for INCOME record","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"amount\": 5000,\r\n  \"type\": \"INCOME\",\r\n  \"category\": \"Salary\",\r\n  \"date\": \"2026-04-05\",\r\n  \"notes\": \"Monthly salary\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/records/create"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"27"},{"key":"Date","value":"Sun, 05 Apr 2026 13:34:39 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"Record created successfully"},{"id":"bc0cc4e8-fc81-4a92-9e8f-4f71514da850","name":"Success request for EXPENSE record","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"amount\": 2000,\r\n  \"type\": \"EXPENSE\",\r\n  \"category\": \"Food & clothing\",\r\n  \"date\": \"2026-04-05\",\r\n  \"notes\": \"Bought food and clothes.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/records/create"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"27"},{"key":"Date","value":"Sun, 05 Apr 2026 13:42:16 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"Record created successfully"},{"id":"c4466be9-8a34-4589-af85-c0cd9a000974","name":"Failed request -date missing","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"amount\": 2000,\r\n  \"type\": \"EXPENSE\",\r\n  \"category\": \"Food & clothing\",\r\n  \"notes\": \"Bought food and clothes.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/records/create"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 05 Apr 2026 13:44:38 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"date\": \"Date is required\"\n}"},{"id":"080cc834-7027-4a3d-a2cb-aad643462b67","name":"Failed request-Amount missing","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"type\": \"EXPENSE\",\r\n  \"category\": \"Food & clothing\",\r\n  \"date\":\"2025-02-18\",\r\n  \"notes\": \"Bought food and clothes.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/records/create"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Sun, 05 Apr 2026 13:46:14 GMT"},{"key":"Connection","value":"close"}],"cookie":[],"responseTime":null,"body":"{\n    \"amount\": \"Amount is required\"\n}"},{"id":"e7543412-efd5-4348-98b4-c57cfae1bf71","name":"Failed request-Analyst tried to create record","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"amount\": 200000,\r\n  \"type\": \"EXPENSE\",\r\n  \"category\": \"Food & clothing\",\r\n  \"date\":\"2025-02-18\",\r\n  \"notes\": \"Bought food and clothes.\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/records/create"},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json;charset=ISO-8859-1"},{"key":"Content-Length","value":"43"},{"key":"Date","value":"Sun, 05 Apr 2026 14:12:05 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"You are not allowed to perform this action."}],"_postman_id":"7bebbede-70c3-4a61-b433-f5396d50aa98"},{"name":"/records/update/{recordId}","id":"59269576-e750-4e5e-9733-5c9a01f62547","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"amount\": 15000,\r\n  \"type\": \"INCOME\",\r\n  \"category\": \"Salary\",\r\n  \"date\": \"2026-04-05\",\r\n  \"notes\": \"Monthly salary\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/records/update/1","description":"<p><strong>Updates an existing financial record.</strong></p>\n<p>**Endpoint: PUT /records/update/{recordId}**<strong>Access: ADMIN only</strong></p>\n<p><strong>Updates fields like amount, category, type, date, or notes for a given record.</strong></p>\n<img src=\"https://content.pstmn.io/7dcfe3ca-9487-4641-9d90-0e8b03355caf/U2NyZWVuc2hvdCAyMDI2LTA0LTA1IDIwNDExNC5wbmc=\" />","urlObject":{"protocol":"http","port":"8080","path":["records","update","1"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"954feb6e-66f8-4cba-a89a-1aa463fc085f","name":"Failed-Analyst tried to update record","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"amount\": 15000,\r\n  \"type\": \"INCOME\",\r\n  \"category\": \"Salary\",\r\n  \"date\": \"2026-04-05\",\r\n  \"notes\": \"Monthly salary\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/records/update/1"},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json;charset=ISO-8859-1"},{"key":"Content-Length","value":"43"},{"key":"Date","value":"Sun, 05 Apr 2026 15:02:36 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"You are not allowed to perform this action."},{"id":"5a87ba9f-9b82-4462-a1ca-33fbdb29055c","name":"Success Response","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n  \"amount\": 15000,\r\n  \"type\": \"INCOME\",\r\n  \"category\": \"Salary\",\r\n  \"date\": \"2026-04-05\",\r\n  \"notes\": \"Monthly salary\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:8080/records/update/1"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"28"},{"key":"Date","value":"Sun, 05 Apr 2026 15:09:38 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"Record updated Successfully."}],"_postman_id":"59269576-e750-4e5e-9733-5c9a01f62547"},{"name":"/records/delete/{recordId}","id":"134230a4-26f2-4360-a2ee-2b0834a92517","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"http://localhost:8080/records/delete/4","description":"<p>Deletes a financial record by ID.</p>\n<p>Endpoint: DELETE /records/delete/{recordId}<br />Access: ADMIN only</p>\n<p>Removes the specified record from the system.</p>\n<img src=\"https://content.pstmn.io/92b331c5-a560-4abb-82c7-01d893538275/U2NyZWVuc2hvdCAyMDI2LTA0LTA1IDIxMDg0Ni5wbmc=\" />","urlObject":{"protocol":"http","port":"8080","path":["records","delete","4"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"4140ea97-6170-47a6-9501-42be71cdc875","name":"Failed response-No record with id 4","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/records/delete/4"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"16"},{"key":"Date","value":"Sun, 05 Apr 2026 15:28:12 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"Record not found"},{"id":"8342f5c0-0a5b-458b-8dd5-e7d6d9a20abe","name":"Success Response","originalRequest":{"method":"DELETE","header":[],"url":"http://localhost:8080/records/delete/2"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"text/plain;charset=UTF-8"},{"key":"Content-Length","value":"39"},{"key":"Date","value":"Sun, 05 Apr 2026 15:37:58 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"Deleted the record with 2 successfully."}],"_postman_id":"134230a4-26f2-4360-a2ee-2b0834a92517"},{"name":"/records/view","id":"96c7d638-6724-4897-8f28-ef56f0593d61","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/records/view","description":"<p><strong>Fetches all financial records.</strong></p>\n<p><strong>Endpoint: GET /view<br />Access: ADMIN, ANALYST</strong></p>\n<p><strong>Returns a list of all stored records including income and expense transactions.</strong></p>\n","urlObject":{"protocol":"http","port":"8080","path":["records","view"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3615931a-b017-4ec6-b28d-d1d7130318cc","name":"Success response without filtering","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/records/view"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"1252"},{"key":"Date","value":"Sun, 05 Apr 2026 17:31:05 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"recordId\": 1,\n        \"amount\": 15000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-04-05\",\n        \"notes\": \"Monthly salary\"\n    },\n    {\n        \"recordId\": 5,\n        \"amount\": 7000,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Shopping\",\n        \"date\": \"2026-04-06\",\n        \"notes\": \"Clothes and accessories\"\n    },\n    {\n        \"recordId\": 6,\n        \"amount\": 25000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-01-05\",\n        \"notes\": \"January salary\"\n    },\n    {\n        \"recordId\": 7,\n        \"amount\": 2000,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Food\",\n        \"date\": \"2026-01-10\",\n        \"notes\": \"Restaurant\"\n    },\n    {\n        \"recordId\": 8,\n        \"amount\": 1500,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Transport\",\n        \"date\": \"2026-01-15\",\n        \"notes\": \"Fuel\"\n    },\n    {\n        \"recordId\": 9,\n        \"amount\": 26000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-02-05\",\n        \"notes\": \"February salary\"\n    },\n    {\n        \"recordId\": 10,\n        \"amount\": 4000,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Groceries\",\n        \"date\": \"2026-02-08\",\n        \"notes\": \"Monthly groceries\"\n    },\n    {\n        \"recordId\": 11,\n        \"amount\": 2500,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Entertainment\",\n        \"date\": \"2026-02-20\",\n        \"notes\": \"Movies & outings\"\n    },\n    {\n        \"recordId\": 12,\n        \"amount\": 27000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-03-05\",\n        \"notes\": \"March salary\"\n    },\n    {\n        \"recordId\": 13,\n        \"amount\": 3500,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Food\",\n        \"date\": \"2026-03-09\",\n        \"notes\": \"Dining out\"\n    },\n    {\n        \"recordId\": 14,\n        \"amount\": 2200,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Internet\",\n        \"date\": \"2026-03-22\",\n        \"notes\": \"WiFi bill\"\n    }\n]"},{"id":"1f670468-1746-423e-a12c-170b2d4c2b23","name":"Success response-Date filtering","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/records/view?start=2026-01-01&end=2026-02-28","protocol":"http","host":["localhost"],"port":"8080","path":["records","view"],"query":[{"key":"start","value":"2026-01-01"},{"key":"end","value":"2026-02-28"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"684"},{"key":"Date","value":"Sun, 05 Apr 2026 17:34:43 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"recordId\": 6,\n        \"amount\": 25000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-01-05\",\n        \"notes\": \"January salary\"\n    },\n    {\n        \"recordId\": 7,\n        \"amount\": 2000,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Food\",\n        \"date\": \"2026-01-10\",\n        \"notes\": \"Restaurant\"\n    },\n    {\n        \"recordId\": 8,\n        \"amount\": 1500,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Transport\",\n        \"date\": \"2026-01-15\",\n        \"notes\": \"Fuel\"\n    },\n    {\n        \"recordId\": 9,\n        \"amount\": 26000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-02-05\",\n        \"notes\": \"February salary\"\n    },\n    {\n        \"recordId\": 10,\n        \"amount\": 4000,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Groceries\",\n        \"date\": \"2026-02-08\",\n        \"notes\": \"Monthly groceries\"\n    },\n    {\n        \"recordId\": 11,\n        \"amount\": 2500,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Entertainment\",\n        \"date\": \"2026-02-20\",\n        \"notes\": \"Movies & outings\"\n    }\n]"},{"id":"e88ce6c4-d1c3-4697-baa8-2eefd5472342","name":"Success response-Category filtering","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/records/view?category=food","protocol":"http","host":["localhost"],"port":"8080","path":["records","view"],"query":[{"key":"category","value":"food"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"216"},{"key":"Date","value":"Sun, 05 Apr 2026 17:36:34 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"recordId\": 7,\n        \"amount\": 2000,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Food\",\n        \"date\": \"2026-01-10\",\n        \"notes\": \"Restaurant\"\n    },\n    {\n        \"recordId\": 13,\n        \"amount\": 3500,\n        \"type\": \"EXPENSE\",\n        \"category\": \"Food\",\n        \"date\": \"2026-03-09\",\n        \"notes\": \"Dining out\"\n    }\n]"},{"id":"e98d32eb-545e-4a59-8e5e-755a5b43a57f","name":"Success response-type filtering","originalRequest":{"method":"GET","header":[],"url":{"raw":"http://localhost:8080/records/view?type=INCOME","protocol":"http","host":["localhost"],"port":"8080","path":["records","view"],"query":[{"key":"type","value":"INCOME"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"453"},{"key":"Date","value":"Sun, 05 Apr 2026 17:37:53 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"recordId\": 1,\n        \"amount\": 15000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-04-05\",\n        \"notes\": \"Monthly salary\"\n    },\n    {\n        \"recordId\": 6,\n        \"amount\": 25000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-01-05\",\n        \"notes\": \"January salary\"\n    },\n    {\n        \"recordId\": 9,\n        \"amount\": 26000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-02-05\",\n        \"notes\": \"February salary\"\n    },\n    {\n        \"recordId\": 12,\n        \"amount\": 27000,\n        \"type\": \"INCOME\",\n        \"category\": \"Salary\",\n        \"date\": \"2026-03-05\",\n        \"notes\": \"March salary\"\n    }\n]"}],"_postman_id":"96c7d638-6724-4897-8f28-ef56f0593d61"}],"id":"a223d95f-b4e6-402e-8c26-e924818a2aea","_postman_id":"a223d95f-b4e6-402e-8c26-e924818a2aea","description":""},{"name":"Dashboard APIs","item":[{"name":"/records/dashboard","id":"5ac320e2-50d7-4ceb-8456-cd6f7b55b333","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:8080/records/dashboard","description":"<p><strong>Provides aggregated financial summary data.</strong></p>\n<p><strong>Endpoint: GET /dashboard<br />Access: Authenticated users</strong></p>\n<p><strong>Returns:</strong></p>\n<ul>\n<li><p><strong>Total income</strong></p>\n</li>\n<li><p><strong>Total expenses</strong></p>\n</li>\n<li><p><strong>Net balance</strong></p>\n</li>\n<li><p><strong>Category-wise totals</strong></p>\n</li>\n<li><p><strong>Recent transactions</strong></p>\n</li>\n<li><p><strong>Monthly trends</strong></p>\n</li>\n</ul>\n","urlObject":{"protocol":"http","port":"8080","path":["records","dashboard"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"aa9423d2-2537-4118-b7fc-1b92bfcd166b","name":"Failed response-User not authenticated","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/records/dashboard"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json;charset=ISO-8859-1"},{"key":"Content-Length","value":"54"},{"key":"Date","value":"Sun, 05 Apr 2026 16:27:37 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Authentication failed or token missing.\"\n}"},{"id":"82cb84b5-08e8-4ef4-bee6-fbf68c3d8239","name":"Success Response","originalRequest":{"method":"GET","header":[],"url":"http://localhost:8080/records/dashboard"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Vary","value":"Origin"},{"key":"Vary","value":"Access-Control-Request-Method"},{"key":"Vary","value":"Access-Control-Request-Headers"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"0"},{"key":"Cache-Control","value":"no-cache, no-store, max-age=0, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Date","value":"Mon, 06 Apr 2026 01:43:19 GMT"},{"key":"Keep-Alive","value":"timeout=60"},{"key":"Connection","value":"keep-alive"}],"cookie":[],"responseTime":null,"body":"{\n    \"Net balance\": 70300,\n    \"Monthly trend\": [\n        {\n            \"income\": 27000,\n            \"Month\": 3,\n            \"expense\": 5700\n        },\n        {\n            \"income\": 26000,\n            \"Month\": 2,\n            \"expense\": 6500\n        },\n        {\n            \"income\": 25000,\n            \"Month\": 1,\n            \"expense\": 3500\n        },\n        {\n            \"income\": 15000,\n            \"Month\": 4,\n            \"expense\": 7000\n        }\n    ],\n    \"Category wise totals\": [\n        {\n            \"income\": 0,\n            \"Category\": \"Entertainment\",\n            \"expense\": 2500\n        },\n        {\n            \"income\": 0,\n            \"Category\": \"Groceries\",\n            \"expense\": 4000\n        },\n        {\n            \"income\": 0,\n            \"Category\": \"Internet\",\n            \"expense\": 2200\n        },\n        {\n            \"income\": 93000,\n            \"Category\": \"Salary\",\n            \"expense\": 0\n        },\n        {\n            \"income\": 0,\n            \"Category\": \"Food\",\n            \"expense\": 5500\n        },\n        {\n            \"income\": 0,\n            \"Category\": \"Transport\",\n            \"expense\": 1500\n        },\n        {\n            \"income\": 0,\n            \"Category\": \"Shopping\",\n            \"expense\": 7000\n        }\n    ],\n    \"Total income\": 93000,\n    \"Total expenses\": 22700,\n    \"Recent Activity\": [\n        {\n            \"recordId\": 5,\n            \"amount\": 7000,\n            \"type\": \"EXPENSE\",\n            \"category\": \"Shopping\",\n            \"date\": \"2026-04-06\",\n            \"notes\": \"Clothes and accessories\"\n        },\n        {\n            \"recordId\": 1,\n            \"amount\": 15000,\n            \"type\": \"INCOME\",\n            \"category\": \"Salary\",\n            \"date\": \"2026-04-05\",\n            \"notes\": \"Monthly salary\"\n        },\n        {\n            \"recordId\": 14,\n            \"amount\": 2200,\n            \"type\": \"EXPENSE\",\n            \"category\": \"Internet\",\n            \"date\": \"2026-03-22\",\n            \"notes\": \"WiFi bill\"\n        },\n        {\n            \"recordId\": 13,\n            \"amount\": 3500,\n            \"type\": \"EXPENSE\",\n            \"category\": \"Food\",\n            \"date\": \"2026-03-09\",\n            \"notes\": \"Dining out\"\n        },\n        {\n            \"recordId\": 12,\n            \"amount\": 27000,\n            \"type\": \"INCOME\",\n            \"category\": \"Salary\",\n            \"date\": \"2026-03-05\",\n            \"notes\": \"March salary\"\n        }\n    ]\n}"}],"_postman_id":"5ac320e2-50d7-4ceb-8456-cd6f7b55b333"}],"id":"64fbd65b-26ce-4590-bef5-9b2f0e0d6a92","_postman_id":"64fbd65b-26ce-4590-bef5-9b2f0e0d6a92","description":""}]}