By Eric Ying, Software Engineer at Chime
At Chime, we provide our members with multiple ways to transfer funds, one of which is Mobile Check Deposit (MCD). MCD is how our members deposit physical checks into their checking account by taking pictures of the front and back of the check using the Chime app. Despite the growing prevalence of digital payments, paper checks still remain the second most common form of wage payment behind direct deposit. According to PayrollOrg's 2024 Getting Paid in America survey, 3.68% of participants responded they were paid in paper checks, only behind the 91.9% for direct deposit (source). The Cash and Checks team at Chime is responsible for building the entire end-to-end experience of MCD —from in-app submission to secure movement of funds behind the scenes.
Like most features on Chime, MCD relies on communication between the front end (the mobile app in this case) and backend microservices. In the past, when a check was submitted, the app would make a single backend call to our service. In that single submit call, several operations were performed on the check back-to-back:
Store relevant check metadata in our database.
Run various risk rules against the check.
Perform optical character recognition (OCR). This step is particularly important, as it is how we extract the account and routing number from the check.
Send checks downstream to be processed.
In 2024, we undertook a large-scale migration to improve this process by splitting the single submission API call into three lightweight API calls: those being Upload Front Image, Upload Rear Image, and Submit.
Upload Front Image: This is called immediately after the member uploads the front image of the check.
Upload Rear Image: This is called immediately after the member uploads the rear image of the check.
Submit: This is called when members review the check and tap submit.
There were three primary motivations behind this migration:
Access check information prior to check submission: By decoupling OCR from the submit and moving to the front image upload, we can begin validating check details earlier in the process, which unlocks opportunities for smarter processing decisions later down the line. This opens the door for future improvements that critically rely on this data. One example is instant release of check funds, an initiative launched shortly after this migration to immediately release funds for the majority of checks deposited on Chime.
Enhance check delivery estimates: The ability to access check information earlier enables us to give a smarter estimate of check hold duration, or how long before we release funds to the member.
Provide feedback in real time: Members often take photos of checks in poor conditions, resulting in unreadable check images. When this happens, we prompt members to restart the MCD process, leading to a poor member experience. With multi-step submission, we can alleviate this pain point by delivering real-time feedback on the quality of the image immediately after each attempt.
Pre Migration
![[CC] Enhancing Mobile Check Deposits - Content Image 1](/_ctf-img/ao7gxs2zk32d/UyjPfciyPuip3H9aZm8Uz/f0843732d47b5be80905c3a773bf8a80/image4.png?fm=webp&w=800&fit=fill&q=50)
Post Migration
![[CC] Enhancing Mobile Check Deposits - Content Image 2](/_ctf-img/ao7gxs2zk32d/2F6LoSv3R7E0yhQ1n06vsh/71460b5e8c7064fc56797104cb5a8c18/image5.png?fm=webp&w=800&fit=fill&q=50)

![[CC] Enhancing Mobile Check Deposits - Content Image 3](/_ctf-img/ao7gxs2zk32d/1iTHJJnTnA72gSRbNmjm7P/c1e0635fed19319ba66b4a76500fc32b/image6.png?fm=webp&w=800&fit=fill&q=50)
![[CC] Enhancing Mobile Check Deposits - Content Image 4](/_ctf-img/ao7gxs2zk32d/3DfnU3tH6OyMdGvWZTm4BE/548e000fa83e323ac1634002335b7781/image7.png?fm=webp&w=800&fit=fill&q=50)
![[CC] Enhancing Mobile Check Deposits - Content Image 5](/_ctf-img/ao7gxs2zk32d/54aP9ODARHReF3foeu6ilW/8681b1d336257bf8374bcf3a68801c56/image8.png?fm=webp&w=800&fit=fill&q=50)
![[CC] Enhancing Mobile Check Deposits - Content Image 6](/_ctf-img/ao7gxs2zk32d/6BuMoNB4CUJ9QoL7DOBSJE/739b8430f9151c87be1f284c8f678cfd/image9.png?fm=webp&w=800&fit=fill&q=50)
![[CC] Enhancing Mobile Check Deposits - Content Image 7](/_ctf-img/ao7gxs2zk32d/1MMakjHK763ORdUNJjc24G/574c7cbe2c2817949a707087ae74834c/image10.png?fm=webp&w=800&fit=fill&q=50)
![[CC] Enhancing Mobile Check Deposits - Content Image 8](/_ctf-img/ao7gxs2zk32d/45iywIoSW1oalJiN7CzYUo/83ffb2148fe970490c264d198bc55851/image11.png?fm=webp&w=800&fit=fill&q=50)