---
title: "Creates a validation batch for a given customer"
method: POST
path: "/internal/customers/{customer_shinkansen_fin_id}/validation_batches"
tags: ["Internal"]
---

# Creates a validation batch for a given customer

`POST /internal/customers/{customer_shinkansen_fin_id}/validation_batches`

## Request

- Base URL: `https://api.validator.shinkansen.finance/v1`
- URL: `https://api.validator.shinkansen.finance/v1/internal/customers/{customer_shinkansen_fin_id}/validation_batches`
- Auth: one of:
  - API key in header `Shinkansen-Validator-Api-Key`
  - API key in header `Shinkansen-Validator-Signature`

Used internally by Shinkansen (e.g, for the Shinkansen Dashboard).

## Request body

- BatchWithOriginalFields: Validation batch fields (requests, as sent by customers)
  - `id` string, uuid, required: The id of the validation batch. Set by customer. Must be unique. It is used for idempotency: You can retry the same request with the same id and Shinkansen Validator will process it only once.
  - `source_type` 'file' | 'other', required: The type of the source of the validation batch. Set by customer. Can be: * `file` if the validation batch was created via a CSV/Excel upload * `other` if the validation batch was created from any other source
  - `source_name` string, required: The name of the source of the validation batch. If `source_type` is `file` then this is the name of the file that was uploaded. Set by customer.
  - `validation_requests` RequestWithOriginalFields[], required: A list of validation requests.
    - `id` string, uuid, required: The id of the validation request. Set by customer. Must be unique. It is used for idempotency: You can retry the same request with the same id and Shinkansen Validator will process it only once.
    - `perform_account_access_check` boolean: When set to `true`, Shinkansen will transfer a random amount (between $1 and $99 CLP) instead of the fixed $1. After the transfer is confirmed, the transferred amount (`access_check_amount`) will be included in the response. The customer can then ask the end user how much they received to verify account ownership. Only available for CLP currency. Requires the `validator_variable_amount_cl` product to be enabled.
    - `account_details` AccountDetails, required: Validation Account Details
      - `name` string: Name of the account holder.
      - `identification` object: The identifier for a legal or natural person
        - `id_schema` string, required: Identification schema. See https://docs.shinkansen.tech/docs/tipos-de-identificacion
        - `id` string, required: The actual identification "number" (but not always just numbers). For `"MXRFC"` schema (Mexican RFCs), it can contain numbers and letters (13 for natural persons, 12 for legal entities). For `"MXCURP"` schema (Mexican CURPs) identifying natural persons, it can contain numbers and letters (18 characters). For `"COCC"`, `"COTI"`, `"CONUIP"`, and `"COCE"` schemas (all identifying natural personal in Colombia), use only numbers. For `"CONIT"` schema (Colombian NITs, for legal entities), also use only numbers. For `"PASS"` schema (Passports, used in Colombia for some accounts in name of foreign natural persons), it can contain numbers and letters (and generally whatever is literally printed as a passport number). For `"CLID"` schema (Chilean RUTs, for legal entities and natural persons) you must use the XXXXXXXX-X format: `^\d{8}[-][0-9kK]$`. See https://docs.shinkansen.tech/docs/tipos-de-identificacion for more details.
      - `financial_institution` object: The identifier for a financial institution
        - `fin_id_schema` string, required: Identification schema for financial institution, namely, any participant in Shinkansen Network. Use `"SHINKANSEN"` for Shinkansen's native network ids and full support on any participant and service of the Shinkansen network. Other schemas might be used when interfacing with other networks but they are *not* recommended unless you *really* know what you are doing or have been explicitly instructed to do so by Shinkansen.
        - `fin_id` string, required: Identification according to schema. When the `"SHINKANSEN"` schema is used (as recommended), this is the ID assigned by Shinkansen to the participant in the network. In the context of the `header`, it refers to the Shinkansen network participant that sends (Sender) or receives (Receiver) the message. In the context of the `transactions`, it refers to the financial institution from which the resources leave or where the resources arrive. The ID assigned by Shinkansen to the financial institution can be found in https://docs.shinkansen.tech/docs/instituciones-financieras. When sending a transaction to Shinkansen, this value must always be SHINKANSEN. When sending a payout order to Shinkansen Treasury, this value must be SHINKANSEN_TREASURY
      - `account` string, required: The account number
      - `account_type` string, required: Account type. See https://docs.shinkansen.tech/docs/tipos-de-cuentas for possible values.
      - `currency` string, required: Currency ISO 4217 code (e.g: `"CLP"`)
      - `email` string, email: E-mail of the legal or natural person owning the account. Used for email notifications. REQUIRED for validations in 🇨🇱

## Response `200`

Validation batch correctly received. Returns a validation batch object,
with status `"pending"`. Currently NO webhook will be invoked for
validations triggered in batches.

- BatchWithoutRequests: Validation batch fields (shinkansen)
  - `id` string, uuid, required: The id of the validation batch. Set by customer. Must be unique. It is used for idempotency: You can retry the same request with the same id and Shinkansen Validator will process it only once.
  - `source_type` 'file' | 'other', required: The type of the source of the validation batch. Set by customer. Can be: * `file` if the validation batch was created via a CSV/Excel upload * `other` if the validation batch was created from any other source
  - `source_name` string, required: The name of the source of the validation batch. If `source_type` is `file` then this is the name of the file that was uploaded. Set by customer.
  - `inserted_at` string, date-time, required: The timestamp when the validation batch was created. Set by Shinkansen Validator.
  - `updated_at` string, date-time, required: The timestamp when the validation batch was last updated. Set by Shinkansen Validator.
  - `status` 'pending' | 'performed', required: The status of the batch as a whole. It can be: * `pending` if at least one of the validations in the batch is pending (or is being retried due to errors) * `performed` if all of the validations have been completed (even if some of them failed after retrying a few times)

## Other responses

- `400`: Validation batch invalid or malformed (e.g: unable to parse, missing or invalid fields).
- `403`: Forbidden (e.g: wrong API Key)
- `409`: Validation batch for the same id already received in a previous invocation for the same request. Returns the validation request state.

---

[API](https://skmtc.dev/shinkansen/apis/validator-shinkansen-endpoints.md) - [All operations](https://skmtc.dev/shinkansen/apis/validator-shinkansen-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/shinkansen/apis/validator-shinkansen-endpoints/revisions/4502fbbb6325?raw)
