---
title: "Carga los documentos de apertura desde las filas de un archivo"
method: POST
path: "/contabilidad/saldos-iniciales/documentos"
tags: ["contabilidad"]
---

# Carga los documentos de apertura desde las filas de un archivo

`POST /contabilidad/saldos-iniciales/documentos`

## Request

- Base URL: `https://contadeo.com/api`
- URL: `https://contadeo.com/api/contabilidad/saldos-iniciales/documentos`
- Auth: HTTP bearer

Cada fila es un documento pendiente al día del corte: `lado` (`cobrar` o `pagar`), `tipo_identificacion` (código de la tabla 6 del SRI o RUC, cédula, pasaporte, exterior, placa; nunca consumidor final), `identificacion`, `nombre`, `numero`, `fecha_emision` y `vence_el` (`AAAA-MM-DD` o `dd/mm/aaaa`; sin `vence_el`, vence el día que se emitió) y `saldo` (texto, con punto o coma decimal, sin separador de miles). Los documentos de cada lado tienen que sumar al centavo el saldo de su cuenta en el asiento de apertura; un lado sin documentos no se comprueba. Sin `confirmar` no cambia nada: responde los totales, los errores por fila y los `bloqueos`. Con `confirmar: true` reemplaza los documentos anteriores del mismo asiento. No se puede mientras haya cobros o pagos vigentes aplicados a ellos. Máximo 5000 filas.

## Request body

- object
  - `emisorId` string, uuid, required
  - `confirmar` boolean
  - `filas` object[], required
    - `lado` string
    - `tipo_identificacion` string
    - `identificacion` string
    - `nombre` string
    - `numero` string
    - `fecha_emision` string
    - `vence_el` string
    - `saldo` string

## Response `201`

Lo que haría la carga, o lo que hizo si `aplicado` es `true`

- object
  - `aplicado` boolean
  - `asiento` object, nullable: El asiento de apertura que detallan. `null`: no hay saldos iniciales
    - `id` string, uuid
    - `fecha` string, date
  - `cuentas` object
    - `cobrar` object, nullable: `null`: el plan no tiene una cuenta de ese concepto que reciba movimientos
      - `cuentaId` string, uuid
      - `codigo` string
      - `nombre` string
      - `saldo` number: Su saldo en el asiento de apertura vigente
    - `pagar` object, nullable: `null`: el plan no tiene una cuenta de ese concepto que reciba movimientos
      - `cuentaId` string, uuid
      - `codigo` string
      - `nombre` string
      - `saldo` number: Su saldo en el asiento de apertura vigente
  - `documentos` integer: Documentos que se cargan; cero si hay errores
  - `totales` object
    - `cobrar` number
    - `pagar` number
  - `errores` object[]: Con uno solo no se carga nada
    - `fila` integer, nullable: Fila del archivo, contando la cabecera como la 1. `null`: del archivo entero o de un lado
    - `campo` 'lado' | 'tipo_identificacion' | 'identificacion' | 'nombre' | 'numero' | 'fecha_emision' | 'vence_el' | 'saldo' | 'archivo'
    - `mensaje` string
  - `bloqueos` string[]: Lo que impide cargarlos y no es del archivo

## Other responses

- `400`: Cuerpo inválido o validación de negocio (previene errores SRI 62/52/65/69/39)
- `403`: Token/key ausente, inválido o expirado

---

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