My Banking API

So in the last couple of days, I worked on building a robust banking API using the .Net stack – C# .Net, SQL Server, Entity Framework Core etc.

The API features the following endpoints:

  • POST api/Auth/Register – This allows users to register on the banking app. On registration, a bank account is automatically created and the account number returned to the user. A 6-digit secured OTP is also sent to the user email for verification. To further enhance security, this OTP has a 60secs lifetime. Here's what an OTP mail for email verification looks like on mobile.

  • POST api/Auth/VerifyEmail – Allows users to verify their email using the OTP sent to their emails.

  • POST api/Auth/GenerateNewToken – Allows the user to generate a new OTP token, in the event that the one sent to the email has expired.

  • POST api/Auth/Login – Allows users to login to their accounts, using their account number and password.

  • PUT api/BankUser/UpdateUser – Allows logged in users to update their info on the application. Does not allow update of names and Date of birth.

  • POST api/DepositTransfer/Deposit – Allows logged in users to deposit money into their account. On deposit, users receive a transaction notification email with details of the deposit transaction

  • POST api/DepositTransfer/Transfer – Allows logged in users to transfer money to other users registered on the app, using their account number. Both users receive a transaction notification email with the details of the transaction. Here's a sample of what the notification emails look like on a mobile.

  • Sample transactions notifications email

  • GET api/DepositTransfer/Balance – Allows logged in users to check balance on their account.

  • GET api/TransactionHistory/AllTransactions – Allows admin users to check ALL transactions carried out on the application.

  • GET api/TransactionHistory/OneAccountTransactions – Allows users to view all transactions that has occurred on their account.

  • GET api/TransactionHistory/DownloadStatement – Allows users to download a statement of account. On request, a pdf copy is also sent to the user email.

  • POST api/Utility/SendMail – allows admin users send emails, when necessary.

  • GET api/Loan/CheckEligibility – Allows logged in users check if they are eligible to apply for a loan. Loan eligibility is determined by total inflow within a 30 day period.

  • GET api/Loan/Apply – Allows logged in users to apply for a loan facility (still working on this).

Thank you for reading all the way here!

Connect with me:

My GitHub | My LinkedIn | Send me a mail