---
title: "Editar un comprobante contable"
method: PUT
path: "/journals/{id}"
tags: ["Comprobantes contables"]
---

# Editar un comprobante contable

`PUT /journals/{id}`

## Request

- Base URL: `https://api.alegra.com/api/v1`
- URL: `https://api.alegra.com/api/v1/journals/{id}`
- Auth: HTTP basic

Endpoint que permite editar un comprobante contable

## Path parameters

- `id` integer, required

## Request body

- JournalsUpdateRequestBody
  - `date` string: Fecha del comprobante contable. Formato yyyy-mm-dd.
  - `reference` string: Referencia del comprobante contable. Longitud máxima permitida 255
  - `observations` string: Observaciones del comprobante contable. Longitud máxima permitida 500
  - `client` union: Objecto que contiene el id del cliente asociado al comprobante contable. Se puede enviar directamente el id del cliente en este atributo.
    - object
    - string
  - `employee` union: Objecto que contiene el id del cliente asociado al comprobante contable. Se puede enviar directamente el id del cliente en este atributo.
    - object
    - string
  - `numberTemplate` union: Numeración del comprobante contable. Se puede enviar el id de la numeración directamente como string (formato "ABCDEFGHIKLMN123ABCD") o dentro de un objeto con la propiedad `id`.
    - string
    - object
      - `id` string: Id de la numeración a asociar en el comprobante. Formato "ABCDEFGHIKLMN123ABCD".
  - `entries` JournalEntry[], required: Array de objetos entry asociados al comprobante contable. Cada objeto debe incluir: `id (number, obligatorio)`: identificador de la cuenta contable que se desea ajustar; `description (string)`: descripción adicional del entry para el comprobante; `debit (double)` : monto a debitar de la cuenta contable en el comprobante; `credit (double)`: monto a acreditar de la cuenta contable en el comprobante; `client (mixed)`: Id del cliente, puede ser un objeto con la propiedad id o un integer directamente; `costCenter (mixed)`: Id del centro de costo, puede enviarse como objeto o como integer. Cada entry sólo debe incluir un monto en `debit` o `credit`, no en ambos. Si la cuenta contable está habilitada para **super asiento** (cuentas por cobrar, cuentas por pagar, anticipos, etc.), también puede incluir `associatedDocument` para asociar la línea a un documento ya existente en Alegra o `newDocument` para crear un documento contable a partir de la línea.
    - `id` number: Id de la cuenta contable
    - `description` string: Descripción de la cuenta contable
    - `debit` number: Monto del débito. Si se coloca no debe ir el campo credit
    - `credit` number: Monto del crédito. Si se coloca no debe ir el campo debit
    - `client` union: Objecto que contiene el id del cliente asociado al comprobante contable. Se puede enviar directamente el id del cliente en este atributo.
      - object
      - string
    - `costCenter` union: Objecto que contiene el id del centro de costo asociado al comprobante contable. Se puede enviar directamente el id en este atributo.
      - string
      - object
    - `associatedDocument` JournalAssociatedDocument: Permite asociar una línea del comprobante a un documento contable que ya existe en Alegra (super asiento). Sólo aplica para cuentas habilitadas como cuentas por cobrar, cuentas por pagar o anticipos. Tanto `idResource` como `resourceType` son obligatorios cuando se envía este objeto.
      - `idResource` integer, required: Id local del documento que se quiere asociar a la línea del comprobante.
      - `resourceType` 'invoice' | 'bill' | 'creditNote' | 'debitNote' | 'incomeDebitNote' | 'advance_in' | 'journal' | 'account' | 'opening-balance', required: Tipo del documento asociado.
      - `affectedDocument` object: Documento que se ve afectado por la asociación (por ejemplo, cuando una línea de un comprobante afecta otro comprobante existente). Si se envía, ambos campos son obligatorios.
        - `idResource` integer, required: Id local del documento afectado.
        - `resourceType` 'invoice' | 'bill' | 'creditNote' | 'debitNote' | 'incomeDebitNote' | 'journal', required: Tipo del documento afectado.
    - `newDocument` JournalNewDocument: Permite crear un nuevo documento contable a partir de la línea del comprobante (super asiento). Sólo aplica para cuentas habilitadas como cuentas por cobrar, cuentas por pagar o anticipos recibidos. Los campos `number`, `resourceType`, `date` y `total` siempre son obligatorios cuando se envía este objeto. El campo `dueDate` es **obligatorio** cuando la línea corresponde a una cuenta por cobrar con monto en `debit` o a una cuenta por pagar con monto en `credit`; en cualquier otro caso es opcional.
      - `number` string, required: Número o consecutivo del documento que soporta esta cuenta contable.
      - `resourceType` 'v_document', required: Tipo del documento que se va a crear a partir de la línea, debe ser `v_document` para todos los casos; el sistema determina automáticamente el tipo definitivo según la cuenta contable.
      - `date` string, date, required: Fecha del nuevo documento en formato YYYY-MM-DD. No puede ser anterior al 01/01/2000.
      - `total` number, required: Valor total del nuevo documento. Debe ser consistente con el monto débito/crédito de la línea.
      - `dueDate` string, date: Fecha de vencimiento del nuevo documento en formato YYYY-MM-DD. **Obligatorio** cuando la línea corresponde a una cuenta por cobrar con monto en `debit` o a una cuenta por pagar con monto en `credit` (genera el plazo de pago del documento creado). En el resto de casos (anticipos recibidos, otras cuentas habilitadas para super asiento) es opcional. Debe ser igual o posterior a `date`.

