{"info":{"_postman_id":"b81bb7b0-8295-4365-8569-29dc1997772a","name":"PayFlow API V1","description":"<html><head></head><body><p>This is the official documentation for the PayFlow API Backend.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"36820009","collectionId":"b81bb7b0-8295-4365-8569-29dc1997772a","publishedId":"2sB2qgeJiF","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-06-01T08:58:35.000Z"},"item":[{"name":"auth","item":[{"name":"Sign Up","id":"d0990a29-e00c-4152-91d2-feeb3721ed3b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n   \"email\": \"iygealonline@gmail.com\",\r\n   \"password\": \"testonly\",\r\n   \"firstName\": \"Iygeal\",\r\n   \"middleName\": \"Innocent\",\r\n   \"lastName\": \"Anozie\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://payflow-fintech.onrender.com/api/v1/auth/register?","description":"<p>This demonstrates how a user registers on the app. A user enters all the required fields; gets sent a verification which they can use to verify their account on the app.</p>\n","urlObject":{"protocol":"https","path":["api","v1","auth","register"],"host":["payflow-fintech","onrender","com"],"query":[{"description":{"content":"<p>This demonstrates how a user registers on the app. A user enters all the required fields; gets sent a verification which they can use to verify their account on the app.</p>\n","type":"text/plain"},"key":null,"value":null}],"variable":[]}},"response":[],"_postman_id":"d0990a29-e00c-4152-91d2-feeb3721ed3b"},{"name":"Verify Email","id":"671cd660-5bff-4e8c-931b-f268a774aa6b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"\r\n","options":{"raw":{"language":"json"}}},"url":"https://payflow-fintech.onrender.com/api/v1/auth/verify-email/aaa8614f4b80fd8cc4d1a30054ab9648c762ea6244a678d18d2cb8db8fc7a259?","description":"<p>The user sends a GET request using the verification sent to the registered email. This verifies the user's account.</p>\n","urlObject":{"protocol":"https","path":["api","v1","auth","verify-email","aaa8614f4b80fd8cc4d1a30054ab9648c762ea6244a678d18d2cb8db8fc7a259"],"host":["payflow-fintech","onrender","com"],"query":[{"description":{"content":"<p>The user sends a GET request using the verification sent to the registered email. This verifies the user's account.</p>\n","type":"text/plain"},"key":null,"value":null}],"variable":[]}},"response":[],"_postman_id":"671cd660-5bff-4e8c-931b-f268a774aa6b"},{"name":"Login","id":"579fa017-49a3-4010-aa5a-0fbb82c8f98c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n   \"email\": \"iygealonline@gmail.com\",\r\n   \"password\": \"testonly\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://payflow-fintech.onrender.com/api/v1/auth/login?","description":"<p>The registered and verified user can use their email and password to login to access their account, view their wallet balance, make transactions and even delete their account if they wish.</p>\n","urlObject":{"protocol":"https","path":["api","v1","auth","login"],"host":["payflow-fintech","onrender","com"],"query":[{"description":{"content":"<p>The registered and verified user can use their email and password to login to access their account, view their wallet balance, make transactions and even delete their account if they wish.</p>\n","type":"text/plain"},"key":null,"value":null}],"variable":[]}},"response":[],"_postman_id":"579fa017-49a3-4010-aa5a-0fbb82c8f98c"},{"name":"Forgot Password","id":"b0090f56-5f42-4851-a1e0-1889473fcc53","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n   \"email\": \"iygealonline@gmail.com\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://payflow-fintech.onrender.com/api/v1/auth/forgot-password","description":"<p>A user who forgets their password to the app won't be locked out forever. They can request to reset it using the .../auth/forgot-password route. Here they request using their email and a password reset token is sent to their email.</p>\n","urlObject":{"protocol":"https","path":["api","v1","auth","forgot-password"],"host":["payflow-fintech","onrender","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"b0090f56-5f42-4851-a1e0-1889473fcc53"},{"name":"Reset Password","id":"07419317-7dd2-4ca5-8322-41b8cb2407d6","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\": \"careerex\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://payflow-fintech.onrender.com/api/v1/auth/reset-password/a710f9c18b3e491ff027519261dee157bedbfb40640a4b0084b95861ed0345c9","description":"<p>After requesting for a password reset token, the user will immediately use the received link to quickly and securely change their password.</p>\n","urlObject":{"protocol":"https","path":["api","v1","auth","reset-password","a710f9c18b3e491ff027519261dee157bedbfb40640a4b0084b95861ed0345c9"],"host":["payflow-fintech","onrender","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"07419317-7dd2-4ca5-8322-41b8cb2407d6"}],"id":"c2e29942-2dae-4dee-831d-dc91978ed1b9","description":"<p>These are the basic routes requiring authentication, which are key to get a user up and running.</p>\n","_postman_id":"c2e29942-2dae-4dee-831d-dc91978ed1b9"},{"name":"users","item":[{"name":"Get User Profile","id":"4c8e00f3-a873-4905-b4b5-2ff7f346caab","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://payflow-fintech.onrender.com/api/v1/users/profile/683b8c570fa2deca3b12ab90","description":"<p>A logged in/authorized user can get their profile info and wallet balance through this route.</p>\n","urlObject":{"protocol":"https","path":["api","v1","users","profile","683b8c570fa2deca3b12ab90"],"host":["payflow-fintech","onrender","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4c8e00f3-a873-4905-b4b5-2ff7f346caab"},{"name":"Update User Profile","id":"bfd03a56-888c-445a-9fca-3eadc777d90d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n   \"password\": \"tester77\",\r\n   \"firstName\": \"Iygeal\",\r\n   \"middleName\": \"Onyekachi\",\r\n   \"lastName\": \"Anozie\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://payflow-fintech.onrender.com/api/v1/users/profile/683b8c570fa2deca3b12ab90","description":"<p>A logged in user, who, of course, has the authorization (hence logged in), can change things on their profile using this route via a PUT request.</p>\n","urlObject":{"protocol":"https","path":["api","v1","users","profile","683b8c570fa2deca3b12ab90"],"host":["payflow-fintech","onrender","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"bfd03a56-888c-445a-9fca-3eadc777d90d"},{"name":"Delete User","id":"2050332e-cc28-4654-ad33-92eb85a5c43c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"body":{"mode":"raw","raw":"\r\n"},"url":"https://payflow-fintech.onrender.com/api/v1/users/profile/683b8c570fa2deca3b12ab90","description":"<p>This route enables a user to delete their account if they so wish. By doing so, their accounts gets deleted from the PayFlow database and their email can be used for fresh registration.</p>\n","urlObject":{"protocol":"https","path":["api","v1","users","profile","683b8c570fa2deca3b12ab90"],"host":["payflow-fintech","onrender","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"2050332e-cc28-4654-ad33-92eb85a5c43c"}],"id":"8f1fcdcc-a2fc-4ff7-b0a8-ffb766df76cf","description":"<p>These routes manage the user model.</p>\n","_postman_id":"8f1fcdcc-a2fc-4ff7-b0a8-ffb766df76cf"},{"name":"wallets","item":[{"name":"Fund Wallet","id":"2e3b665a-d5c1-4327-8784-4a4e38568b75","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\": 50000000\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://payflow-fintech.onrender.com/api/v1/wallets/balance","description":"<p>With this route, a registered and logged in user can found their wallet. This authomatically updates their wallet balance.</p>\n","urlObject":{"protocol":"https","path":["api","v1","wallets","balance"],"host":["payflow-fintech","onrender","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"2e3b665a-d5c1-4327-8784-4a4e38568b75"},{"name":"View Wallet Balance","id":"dd21a78c-7822-4de5-a915-66066f5760bc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://payflow-fintech.onrender.com/api/v1/wallets/balance","description":"<p>With this route, a logged in user can view their wallet balance, including the date and time the request was made, showing them that the balance is up to date.</p>\n","urlObject":{"protocol":"https","path":["api","v1","wallets","balance"],"host":["payflow-fintech","onrender","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"dd21a78c-7822-4de5-a915-66066f5760bc"}],"id":"90d319fd-303c-4442-a0a6-c60b76134e05","description":"<p>These routes are for the wallet model</p>\n","_postman_id":"90d319fd-303c-4442-a0a6-c60b76134e05"},{"name":"transactions","item":[{"name":"Send Money","id":"4705e222-ea06-4794-9f67-9fdc29b395b6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n   \"receiverEmail\": \"biosnetng@gmail.com\",\r\n   \"amount\": 10000000,\r\n   \"description\": \"Use the money to advance your tech career via CareerEx.\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://payflow-fintech.onrender.com/api/v1/transactions/transfer","description":"<p>This route handles the transfer of money from one user to another. It requirers the email address of the receiver and the amount to be sent. The sending user must have a balance greater than zero and the amount to be sent has to be greater than or equal to his current balance at any point. Some edge cases has been implemented on the controller function of this route to warn and prevent users attempting to send more money than they have.  </p>\n<p>Optionally, the sender can add a description to the transfer.</p>\n<p>The transfer is recorded as 'debit' to the sender and 'credit' to the receiver. These can be viewed from each user's transaction history route.</p>\n","urlObject":{"protocol":"https","path":["api","v1","transactions","transfer"],"host":["payflow-fintech","onrender","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4705e222-ea06-4794-9f67-9fdc29b395b6"},{"name":"View Transaction History","id":"0f6da0b2-b1f5-4d3b-b7f4-2f2c83fa1139","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"https://payflow-fintech.onrender.com/api/v1/transactions/history","description":"<p>This route enables a logged in user to view their transaction history.</p>\n","urlObject":{"protocol":"https","path":["api","v1","transactions","history"],"host":["payflow-fintech","onrender","com"],"query":[],"variable":[]}},"response":[],"_postman_id":"0f6da0b2-b1f5-4d3b-b7f4-2f2c83fa1139"}],"id":"6209663b-5d3d-4fa6-926d-a5d4311d38c5","description":"<p>These routes manage the core functionality of a typical FinTech app, which is centered around sending money among users and viewing transaction history.  </p>\n<p>All routes in this group require authentication/authoriation.</p>\n","_postman_id":"6209663b-5d3d-4fa6-926d-a5d4311d38c5"}]}