---
title: "Subir lote de hasta 50 XML (síncrono)"
method: POST
path: "/compras/lote"
tags: ["compras"]
---

# Subir lote de hasta 50 XML (síncrono)

`POST /compras/lote`

## Request

- Base URL: `https://contadeo.com/api`
- URL: `https://contadeo.com/api/compras/lote`
- Auth: HTTP bearer

Procesa hasta 50 XML de comprobantes recibidos. Un error en un archivo no cancela el lote; los fallos se reportan en el campo errores.

## Request body

- object
  - `emisorId` string, uuid, required
  - `archivos` object[], required
    - `nombre` string, required
    - `base64` string, required

## Response `200`

Resultado del lote

- CompraLoteResultado
  - `procesados` integer: Archivos nuevos insertados con éxito
  - `duplicados` integer: Archivos ya existentes (idempotentes)
  - `errores` object[]
    - `nombre` string
    - `motivo` string

## Other responses

- `400`: Cuerpo inválido o validación de negocio (previene errores SRI 62/52/65/69/39)
- `403`: Rol insuficiente o acceso denegado

---

[API](https://skmtc.dev/contadeo/apis/api-de-contadeo.md) · [All operations](https://skmtc.dev/contadeo/apis/api-de-contadeo/llms.txt) · [OpenAPI document](https://skmtc.dev/contadeo/apis/api-de-contadeo/revisions/461bbb9a74ce?raw)
