---
title: "Registrar compra manualmente (sin XML)"
method: POST
path: "/compras/manual"
tags: ["compras"]
---

# Registrar compra manualmente (sin XML)

`POST /compras/manual`

## Request

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

Crea una compra de origen 'manual'. Idempotente si se provee claveAcceso.

## Request body

- object
  - `emisorId` string, uuid, required
  - `proveedorRuc` string, required
  - `proveedorRazonSocial` string
  - `tipoComprobante` string, required
  - `claveAcceso` string
  - `fechaEmision` string, date, required
  - `totalSinImpuestos` number
  - `importeTotal` number
  - `baseIva15` number
  - `baseIva0` number
  - `baseExento` number
  - `baseNoObjeto` number
  - `baseIvaOtras` number
  - `montoIva` number
  - `retencionIva` number
  - `retencionRenta` number
  - `sustentoTributario` string
  - `destino` 'gasto' | 'inventario' | 'activo_fijo': Módulo 19. Sin él, lo decidido para el proveedor, o gasto.
  - `destinoCuentaId` string, uuid: Cuenta elegida para un gasto (de gasto o de costo) o un inventario (de 1.1.04).
  - `destinoCategoriaId` string, uuid: Categoría de activo fijo: obligatoria con `activo_fijo`.

## Response `200`

Compra registrada

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