PIX integration in the Dotz app
Pix in the Dotz app, built and shipped in 30 fixed days so the company could operate Pix on the day it launched in Brazil.
Dotz is one of the largest loyalty programs in Brazil, with more than 45 million registered customers who turn everyday spending into points at hundreds of online and physical partners. In 2020 the company launched its digital account, and Pix was the next step to let users move money and use their balance inside the app.
The Central Bank granted companies early access to the Pix API so they could be ready on launch day. The deadline could not move, and the Dotz team alone would not make it. Compasso UOL was brought in at the last minute as extra engineering capacity, and I joined with exactly 30 days left to build, test and ship. Missing it would leave the product frozen for about 3 months until the next release window, and Dotz would not operate Pix on launch day.
As front-end lead for the React Native app on the Compasso side, I delivered the full Pix journey:
- Pix keys (DICT): register, list and delete CPF, phone, email and random keys, plus claim and portability flows
- Pay: camera QR code reader and Pix copia e cola, for static and dynamic BR Codes
- Transfer by key: key lookup, recipient confirmation, amount and send
- Receive: QR code generation to receive payments
- Receipts and statement: proof of each transaction and Pix history
Security:
- Transaction confirmation with biometrics or PIN
- Device binding before Pix use
- Per-transaction, daily and night limits
- Anti-fraud checks, confirming recipient name and bank before each transfer
Stack and architecture:
- App: React Native and TypeScript on iOS and Android
- State: Redux for the Pix flows
- Integration: the app talked to the Dotz backend, which connected to the Central Bank Pix infrastructure
- Quality: unit and component tests with Jest and Testing Library
Result: shipped on time, with Dotz operating Pix from the day the service launched.