{"info":{"_postman_id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","name":"KudiFlow","description":"<html><head></head><body><h1 id=\"kudiflow-api\">KudiFlow API</h1>\n<h2 id=\"introduction\">Introduction</h2>\n<p>Kudiflow Api Documentation shows how to make use of the available API endpoints.</p>\n<h2 id=\"overview\">Overview</h2>\n<p><em>There are two subdivisons of the kudiflow api which are:</em></p>\n<ul>\n<li>User Auth - The entire authentication, and creation of a users in KudiFlow</li>\n<li>Track Income and Exp - The entire backend logic of the track feature implemented in the <strong>KudiFlow Application</strong></li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"KudiFlow API","slug":"kudiflow-api"}],"owner":"26131668","collectionId":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","publishedId":"2s93RTQBvN","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2023-03-29T23:01:45.000Z"},"item":[{"name":"User Auth","item":[{"name":"Register User","id":"1325fa9c-403b-424c-82b5-9d289322e8d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"gabrielayoku@gmail.com\",\r\n    \"password\": \"passwod1!\",\r\n    \"username\": \"alpha\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/account/register","description":"<p>This endpoint creates a <strong>user</strong> account. This endpoint is to be called when a user wants to sign up.</p>\n<p>Request Body parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Data Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>username</td>\n<td>string</td>\n<td>Name the user wants to be identified by</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Unique email provided by the user</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n<td>Password for the user to gain access to an account</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","account","register"],"host":["kudiflow-backend","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"c1bf855c-1c8a-4372-8cb9-dff9092cc8f8","name":"User exists","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"janedoe@example.com","type":"text"},{"key":"password","value":"password1!","type":"text"},{"key":"username","value":"janey01","type":"text"}]},"url":"{{kudi_url}}/register"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"31"},{"key":"ETag","value":"W/\"1f-lFUySNKwX3L5eGEwGcNcUoVKWhE\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:10:33 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"User already exists\"\n}"},{"id":"9c0d96c8-e3e4-4b9b-810a-0cabb5f55835","name":"Registration Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"tomdick@example.com","type":"text"},{"key":"password","value":"password1!","type":"text"},{"key":"username","value":"tomdic","type":"text"}]},"url":"{{kudi_url}}/register"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"21"},{"key":"ETag","value":"W/\"15-ga8EF/lp+ThIsc8w/OHbk4hPrME\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:12:14 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"success\"\n}"}],"_postman_id":"1325fa9c-403b-424c-82b5-9d289322e8d2"},{"name":"Logout User","id":"3f208764-ec6b-474f-9344-baf1aaa353a3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://kudiflow-backend.onrender.com/v1/account/logout","description":"<p>This endpoint logs out the user currently in session.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","name":"KudiFlow","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","account","logout"],"host":["kudiflow-backend","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"d170d5c4-72bb-4408-a08b-3796657f9acb","name":"Successfully logged out","originalRequest":{"method":"GET","header":[],"url":"{{kudi_url}}/logout"},"status":"No Content","code":204,"_postman_previewlanguage":"plain","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Date","value":"Sun, 19 Mar 2023 16:24:28 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":null},{"id":"ba1f321f-61d4-4ea4-99dc-b4d97ab3da14","name":"Invalid or expired token","originalRequest":{"method":"GET","header":[],"url":"{{kudi_url}}/logout"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"24"},{"key":"ETag","value":"W/\"18-XPDV80vbMk4yY1/PADG4jYM4rSI\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:25:08 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"}],"_postman_id":"3f208764-ec6b-474f-9344-baf1aaa353a3"},{"name":"New token","id":"fab13b00-6616-46a8-9441-b35ae1053653","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0NDExNDk3MThjMTAxODNmODQzNWZmZCIsImlhdCI6MTY4MjMzMDQ5OCwiZXhwIjoxNjgyMzMwNjE4fQ.uMyq8kUgUdni6Z0tTmEIcoi7o_ceOcbn7Be4ZC6tcOI\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/account/token-reset","description":"<p>This endpoint gives a new access token for a <strong>user</strong> on request.</p>\n<p><strong>Note</strong></p>\n<ul>\n<li>User must be signed in to a get a new access token.</li>\n</ul>\n<p>Request Body Parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Data Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>token</td>\n<td>string</td>\n<td>The access token a user receives on logging in.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","account","token-reset"],"host":["kudiflow-backend","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"2dd98d5e-6f1b-49f0-9c59-451ff2d2dda1","name":"Invalid token passed","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\r\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0MTZhMzJmMzExM2NlOWRkNzM0Y2JkMyIsImlhdCI6MTY3OTIwNTU0MCwiZXhwIjoxNjc5MjA2NDQwfQ.gdRqeN6HeShChKUVCj6ORhHF6kb3hmCWUSx6JZfuuIc\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{kudi_url}}/token-reset"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"21"},{"key":"ETag","value":"W/\"15-TLNzmZqKxaTuFdX/dVWWPBu44/c\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:22:27 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Forbidden\"\n}"},{"id":"f6069401-e2f5-41e5-9a87-712e65077d97","name":"Valid token passed","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\r\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0MTZhMzJmMzExM2NlOWRkNzM0Y2JkMyIsImlhdCI6MTY3OTI0MjgxMSwiZXhwIjoxNjc5MjQzNzExfQ.ozSBvh6pA0loXN5pD10r-2Hj0BwQPfxwegp4kqYH_Nc\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{kudi_url}}/token-reset"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"189"},{"key":"ETag","value":"W/\"bd-ue+McF4pdOAOr6R1LZbpPyLAGss\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:23:17 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"accessToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0MTZhMzJmMzExM2NlOWRkNzM0Y2JkMyIsImlhdCI6MTY3OTI0Mjk5NiwiZXhwIjoxNjc5MjQzODk2fQ._fyodqiVAtvOL8gqYlY1-oEzE35HKBmYdOzw-XmdQHk\"\n}"}],"_postman_id":"fab13b00-6616-46a8-9441-b35ae1053653"},{"name":"Forgot password","id":"b67eac7b-a733-4a47-b04a-763a6455c015","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"gabrielayoku@gmail.com\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/account/forgot","description":"<p>This endpoint mails the user with instructions to reset password forgotten.</p>\n<p>Request Body Parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Data Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Email linked with an account.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","account","forgot"],"host":["kudiflow-backend","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"a788d2c0-479c-4c25-9496-cbb3ea315436","name":"Forgot Password","originalRequest":{"method":"GET","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"email","value":"janedoe@example.com","type":"text"}]},"url":"{{kudi_url}}/forgot"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"21"},{"key":"ETag","value":"W/\"15-ga8EF/lp+ThIsc8w/OHbk4hPrME\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:21:33 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"success\"\n}"}],"_postman_id":"b67eac7b-a733-4a47-b04a-763a6455c015"},{"name":"Login user","event":[{"listen":"test","script":{"id":"e0ee504c-9490-462b-a930-efd260822bd5","exec":["pm.test(\"Status code is 202\", function () {","    pm.response.to.have.status(202);","});","","pm.test(\"Response time is less than 2000ms\", function (){","    pm.expect(pm.response.responseTime).to.be.below(2000);","});"],"type":"text/javascript"}}],"id":"5fcf06a9-1d27-4c7b-b1f1-4f4b1c957ddd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"gabrielayoku@gmail.com\",\r\n    \"password\": \"passwod1!\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/account/login","description":"<p>This endpoint logs a registered user in.</p>\n<p>Request Body Paramters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Data Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>Email used to register.</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n<td>Password used to register</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","account","login"],"host":["kudiflow-backend","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"57bf4574-96e7-4936-a6ca-3d0ed595c5b1","name":"User logged in","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"janedoe@example.com\",\r\n    \"password\": \"password1!\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{kudi_url}}/login"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"189"},{"key":"ETag","value":"W/\"bd-lzjzX7O61sAW/chEa0az6vsQX1U\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:13:16 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"accessToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY0MTZhMzJmMzExM2NlOWRkNzM0Y2JkMyIsImlhdCI6MTY3OTI0MjM5NiwiZXhwIjoxNjc5MjQzMjk2fQ.neIJoXt3KDIqqUoyiyFXsD2Qml8IuXW_LG_nmbP_5cE\"\n}"},{"id":"a5ddf55e-bd9e-452f-8e26-214782c8fb17","name":"Invalid password or email","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"janedoe@example.com\",\r\n    \"password\": \"password!\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{kudi_url}}/login"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"37"},{"key":"ETag","value":"W/\"25-3YG4LRpklFolV4uVOnUIRm2hZA0\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:16:14 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Invalid email or password\"\n}"}],"_postman_id":"5fcf06a9-1d27-4c7b-b1f1-4f4b1c957ddd"},{"name":"Reset password","id":"0ecac820-b5d5-4d8b-9146-c59d82c82f2b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"newPassword\": \"goodboy\",\r\n    \"confirmPassword\": \"goodboy\",\r\n    \"resetToken\": \"2a47e9d9083faa331a4021e5a3781ddf48a86e5cb9a9351c965ec87dffdd\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/account/password-reset","description":"<p>This endpoint resets the user's password.</p>\n<p>Request Body Parameter:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Data Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>newPassword</td>\n<td>string</td>\n<td>password to replace old one.</td>\n</tr>\n<tr>\n<td>confirmPassword</td>\n<td>string</td>\n<td>confirmation of the new password</td>\n</tr>\n<tr>\n<td>resetToken</td>\n<td>string</td>\n<td>token passed as a query parameter in the email sent to the user.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","account","password-reset"],"host":["kudiflow-backend","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"6f5da111-21d6-4994-90d0-35ea82d81eba","name":"Invalid refreshtoken","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"newPassword\": \"goodboy\",\r\n    \"confirmPassword\": \"goodboy\",\r\n    \"resetToken\": \"2a47e9d9083faa331a4021e5a3781ddf48a86e5cb9a9351c965ec87dffdd\"\r\n}","options":{"raw":{"language":"json"}}},"url":"{{kudi_url}}/password-reset"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"24"},{"key":"ETag","value":"W/\"18-XPDV80vbMk4yY1/PADG4jYM4rSI\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:39:41 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"}],"_postman_id":"0ecac820-b5d5-4d8b-9146-c59d82c82f2b"}],"id":"9a7e2a6b-23c4-41bf-85e8-85c9d4d08a51","description":"<p><strong>Authentication APIs for the kudiflow application.</strong></p>\n","_postman_id":"9a7e2a6b-23c4-41bf-85e8-85c9d4d08a51","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","name":"KudiFlow","type":"collection"}}},{"name":"Track Income and Exp","item":[{"name":"User income and expense","id":"b2bd0120-953c-4dbc-b35e-524dff213d9f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://kudiflow-backend.onrender.com/v1/track/trackIEs?page=0&limit=6","description":"<p>This endpoint gets the list of <code>income</code> and <code>expense</code> for the current user as well as the updated current balance.</p>\n<p>URL Query Paramters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Data Type</strong></th>\n<th><strong>Required?</strong></th>\n<th><strong>Default</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>page</td>\n<td>integer</td>\n<td>No</td>\n<td>0</td>\n<td>Current page for the list of Income and Expenses</td>\n</tr>\n<tr>\n<td>limit</td>\n<td>integer</td>\n<td>No</td>\n<td>5</td>\n<td>Maximum number of Income and expenses per page</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","track","trackIEs"],"host":["kudiflow-backend","onrender","com"],"query":[{"key":"page","value":"0"},{"key":"limit","value":"6"}],"variable":[]}},"response":[{"id":"a308159d-cd47-48c9-833f-04100d25f2dc","name":"Invalid auth token","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{track}}/trackIEs?page=0&limit=3","host":["{{track}}"],"path":["trackIEs"],"query":[{"key":"page","value":"0"},{"key":"limit","value":"3"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"24"},{"key":"ETag","value":"W/\"18-XPDV80vbMk4yY1/PADG4jYM4rSI\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:45:47 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"8d03cf97-c093-4a54-960f-18c1eda586cf","name":"Income and Expenses","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://kudiflow-backend.onrender.com/v1/track/trackIEs?page=0&limit=6","protocol":"https","host":["kudiflow-backend","onrender","com"],"path":["v1","track","trackIEs"],"query":[{"key":"page","value":"0"},{"key":"limit","value":"6"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 24 Apr 2023 09:37:33 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"CF-Ray","value":"7bcd5e433c8bd7a1-LOS"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"161-xmKQ++SUtLyDoecIEI957mchvso\""},{"key":"Vary","value":"Accept-Encoding"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"Set-Cookie","value":"__cf_bm=NhuBTwfWjYpoMHDHPKZJFekGFPz5Br3lKRxG1bZKtcA-1682329053-0-AanEwTK4vBYKSpJ/RcOUeXaqitD7k8HDmIqfIDY5Md1ghvrf8QqxV7jvOSyuim0p2UweCmAj3uO4hPxjmQ6iP74=; path=/; expires=Mon, 24-Apr-23 10:07:33 GMT; domain=.onrender.com; HttpOnly; Secure; SameSite=None"},{"key":"Server","value":"cloudflare"},{"key":"Content-Encoding","value":"br"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400, h3-29=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"currentBalance\": 200,\n    \"flowList\": [\n        {\n            \"_id\": {\n                \"year\": 2023,\n                \"month\": 4,\n                \"day\": 24\n            },\n            \"data\": [\n                {\n                    \"cashFlow\": {\n                        \"type\": \"Expense\",\n                        \"amount\": 200,\n                        \"description\": \"bought beans\",\n                        \"currentBalance\": \"200\",\n                        \"createdAt\": \"2023-04-24T09:35:24.342Z\"\n                    }\n                },\n                {\n                    \"cashFlow\": {\n                        \"type\": \"Income\",\n                        \"amount\": 600,\n                        \"description\": \"dad lash\",\n                        \"currentBalance\": \"1600\",\n                        \"createdAt\": \"2023-04-24T09:34:26.240Z\"\n                    }\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"b2bd0120-953c-4dbc-b35e-524dff213d9f"},{"name":"Add Cashflow","id":"2c9037e3-f63f-45ed-b5e8-d28c92bc3b18","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 40,\r\n    \"description\": \"urgent 40\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/track/income","description":"<p>This endpoint adds the user's income and description.</p>\n<p>Request Body Parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Data Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>amount</td>\n<td>integer</td>\n<td>amount received</td>\n</tr>\n<tr>\n<td>description</td>\n<td>string</td>\n<td>details of the transaction</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","name":"KudiFlow","type":"collection"}},"urlObject":{"protocol":"https","path":["v1","track","income"],"host":["kudiflow-backend","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"42d034ef-ba98-41d4-aa9e-bb95103b99d9","name":"Income Added","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 600,\r\n    \"description\": \"dad lash\",\r\n    \"type\": \"Income\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/track/cashFlow"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 24 Apr 2023 09:34:26 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"CF-Ray","value":"7bcd59b47bd9d7a1-LOS"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"15-ga8EF/lp+ThIsc8w/OHbk4hPrME\""},{"key":"Vary","value":"Accept-Encoding"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"Set-Cookie","value":"__cf_bm=fU8GW0nv9suWp33lg7FQlpcV6FKGpBd_a1oQNyOaYKc-1682328866-0-Ad8qKjvd1Y6z526F97JNzhE3xaDDNVchLPVohnQg9dmhany3jYCZDx2b+JcLnCcJL4W8xN1hqZiNNoSa4WFUx0A=; path=/; expires=Mon, 24-Apr-23 10:04:26 GMT; domain=.onrender.com; HttpOnly; Secure; SameSite=None"},{"key":"Server","value":"cloudflare"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400, h3-29=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"success\"\n}"},{"id":"03fd9ed2-3d6f-4c45-aa56-0b0b5deb9204","name":"Expense added","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 200,\r\n    \"description\": \"bought beans\",\r\n    \"type\": \"Expense\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/track/cashFlow"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 24 Apr 2023 09:35:24 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"CF-Ray","value":"7bcd5b1c4c5ad7a1-LOS"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"15-ga8EF/lp+ThIsc8w/OHbk4hPrME\""},{"key":"Vary","value":"Accept-Encoding"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"Set-Cookie","value":"__cf_bm=uBiuYmZ6UOT8VAtb2x1RwnciRijQ.y1tM9sNCnXDbOM-1682328924-0-AXoJA+J1/dE8v35oW8FusoKZWrk0YnS3zy7r/lq+IvwCpdrfQj0A8lCqSPFsl2pwqCE3E+u4sr0/L8QqqIOF+0g=; path=/; expires=Mon, 24-Apr-23 10:05:24 GMT; domain=.onrender.com; HttpOnly; Secure; SameSite=None"},{"key":"Server","value":"cloudflare"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400, h3-29=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"success\"\n}"},{"id":"2c34238f-2faa-4f6e-bdd1-001a2c89488e","name":"Unauthorized user","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"amount\": 300,\r\n    \"description\": \"payday\",\r\n    \"type\": \"Income\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/track/cashFlow"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 24 Apr 2023 09:36:29 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"CF-Ray","value":"7bcd5cb4cc7bd7a1-LOS"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"18-XPDV80vbMk4yY1/PADG4jYM4rSI\""},{"key":"Vary","value":"Accept-Encoding"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"x-powered-by","value":"Express"},{"key":"x-render-origin-server","value":"Render"},{"key":"Set-Cookie","value":"__cf_bm=973NAYQjwOp16jetGlMcMLqhjMzzSqjW_u9IOlGADKA-1682328989-0-AYJPooxkE+HMym1/n+MrJmPx4O6/P6E/gJWnCyk5vvvfYFZNdPM+eC4HG+JJWUDVRElvWiycQanKfkHnrQeiHtg=; path=/; expires=Mon, 24-Apr-23 10:06:29 GMT; domain=.onrender.com; HttpOnly; Secure; SameSite=None"},{"key":"Server","value":"cloudflare"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400, h3-29=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"}],"_postman_id":"2c9037e3-f63f-45ed-b5e8-d28c92bc3b18"},{"name":"Add user balance","id":"f04eac33-ed2f-4c8c-8527-9e482d2044c3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"currentBalance\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/track/balance","description":"<p>This endpoint adds the user's starting balance to track.</p>\n<p><strong>NOTE:</strong></p>\n<ul>\n<li>Use when the user wants to start tracking.</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Data Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>currentBalance</td>\n<td>integer</td>\n<td>amount to start tracking</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","track","balance"],"host":["kudiflow-backend","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"2c375feb-4755-4a9f-85b2-6e978ceff5c6","name":"Tracking balance added","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"currentBalance\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{track}}/balance"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"21"},{"key":"ETag","value":"W/\"15-ga8EF/lp+ThIsc8w/OHbk4hPrME\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:29:22 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"success\"\n}"},{"id":"4e55ad94-f105-45e1-a9d8-5f58fa7c919a","name":"Invalid auth token","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"currentBalance\": 1000\r\n}","options":{"raw":{"language":"json"}}},"url":"{{track}}/balance"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"24"},{"key":"ETag","value":"W/\"18-XPDV80vbMk4yY1/PADG4jYM4rSI\""},{"key":"Date","value":"Sun, 19 Mar 2023 16:48:19 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"}],"_postman_id":"f04eac33-ed2f-4c8c-8527-9e482d2044c3"}],"id":"b99f06ed-5c35-4bca-afb8-4876d292a465","description":"<p>APIs for the<code>Track</code> feature implemented.</p>\n","_postman_id":"b99f06ed-5c35-4bca-afb8-4876d292a465","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","name":"KudiFlow","type":"collection"}}},{"name":"User Actions","item":[{"name":"Change Logged user password","id":"4170b6e1-b4fa-4b5c-bf4c-5304ca3d5447","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"newPassword\": \"goodday!\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/user/newpassword","description":"<p>This endpoint changes a logged user's password.</p>\n<p>Request Body Parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>newPassword</td>\n<td>String</td>\n<td>New password user wants to change to</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","user","newpassword"],"host":["kudiflow-backend","onrender","com"],"query":[],"variable":[]}},"response":[{"id":"cb4297c6-ec93-402a-b9da-57f6da4043d6","name":"Password Change success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"newPassword\": \"goodday!\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://kudiflow-backend.onrender.com/v1/user/newpassword"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"21"},{"key":"ETag","value":"W/\"15-ga8EF/lp+ThIsc8w/OHbk4hPrME\""},{"key":"Date","value":"Mon, 24 Apr 2023 10:04:37 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"success\"\n}"}],"_postman_id":"4170b6e1-b4fa-4b5c-bf4c-5304ca3d5447"}],"id":"51d91bc9-2b72-4606-b7da-98fba6bb49fe","_postman_id":"51d91bc9-2b72-4606-b7da-98fba6bb49fe","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":true,"source":{"_postman_id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","id":"1bbd9f61-2a40-4934-a01c-e29f503fd7f6","name":"KudiFlow","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]}},"event":[{"listen":"prerequest","script":{"id":"7d2a6486-f49e-4ba6-afb3-c96a80c03b21","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"ca3b30c1-759c-454a-a88f-bad78051c54b","type":"text/javascript","exec":[""]}}]}