Now ** Paypal Supports Bitcoin ** . This statement started to create curiosity among software development community and other payment processing companies. The payment gateway is a popular and most attractive business model in Online E-Commerce Business eco-system. Paypal is been the leader in digital payment system. Now it extend the support to cryptocurrency.
We are going to present the list key functions, features and tech considerations for a Paypal Clone as a Minimum Viable Product.
Modules the Application
For the documentation & understanding purpose the key features are grouped as follows
- Pubic Website
- Registration / Login Module
- User Panel
- Admin Panel
Public website is a mobile friendly responsive website which publishes the information about the business and also acts as a doorway to the Registration, Login & Support Pages.
The identified pages are
- About Us Page
- Service Information Pages
- Legal / Terms of Service
- Contact Page
Key Design Considerations
- The pages are visually appealing & mobile friendly
- The pages are SEO friendly
Registration & Login
The application will be designed as a Member only service application. The registration and authorization uses Laravel’s in-build authorization framework.
Based on features two types of User Accounts are identified.
Users will be able to choose an account type based on the preferences
- Personal Account
- Business Account
Users will be able to create an account by entering the following: email address, password, name, address, location, phone number, agree to terms and conditions, etc.
Link a Debit/Credit card- Users need to enter the following: card number, expiration date, CSC, billing address, etc.
Based on the selected account type, the registration documents and KYC documents will defer. The typical documents in KYC are
- ID Proof (Photo ID)
- Location / Address Proof
- Bank Account Information & Proof
Fee & Transaction Limits
Based on the account type, the limits for the users to do Transactions & the fee per transaction will vary. The fee and limits are globally set.
Users will be able to log into the platform by entering their email address and password. The key considerations during Login & Session Management are
- One active login per user
- Force login activity with 2FA
- Suspicious login block based on IP Range
- Auto-lock on too many failed login attempts
Users will be able to select the “Have trouble logging in” option if they forgot the password on the application.
They need to enter their email address and select their preferred security check options to get a code. Then the users need to input the code to complete the password reset process.
Out of scope (for MVP)
- Integration of any 3rd Party KYC Services
- Setting up new User Account Types (assumption: Only 2 user account types )
- Setting up or Overwriting Fees per User ( assumption: global fee setup based on Account Type )
- Developing API Endpoints for Authentication ( assumption: currently web application only)
- Using any other OAuth / Google / Facebook Authentication methods
Users will be able to view and check the following details:
- Wallet & Balance
- Receive or Send Money/Coins
- Transaction History
Wallet & Balances
Any registered user (with email approved status), will be given a virtual wallet for Fiat Currencies.
Additionally they can create the ETH Address & Crypto Address.
Users will be able to check their wallet balance and add funds on the application.
Key Design Considerations
- Only one wallet per currency (Fiat / Crypto ) per user
- Each wallet has its own unique address
- Wallets can not be deleted, once created
- Wallets can be freezed from access, but can’t be deleted
- Client will provide a Receiving Address (Company Bank Address), where the user deposits his funds to.
- The deposit confirmation is manual process (to be performed by Admin / Sub Admin)
- For Cryptocurrency, Client will provide the SERVERS (NODES) – with RPC Access or API endpoints
Out of Scope (for MVP)
Installing or Managing the Cryptocurrency Servers
Migrating or importing any existing wallets or addresses
Reconciling with Bank Data or Bank Feeds
- Receive directly through Deposit/Wallet Address
The user can receive money by funding directly to deposit / wallet address through any compatible wallet or banking services
- Receive through Request Money Option
The user can request the money to any registered user / unregistered user by giving their email address along with amount & currency.
In case of an existing user, an Email sent with a payment link. Clicking payment will lead to a form Transfer the money.
In case of non-member, a registration link will be sent. Following the registration, the user will be redirected to Transfer Money option.
- Receive through Invoice (Business Accounts)
The user can create an Invoice and send it across to any business / individual to get paid. The typical workflow include
- Creating an invoice by detailing the Billing Item, Billing Unit, Cost per Unit, Discount %, Tax etc. It also includes the bill to address and necessary accounting code and information.
- Invoices can be edited, printed and cloned.
- Invoices payment status is tracked. In case of non-payment, the user can send reminder mails also.
- Directly to Wallet Address
The user can directly send the Money from his wallet to other members wallet by entering the wallet address
- Scan QR Code
The wallet addresses are long alphanumeric strings and it is possible to error in typing through. The common practice is to scan the QR code and get the address.
- Follow Payment Links
The user can send the Money by following the Payment Links. It will take the user to a pre-populated form with currency, wallet address and amount duly filled in.
- To Registered User
Simply by entering the users name /email address, the money can be transferred. The system will automatically deduct the wallet address for the given user.
Key Design Considerations
- All send calls are to be validated by 2FA & Transaction Password.
- The sending limits are pre-configured globally based on the User Account Type
Out of Scope (for MVP)
Integration of any AML (Anti Money Laundering ) API
Integration of any Accounting or Tax Solutions
The transaction history is grouped based on the wallet.
The data is further grouped by the nature (Send / Receive ) and also sorted by data ( Today, Yesterday, Last Week, Last Month, Older )
The transaction history are exportable as CSV
Date Search & Transaction ID Search are provided.
The key user settings are
- Profile Settings
- Transaction Password
- Account Freeze
This section lists the login info of the user including the Date Time, Browser & IP Address. The Data for the last 90 days are maintained.
The system sends event based and action based notifications messages. These messages are presented as a readable list. Typical notifications are
- Login Successful
- Payment Success / Failure
- Password Change Success
- Payment Received
- Payment link sent
- Invoice sent
- Invoice Reminder Sent
- KYC Approval / Reject
Admin panel aims to cater as an interface for managing the service of application and also serve as an interface to monitor the logs.
Admin will be able to log into the platform using their credentials. The key design considerations are
- Login forced by OTP (Send to Admin Email / Mobile)
- Multiple logins prevented
- Login only possible from White Listed IPs
In this section, the admin can check the overall activities of the platform with key performance indicators set by the company. Here the admin can view the following details
- Users Count ( New / All )
- Fees Collected
Admin will be able to manage users of the platform. The following features are available
- Filter Users by Business Account
- Filter Users by Recent Activity
- Search Users
- Export Users
The admin can view the user details and perform some support activities
- View User Info
- View User Wallet Balances
- View KYC Info
- View Login history
- Freeze Account
- Force Reset Password
List the sum of fees collected & fee transaction details.
The admin panel provide the following settings / control to effectively manage the portal
- Fee Settings
- Currency Settings ( Coin ON/ OFF )
- Transfer limit settings
Admin can set the email templates for all automated messages.
Admin can see all the transactions in the system. The following filters are made available
- Filter by Currency
- Filter by User
For monitoring purposes, the key events are logged
- Login Activity
- Transaction Activity
- Wallet Creations
- Password Changes
The system also has the Error Logs Interface. System generated errors are logged as a file. One file per day basis.
GET FREE QUOTE
Our GegoSoft team is happy to provide you a free quote for your Payment Gateway Project. Please contact us through the LIVE CHAT or Contact Form.