> ## Documentation Index
> Fetch the complete documentation index at: https://docs.withacclaim.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Validation rules

> How Acclaim validates uploaded files before creating payouts—file-level and row-level checks.

Before payouts are created, Acclaim validates the **file** and each **row**. That way you catch structural problems early and only valid rows consume processing capacity.

## What validation covers

* Required fields are present.
* Values match expected formats.
* Payout method requirements are satisfied.
* Country-specific rules pass.

## Validation stages

### 1. File-level validation

Acclaim checks the file itself:

* Type is supported (CSV or XLSX).
* Headers exist and match what the template expects.
* Required columns can be mapped.

If file-level validation fails, the **entire upload** is rejected—fix the file or template and upload again.

### 2. Row-level validation

Each row is validated **independently**:

* Required fields are populated.
* Formats are correct (amount, currency, bank identifiers, and so on).
* Conditional rules match (for example individual vs business).

Failed rows are rejected **without** blocking other valid rows in the same file.

## Required field validation

Fields marked required must be present and non-empty. Examples often include:

* `amount`
* `currency`
* `payee.type`

## Conditional validation

Some fields are required only in certain situations, for example:

* `payee.first_name` and `payee.last_name` for individuals.
* `payee.business_name` for businesses.

## Format validation

| Field                     | Rule                           |
| ------------------------- | ------------------------------ |
| `currency`                | ISO 4217 code                  |
| `amount`                  | Numeric, no symbols            |
| `bank_account.swift_code` | Valid SWIFT/BIC length/pattern |
| `bank_account.clabe`      | 18 digits (Mexico CLABE)       |

## Payout method validation

Each method has its own required fields (for example CLABE for certain Mexico rails, SWIFT fields for international). Your template ties the upload to that method so validation matches the rail.

## Country-specific validation

Countries can impose extra identifiers or formats. Always cross-check the destination on the [supported payout countries](/guides/disburse/countries/index) pages before large runs.

## Validation results

After validation:

* Valid rows move to **processing**.
* Invalid rows are **rejected** with per-row errors you can export or review in the Console.

## Common validation errors

* Missing required field
* Invalid format (amount, dates, bank IDs)
* Unsupported currency for the method
* Invalid bank details
* Conditional field mismatch (wrong set of fields for payee type)

<Tip>
  Pilot new templates with a **small file** (a few rows) before month-end or high-volume batches.
</Tip>

## Next steps

* [Processing flow](./processing)
* [Error handling](./errors)
* [Examples](./examples)
* [Template configuration](./template-configuration)
