a weekend to develop and release the MVP. Kept being improved and maintained until Feb 2019, until some issues happened. In this case study we will share about how we solved some of those problem, and how we use Firebase to do it.
Cashbacc (https://cashba.cc), where you can compare discount price amount for multiple ewallets. When using it, I realized that there is no easy way to move your wallet balance from each wallets. The cost of moving money between these siloes are enough deterrent. VA transfer 1k Withdraw ~5k
Platforms have no (publicly) official developer APIs yet. We have to use a combination of reverse engineering, Man-in-the-Middle snooping, and other creative ways to legally operate, and automate, our accounts. maximum floating value each ewallets has to comply by gov’s regulations. That is, any unverified accounts can only some small amount of IDR, and verified accounts can hold up to 2M. This limits our availability and size of transactions. different protection of user data Some ewallets send full info of a sender’s data. In this case we are using phone numbers as identifier. But some other wallets do not send info at all, or redacted some of the information. Muhammad Mustadi -> M******* ******i suspicious activity detection Excessive inbound and outbound transactions may alert the platform’s security system, which may think it’s a money laundering scheme, hacking attempts, or combination of other things.
handle errors/detection by ourselves - still centralized (single point of failure) - need to identify which tx’s are valid and not (magic numbers) pure p2p/matchmaker - needs volume - no way for users to refund
Easy dev experience, paired with chakra-ui for even better DX Firebase was used due to its easy integration with React projects. Also we need the onCreate user hook which is achievable with . We use to store the relation between each mobile number and the metadata from all the providers, and other stuff Firebase Authentication Firebase Functions Firebase Cloud Firestore Vercel Easy integration with github (new build for every PR) and natural habitat for Next.js projects Heroku For queue runners (we use bullmq) to check balances, inbound and outbound transactions.
main account’s P2P feature We’re halting operations for now. We considered using other account, which will only delay until this happens again. Or we tried to do something creative with the way we can withdraw periodically in batches and send the money via VA. But it will increase the cost. We are still in talk about this. General confusion about the scheme We had a lot of people trying to send the money to other recipients, which is not allowed under current assumptions. The same with people who use different mobile numbers to use with different services.