---
title: "Subir un XML de comprobante recibido (base64)"
method: POST
path: "/compras/xml"
tags: ["compras"]
---

# Subir un XML de comprobante recibido (base64)

`POST /compras/xml`

## Request

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

Parsea y registra un comprobante electrónico recibido de un proveedor. Idempotente: si la clave de acceso ya existe devuelve { duplicado: true, id } sin reinsertar. Límite: 2 MB por archivo.

## Request body

- object
  - `emisorId` string, uuid, required
  - `nombre` string, required
  - `base64` string, required: Contenido del XML codificado en base64 (máx. 2 MB)

## Response `200`

Compra registrada o ya existente

- CompraSubidaResultado
  - `id` string, uuid
  - `duplicado` boolean: true si la clave de acceso ya estaba registrada

## 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)