## Response `200`

200 OK

- Journal
  - `id` string
  - `entries` AbstractEntry[]
    - `id` string
    - `client` Client
      - `id` string
      - `name` string
      - `identification` string
      - `email` string
      - `phonePrimary` string
      - `phoneSecondary` string
      - `fax` string
      - `mobile` string
      - `observations` string
      - `status` 'active' | 'inactive'
      - `type` string[]
      - `address` object: Dirección del cliente, varia segun pais, consultar detalle de contactos para más información
      - `seller` object: Datos del vendedor. Si no es vendedor es nulo
      - `term` object
      - `priceList` object: Lista de precio asociada si la hay
      - `internalContacts` object
    - `name` string
    - `description` string
    - `debit` number
    - `credit` number
    - `costCenter` CostCenter
      - `id` integer: Identificador único que representa un centro de costo específico.
      - `code` string: Es un código que el usuario puede darle al centro de costo.
      - `name` string: Nombre del centro de costos.
      - `description` string: Descripción del centro de costos.
      - `status` 'active' | 'inactive': Estado del centro de costo. Las opciones posibles son: - active: indica que el centro de costo esta activo y se puede usar. - inactive: indica que el centro de costo se encuentra desactivado. No se puede usar.
  - `client` Client
    - `id` string
    - `name` string
    - `identification` string
    - `email` string
    - `phonePrimary` string
    - `phoneSecondary` string
    - `fax` string
    - `mobile` string
    - `observations` string
    - `status` 'active' | 'inactive'
    - `type` string[]
    - `address` object: Dirección del cliente, varia segun pais, consultar detalle de contactos para más información
    - `seller` object: Datos del vendedor. Si no es vendedor es nulo
    - `term` object
    - `priceList` object: Lista de precio asociada si la hay
    - `internalContacts` object
  - `employee` Client
    - `id` string
    - `name` string
    - `identification` string
    - `email` string
    - `phonePrimary` string
    - `phoneSecondary` string
    - `fax` string
    - `mobile` string
    - `observations` string
    - `status` 'active' | 'inactive'
    - `type` string[]
    - `address` object: Dirección del cliente, varia segun pais, consultar detalle de contactos para más información
    - `seller` object: Datos del vendedor. Si no es vendedor es nulo
    - `term` object
    - `priceList` object: Lista de precio asociada si la hay
    - `internalContacts` object
  - `date` string: Fecha en formato YYYY-MM-DD
  - `observations` string
  - `references` string
  - `status` 'open' | 'void'
  - `total` number

## Other responses

- `400`: 404 Bad Request
- `401`: Información de autenticación no enviada o es inválida

---

[API](https://skmtc.dev/alegra/apis/contabilidad.md) - [All operations](https://skmtc.dev/alegra/apis/contabilidad/llms.txt) - [OpenAPI document](https://skmtc.dev/alegra/apis/contabilidad/revisions/8d1cb1d59e1c?raw)
