dLocal marketplace onboarding — step 2 (Mexico & Brazil)

Audience: Business stakeholders, ops, design/engineering partners
Purpose: Why we are improving KYC document collection — with rejection data by country
Jira: REVPAY-6371
Product request (cycle): DocPlanner/dp-payments-ai#275

1. What this initiative is about (short)

Doctors and clinics in Mexico and Brazil who want marketplace payouts via dLocal must pass a KYC-style flow. Step 2 is where they upload proof of identity and (where applicable) tax or company registration documents.

The REVPAY-6371 cycle (scoped in dp-payments-ai PR #275) improves that step so that:

Why it matters for ops: dLocal rejects many uploads flagged as documents_screen_photo (screen captures). Giving a first-class camera path and clearer document choice directly targets that failure mode.

2. Rejection reasons — data overview (ops dashboard)

Figures below come from the internal report “Not Approved Reason” for ACCOUNTS REJECTED / BANK REJECTED, filtered by country (same metric family ops uses when discussing marketplace account quality).

Mexico — top rejection codes

Total rows in extract: 335 rejections (sum of listed codes).

Error code#% of MX total
documents_screen_photo15546.3%
REJECTED_TAX_ID_NOT_MATCH4112.2%
documents_invalid278.1%
Bank account rejected by dLocal206.0%
documents_missmatch185.4%
documents_expired185.4%
documents_same_image185.4%
documents_missing_fields185.4%
legal_representative_not_found_in_company113.3%
documents_grayscale_image51.5%
document_not_readable30.9%
documents_cropped10.3%

Brazil — same metric, for contrast

Total rows in extract: 522 rejections. documents_screen_photo is material but not dominant the way it is in Mexico.

Error code#% of BR total
documents_unexpected_data10019.2%
documents_invalid9217.6%
documents_expired7013.4%
documents_screen_photo5610.7%
documents_same_image479.0%
REJECTED_ACCOUNT_NOT_FOUND346.5%
documents_missing_fields305.7%
documents_missmatch214.0%
documents_grayscale_image203.8%
invalid_bank_branch183.4%
…remaining codes each < 2% (invalid account number, blurry text, bank name, etc.)

3. Takeaway


Disclaimer: This repository is a personal / Docplanner workflow space. It is not affiliated with dLocal (the company). Dashboard numbers are a point-in-time export from internal tooling; refresh the underlying report for live totals. Formal scope and acceptance criteria: dp-payments-ai#275 and Jira REVPAY-6371.