# Introduction

With Belvo's Loan Imports feature, you can upload your loan portfolios directly in the Direct Debit Portal. You upload a CSV describing your loans and their customers, and Belvo then creates the customers, registers their payment methods, and applies your collection strategy to generate the payment requests.

This is the no-code counterpart to Register and Track Loan Portfolios (API).

Get user consent to debit accounts
Before any funds are collected, you must:

1. Obtain explicit consent from your users, authorizing you to debit funds from their accounts.
2. Maintain documented evidence of this consent.


You can do this by uploading consents in bulk with our Bulk Consent Uploads feature, or programmatically with our Consent API.

## Instructions

1. In your Direct Debit Portal, go to **Managed Collections** → **Loan Imports** (Sandbox | Production).
2. Download the `.xlsx` workbook template linked on that screen.
The `Descripciones` sheet describes all 28 columns, which ones are required, and the workbook restricts `Banco`, `Tipo de ID` and `Estado del Credito` to their accepted values, so you cannot type an unsupported one by mistake.
Always download the template from the **Loan Imports** screen each time rather than reusing an old copy to avoid any issues regarding bank coverage or new required fields.
3. In the workbook, fill in the `MXN` sheet.
4. Save the `MXN` sheet as a **CSV**. Please note:
  - **The separator must be a comma.** If you use semicolons (`;`), the file will fail on upload. Please make sure that your CSV uses commas (`,`).
  - **Save the `MXN` sheet only.**
  - **Save the files as UTF-8** to ensure that it is compatible with our system.
5. Name your CSV file so that it contains the collection date. See the Naming your file section for more details as incorrectly naming your file can lead to your customers being charged on an incorrect day.
6. Upload the CSV on the **Loan Imports** screen. Note: The platform only accepts CSV files.
7. Review the result. Rows we could not process are listed with the reason, and you can fix them and upload a corrected file.


## Naming your file

Belvo reads the **collection date** from the file name. It looks for a date written as `YYYY-MM-DD` anywhere in the name, and that date becomes the day the loans in that file are collected. For example, all of these are collected on 15 September 2026:


```text Valid file names
Daily_MyCompany_2026-09-15_managed_collection.csv
cartera 2026-09-15.csv
2026-09-15-loans.csv
```

If you send more than one file for the same collection date, make sure to give each file a unique name and (optionally) also add a `_` + digit to the end of the collection date. For example:


```text Multiple file uploads for same collection date
Client1-2026-09-15_0.csv
Client1-2026-09-15_1.csv
Client2-2026-09-15_0.csv
Client2-2026-09-15_1.csv
```

Empty Collection Dates
If the file name contains no date in `YYYY-MM-DD` format, Belvo uses the file's **upload date in Mexico City (GMT-6)** instead, without failing the upload. This will lead to your customer being charged on a date that you did not choose. As such, we highly recommend you always provide a collection date in the file name.

## What happens to rows Belvo cannot process

Ensure that you provide unique customer identifiers
If the same **Referencia Unica cliente (UID)** appears more than once in a file, **the entire file is rejected** and nothing is collected from it. One repeated reference is enough.

When Belvo cannot process a row, the given row is skipped and no payment request is created for it. However, the rest of the file is still processed normally. You can correct the flagged/skipped rows and reupload the file.

Below are the most common reasons a row is skipped:

| Reason | What to do |
|  --- | --- |
| The CLABE belongs to a bank Belvo does not support for Direct Debit | Nothing, on your side. This is coverage Belvo does not have, so the row cannot be collected regardless of how the file is written. Check the accepted banks in the template's bank list, and see Institutions. |
| The same customer reference appears twice | Send one row per customer per collection date. Note: This error invalidates the entire file, not just the given row. |
| A name or surname contains something other than letters | Remove digits, punctuation and symbols. Accented characters and `ñ` are accepted. |
| The phone number is not `+52` followed by exactly 10 digits | Write the number as `+52` plus the 10-digit national number, with no spaces or dashes. |
| A date is not written as `YYYY-MM-DD` | Use `YYYY-MM-DD`. This is the only format accepted, and spreadsheets often store dates as numbers, so check what was actually written to the CSV. |
| `Tipo de ID` is not `mx_rfc` or `mx_curp` | Use one of those two values, and make sure the document number matches the type: 18 characters for a CURP, 12 or 13 for an RFC. |
| `Estado del Credito` is not an accepted status | Use `past_due`, `restructured`, `canceled` or `in_arrears`. |
| The account number is the wrong length | A CLABE has 18 digits. A card number has 13 to 16. For a card, `Banco` must also be filled in with a bank identifier. |