> ## Documentation Index
> Fetch the complete documentation index at: https://tech.sedierp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Registro nuevo

El servicio permite a los usuarios registrar facturas de venta en la plataforma en línea en formato JSON. Si el cliente no existe en la plataforma, se registra automáticamente con los datos enviados en la solicitud.

El método de solicitud es POST y se requiere un encabezado "Authorization" para la autenticación, que debe contener un token **JWT** obtenido previamente del servicio de [autenticación](https://tech.sedierp.com/quickstart.md).

## Prerequisitos

Antes de realizar el registro de una factura de venta, se debe contar con los siguientes datos:

* Token solicitado mediante el API de [autenticación](https://tech.sedierp.com/quickstart.md)
* Resolución de facturación vigente configurada en la plataforma para el prefijo y consecutivo que se va a registrar
* Impuestos configurados en la plataforma con el código y porcentaje que se enviarán en los detalles
* Para facturación electrónica, la sucursal no debe tener facturas, notas crédito ni notas débito con error de envío a la DIAN

## Registrar factura de venta

**Request URL:** https\://\{\{Ambiente}}/API\_FE/api/DocumentosElectronicos/FacturaInsertar\
**Tipo:** POST \
**Content Type:** application/json

### Datos del documento

**TipoOperacion** `string` *required*

Código del tipo de operación de la factura de venta. Se envía como texto de dos dígitos (ej. "10").

| Código | Significado |
| - | - |
| 09 | AIU |
| 10 | Estándar |
| 11 | Mandato |
| 12 | Transporte |
| 14 | Notarios |
| 15 | Compra de divisas |
| 16 | Venta de divisas |

**FechaInicio** `string` *required*

Fecha de creación del documento. Para facturación electrónica debe ser la fecha actual.

**FechaVencimiento** `string`

Fecha de vencimiento del documento. Si no se envía, se calcula con los días de crédito del cliente o, en su defecto, con los días de vencimiento configurados en la resolución de facturación.

**Prefijo** `string`

Prefijo de la resolución con la que se registrará el documento (máx. 20 caracteres).

**Consecutivo** `int` *required*

Consecutivo del documento.

**OrigenFacturaID** `int`

Parámetro interno de la plataforma.

**OrdenCompraNumero** `string`

Número de la orden de compra (máx. 60 caracteres).

**OrdenCompraFecha** `string`

Fecha de la orden de compra.

**Moneda** `string`

Código de la moneda del documento, según la [tabla de monedas](https://tech.sedierp.com/monedas.md). Si no se envía, se utiliza la moneda configurada en la plataforma.

**TasaCambio** `number`

Tasa de cambio. Es obligatoria cuando la moneda es diferente al peso colombiano (COP).

**FormaPago** `string`

Código DIAN de la forma de pago (1: Contado, 2: Crédito). Debe estar configurada en la plataforma.

**Observaciones** `string`

Observaciones del documento (máx. 1500 caracteres).

**AreaDepartamentoCliente** `string`

Descripción del área o departamento del cliente a donde se dirige el documento (centro de costo), máx. 100 caracteres.

### Datos del cliente

**TipoDocumento** `int` *required*

Código del tipo de documento de identificación del cliente.

| Código | Significado |
| - | - |
| 11 | Registro civil |
| 12 | Tarjeta de identidad |
| 13 | Cédula de ciudadanía |
| 21 | Tarjeta de extranjería |
| 22 | Cédula de extranjería |
| 31 | NIT |
| 41 | Pasaporte |
| 42 | Documento de identificación extranjero |
| 47 | PEP |
| 50 | NIT de otro país |
| 91 | NUIP |

**Documento** `string` *required*

Número de identificación del cliente, sin puntos, sin comas y sin espacios (máx. 20 caracteres).

**TipoPersona** `int` *required*

Tipo de persona del cliente.

| Código | Significado |
| - | - |
| 1 | Persona jurídica |
| 2 | Persona natural |

**Nombres** `string` *required*

Primer nombre del cliente si es persona natural; en caso contrario, la razón social (máx. 250 caracteres).

**Nombres2** `string`

Segundo nombre del cliente.

**Apellidos** `string`

Primer apellido del cliente.

**Apellidos2** `string`

Segundo apellido del cliente.

**Direccion** `string`

Dirección del cliente (máx. 200 caracteres).

**Celular** `string`

Número de celular del cliente, sin puntos, sin comas y sin espacios (máx. 20 caracteres).

**EmailFacturacion** `string` *required*

Email del cliente para el envío del documento electrónico (máx. 400 caracteres).

**ResponsabilidadTributaria** `string`

Responsabilidad tributaria del cliente.

| Código | Significado |
| - | - |
| 48 | Responsable del impuesto sobre las ventas - IVA |
| 49 | No responsable de IVA |

**Pais** `string`

País del cliente, código alfa-2 según la [tabla de países](https://tech.sedierp.com/paises.md) (ej. "CO").

**Ciudad** `string`

Ciudad del cliente, código de municipio de 5 dígitos según la [tabla de municipios](https://tech.sedierp.com/ciudades.md) (ej. "11001").

### Detalles del documento

**FacturasDetalles** `array` *required*

Detalles (conceptos o productos) del documento. Debe contener al menos un detalle.

**propiedades**

**Cantidad** `number` *required*

Cantidad del concepto o producto.

**ProductoCodigo** `string`

Código del concepto o producto (máx. 20 caracteres).

**ProductoNombre** `string` *required*

Descripción o nombre del concepto o producto. No puede ser vacío ni "OTROS".

**ValorUnitario** `number` *required*

Valor unitario del concepto o producto.

**Descuento** `number`

Valor del descuento del concepto o producto.

**ValorTotal** `number` *required*

Valor total del concepto o producto: (Cantidad × ValorUnitario) − Descuento. Debe ser mayor a cero.

**Orden** `int`

Orden del concepto o producto (número de posición).

**AIU** `bool`

true = detalle marcado como A.I.U. (único detalle para el cálculo del IVA).

**Remesa** `object`

Información de la remesa. Obligatoria en los detalles de transporte cuando el tipo de operación es Transporte (12).

**propiedades**

**TipoServicio** `bool`

true = detalle de servicio de transporte.

**RadicadoRemesa** `long`

Número de radicado de la remesa.

**NumeroRemesa** `string`

Número de la remesa (máx. 15 caracteres).

**UnidadMedida** `string`

Código de la unidad de medida de la cantidad transportada (máx. 3 caracteres).

**CantidadTransportada** `int`

Cantidad transportada.

**Impuestos** `array`

Impuestos y retenciones del detalle. Opcional.

**propiedades**

**CodigoImpuesto** `string` *required*

Código del impuesto o retención.

| Código | Nombre | Descripción |
| - | - | - |
| 01 | IVA | Impuesto de Valor Agregado |
| 02 | IC | Impuesto al Consumo Departamental Nominal |
| 03 | ICA | Impuesto de Industria, Comercio y Aviso |
| 04 | INC | Impuesto Nacional al Consumo |
| 05 | ReteIVA | Retención sobre el IVA |
| 06 | ReteFuente | Retención sobre Renta |
| 07 | ReteICA | Retención sobre el ICA |
| 20 | FtoHorticultura | Cuota de Fomento Hortifrutícola |
| 21 | Timbre | Impuesto de Timbre |
| 22 | Bolsas | Impuesto al Consumo de Bolsa Plástica |
| 23 | INCarbono | Impuesto Nacional al Carbono |
| 24 | INCombustibles | Impuesto Nacional a los Combustibles |
| 25 | Sobretasa Combustibles | Sobretasa a los combustibles |
| 26 | Sordicom | Contribución minoristas (Combustibles) |
| ZY | No causa | No responsable de tributo |
| ZZ | Nombre de la figura tributaria | Otros tributos, tasas, contribuciones y similares |

**ValorImpuesto** `number` *required*

Valor del impuesto o retención aplicado al detalle. Se envía en valor positivo y no puede ser cero.

**Porcentaje** `number` *required*

Porcentaje del impuesto o retención aplicado al detalle. No puede ser cero.

**Mandantes** `array`

Mandante del detalle. Opcional; obligatorio en todos los detalles cuando el tipo de operación es Mandato (11). Se admite un mandante por detalle.

**propiedades**

**TipoDocumento** `int` *required*

Tipo de documento del mandante, según la tabla de tipos de documento del cliente.

**Documento** `string` *required*

Número del documento del mandante, sin puntos, sin comas y sin espacios.

**TipoPersona** `int` *required*

Tipo de persona del mandante (1: Persona jurídica, 2: Persona natural).

**Nombres** `string` *required*

Primer nombre del mandante si es persona natural; en caso contrario, la razón social.

**Nombres2** `string`

Segundo nombre del mandante.

**Apellidos** `string`

Primer apellido del mandante.

**Apellidos2** `string`

Segundo apellido del mandante.

### Terceros y documentos referenciados

**FacturasTerceros** `array`

Terceros adicionales del documento. Opcional. No se debe incluir al cliente principal.

**propiedades**

**TipoDocumento** `int` *required*

Tipo de documento del tercero, según la tabla de tipos de documento del cliente.

**Documento** `string` *required*

Número del documento del tercero, sin puntos, sin comas y sin espacios.

**TipoPersona** `int` *required*

Tipo de persona del tercero (1: Persona jurídica, 2: Persona natural).

**Nombres** `string` *required*

Primer nombre del tercero si es persona natural; en caso contrario, la razón social.

**Nombres2** `string`

Segundo nombre del tercero.

**Apellidos** `string`

Primer apellido del tercero.

**Apellidos2** `string`

Segundo apellido del tercero.

**PorcentajeParticipacion** `int`

Porcentaje de participación del tercero en el documento.

**FacturasDocumentosReferenciados** `array`

Documentos referenciados en la factura. Opcional.

**propiedades**

**NumeroDocumento** `string`

Número del documento referenciado (máx. 20 caracteres).

**FechaEmision** `string`

Fecha de emisión del documento referenciado.

**TipoDocumento** `string`

Tipo del documento referenciado (máx. 10 caracteres).

```bash theme={null}
curl --location 'https://nsx.sedierp.com/API_FE/api/DocumentosElectronicos/FacturaInsertar' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <TOKEN_JWT>' \
--data '{
	"TipoOperacion": "10",
	"TipoDocumento": 31,
	"Documento": "900123456",
	"TipoPersona": 1,
	"Nombres": "CLIENTE EJEMPLO S.A.S.",
	"Nombres2": null,
	"Apellidos": null,
	"Apellidos2": null,
	"Direccion": "CALLE 100 # 15-20",
	"Celular": "3001234567",
	"EmailFacturacion": "facturacion@clienteejemplo.com",
	"ResponsabilidadTributaria": "48",
	"Pais": "CO",
	"Ciudad": "11001",
	"FechaInicio": "2026-11-04T10:30:00",
	"FechaVencimiento": "2026-12-04T00:00:00",
	"Prefijo": "FE",
	"Consecutivo": 1520,
	"OrigenFacturaID": null,
	"OrdenCompraNumero": "OC-345",
	"OrdenCompraFecha": "2026-10-28T00:00:00",
	"Moneda": "COP",
	"TasaCambio": null,
	"FormaPago": "2",
	"Observaciones": "Servicios prestados en octubre de 2026",
	"AreaDepartamentoCliente": "ADMINISTRACION",
	"FacturasDetalles": [
		{
			"Cantidad": 2,
			"ProductoCodigo": "SRV-001",
			"ProductoNombre": "SERVICIO DE SOPORTE TECNICO",
			"ValorUnitario": 150000,
			"Descuento": 0,
			"ValorTotal": 300000,
			"Orden": 1,
			"AIU": false,
			"Remesa": null,
			"Impuestos": [
				{ "CodigoImpuesto": "01", "ValorImpuesto": 57000, "Porcentaje": 19 },
				{ "CodigoImpuesto": "06", "ValorImpuesto": 12000, "Porcentaje": 4 }
			],
			"Mandantes": []
		},
		{
			"Cantidad": 1,
			"ProductoCodigo": "LIC-010",
			"ProductoNombre": "LICENCIA ANUAL MODULO CONTABLE",
			"ValorUnitario": 500000,
			"Descuento": 50000,
			"ValorTotal": 450000,
			"Orden": 2,
			"AIU": false,
			"Remesa": null,
			"Impuestos": [
				{ "CodigoImpuesto": "01", "ValorImpuesto": 85500, "Porcentaje": 19 }
			],
			"Mandantes": []
		}
	],
	"FacturasTerceros": [],
	"FacturasDocumentosReferenciados": []
}'
```

### Validaciones

El servicio realiza las siguientes validaciones antes de registrar el documento. Si alguna no se cumple, no se registra la factura y se retorna el error correspondiente.

**Resolución y consecutivo**

* El prefijo y el consecutivo deben corresponder a una resolución de facturación configurada en la plataforma y vigente a la fecha actual.
* El consecutivo no debe estar registrado previamente en la plataforma.
* Para facturación electrónica, la sucursal no debe tener facturas, notas crédito ni notas débito con error de envío a la DIAN.

**Fechas**

* Para facturación electrónica, la `FechaInicio` debe ser la fecha actual; no se permiten fechas pasadas ni futuras.
* La `FechaVencimiento` es obligatoria si el cliente no tiene días de crédito y la resolución no tiene días de vencimiento configurados.

**Cliente y terceros**

* Los datos del cliente deben estar completos para la emisión del documento.
* El cliente principal no debe enviarse dentro de `FacturasTerceros`.
* La sumatoria del porcentaje de participación de los terceros debe ser exactamente 100 %.

**Moneda y forma de pago**

* La moneda enviada debe estar configurada en la plataforma. Si es diferente a COP, la `TasaCambio` es obligatoria.
* La forma de pago enviada debe estar configurada en la plataforma.

**Detalles e impuestos**

* El `ValorTotal` de cada detalle debe ser igual a (Cantidad × ValorUnitario) − Descuento, con una tolerancia de ±10.
* Los valores se redondean según el número de decimales configurado en la resolución de facturación.
* El código y el porcentaje de cada impuesto deben estar configurados en la plataforma.
* El `ValorImpuesto` debe ser igual a la base del detalle (Cantidad × ValorUnitario − Descuento) × Porcentaje / 100, con una tolerancia de ±1. Para la ReteIVA (05), la base es el valor del IVA del detalle.

**Tipos de operación**

* **AIU (09):** al menos un detalle debe estar marcado con `AIU = true`, y el IVA solo se admite en ese detalle.
* **Mandato (11):** todos los detalles deben tener un mandante.
* **Transporte (12):** al menos un detalle debe tener `Remesa.TipoServicio = true`, con `RadicadoRemesa`, `NumeroRemesa`, `CantidadTransportada` y `UnidadMedida`.

### Respuesta

**TipoSalida** `string`

Resultado de la operación: "OK" o "Error".

**Codigo** `int`

Código único de la factura registrada (ID). Retorna -1 cuando ocurre un error.

**Descripcion** `string`

"Transacción Exitosa" cuando el registro es correcto, o el detalle del error precedido de "Error:".

```json Request theme={null}
{
  "TipoOperacion": "10",
  "TipoDocumento": 31,
  "Documento": "900123456",
  "TipoPersona": 1,
  "Nombres": "CLIENTE EJEMPLO S.A.S.",
  "Nombres2": null,
  "Apellidos": null,
  "Apellidos2": null,
  "Direccion": "CALLE 100 # 15-20",
  "Celular": "3001234567",
  "EmailFacturacion": "facturacion@clienteejemplo.com",
  "ResponsabilidadTributaria": "48",
  "Pais": "CO",
  "Ciudad": "11001",
  "FechaInicio": "2026-11-04T10:30:00",
  "FechaVencimiento": "2026-12-04T00:00:00",
  "Prefijo": "FE",
  "Consecutivo": 1520,
  "OrigenFacturaID": null,
  "OrdenCompraNumero": "OC-345",
  "OrdenCompraFecha": "2026-10-28T00:00:00",
  "Moneda": "COP",
  "TasaCambio": null,
  "FormaPago": "2",
  "Observaciones": "Servicios prestados en octubre de 2026",
  "AreaDepartamentoCliente": "ADMINISTRACION",
  "FacturasDetalles": [
    {
      "Cantidad": 2,
      "ProductoCodigo": "SRV-001",
      "ProductoNombre": "SERVICIO DE SOPORTE TECNICO",
      "ValorUnitario": 150000,
      "Descuento": 0,
      "ValorTotal": 300000,
      "Orden": 1,
      "AIU": false,
      "Remesa": null,
      "Impuestos": [
        {
          "CodigoImpuesto": "01",
          "ValorImpuesto": 57000,
          "Porcentaje": 19
        },
        {
          "CodigoImpuesto": "06",
          "ValorImpuesto": 12000,
          "Porcentaje": 4
        }
      ],
      "Mandantes": []
    },
    {
      "Cantidad": 1,
      "ProductoCodigo": "LIC-010",
      "ProductoNombre": "LICENCIA ANUAL MODULO CONTABLE",
      "ValorUnitario": 500000,
      "Descuento": 50000,
      "ValorTotal": 450000,
      "Orden": 2,
      "AIU": false,
      "Remesa": null,
      "Impuestos": [
        {
          "CodigoImpuesto": "01",
          "ValorImpuesto": 85500,
          "Porcentaje": 19
        }
      ],
      "Mandantes": []
    }
  ],
  "FacturasTerceros": [],
  "FacturasDocumentosReferenciados": []
}
```

```json Exitosa theme={null}
{
    "TipoSalida": "OK",
    "Codigo": 15873,
    "Descripcion": "Transacción Exitosa"
}
```

```json Error theme={null}
{
    "TipoSalida": "Error",
    "Codigo": -1,
    "Descripcion": "Error: El documento ya se encuentra registrado en la plataforma"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.