Campos de todos los documentos electrónicos.
En esta sección se describen los campos que se deben de considerar para la generación de la factura electrónica, nota de crédito y nota de débito, documento soporte y documento equivalente, con sus respectivas notas de ajuste.
{
"resolution_number": "18760000001",
"prefix": "FEV",
"date": "2021-09-12",
"expiration_date": "2021-09-12",
"time": "2021-09-12 22:46:53",
"notes": "Nota del documento",
"document_number": 990000001,
"operation_type_id": 1,
"type_document_id": 7,
"graphic_representation": 1,
"send_email": 1,
"currency_id": 272,
"payments": [
{
"payment_method_id": 1,
"means_payment_id": 10,
"value_paid": "141100.00",
"payment_due_date": "2024-02-22"
}
],
"payment_exchange_rate": {
"exchange_rate": "3950.00",
"rate_date": "2022-06-28",
"base_rate": "3950.00",
"currency_id": 188
},
"point_of_sale": {
"cashier_name": "LEWIS LOPEZ",
"terminal_number": "CJ001aB",
"cashier_type": "Caja de apoyo",
"sales_code": "POS01",
"address": "Gilbarco Encore 4 L1 Mangue ra 17 AC",
"sub_total": "2000.10"
},
"software_manufacturer": {
"owner_name": "LEWIS LOPEZ GOMEZ",
"company_name": "LOPEZSOFT SAS",
"software_name": "SOFTWARE POS MATIAS APP"
},
"document_signature": {
"cashier": "Nombre del cajero(a)",
"seller": "Nombre del vendedor(a)"
},
"order_reference": {
"reference_number": "4545478787",
"reference_date": "2021-05-19"
},
"health": {
"operation_type": "SS-CUFE",
"invoice_period": {
"start_date": "9999-12-31",
"start_time": "23:59:59",
"end_date": "9999-12-31",
"end_time": "23:59:59"
},
"download_attachments": {
"url": "www.ips-1.com.co",
"arguments": [
{
"name": "excelFile",
"value": "a1b2c3.xlsx"
},
{
"name": "txtFile",
"value": "a1b2c3.txt"
}
]
},
"document_delivery": {
"ws": "https://ws4erp.ips-987.com.co/WcfRecibiendoDocs4ERP.svc?wsdl",
"arguments": [
{
"name": "Método-1",
"value": "ClienteEntregaAcuseDeReciboDeFEV-VP"
},
{
"name": "Método-2",
"value": "ClienteEntregaConstanciaDeMercanciaEntregada"
}
]
},
"user_collections": [
{
"information": [
{
"name": "CODIGO_PRESTADOR",
"value": "codigo_prestador_de_servicios"
},
{
"name": "TIPO_DOCUMENTO_IDENTIFICACION",
"value": "Cédula de ciudadanía",
"schemeName": "salud_identificacion.gc",
"schemeID": "CC"
},
{
"name": "NUMERO_DOCUMENTO_IDENTIFICACION",
"value": "1234567891"
},
{
"name": "PRIMER_APELLIDO",
"value": "Primer_Apellido_del_usuario"
},
{
"name": "SEGUNDO_APELLIDO",
"value": "Segundo_Apellido_del_usuario"
},
{
"name": "PRIMER_NOMBRE",
"value": "Primer_Nombre_del_usuario"
},
{
"name": "SEGUNDO_NOMBRE",
"value": "Segundo_Nombre_del_usuario"
},
{
"name": "TIPO_USUARIO",
"value": "Contributivo cotizante",
"schemeName": "salud_tipo_usuario.gc",
"schemeID": "01"
},
{
"name": "MODALIDAD_CONTRATACION",
"value": "Grupos Relacionados por Diagnóstico",
"schemeName": "salud_modalidad_pago.gc",
"schemeID": "02"
},
{
"name": "OBERTURA_PLAN_BENEFICIOS",
"value": "Cobertura Póliza SOAT",
"schemeName": "salud_cobertura.gc",
"schemeID": "04"
},
{
"name": "NUMERO_AUTORIZACION",
"value": "A1234;604567;AX-2345"
},
{
"name": "NUMERO_MIPRES",
"value": "1 A1234;604567;AX-234534566"
},
{
"name": "NUMERO_ENTREGA_MIPRES",
"value": "2 A1234;604567;AX-234534566"
},
{
"name": "NUMERO_CONTRATO",
"value": "XPTO3"
},
{
"name": "NUMERO_POLIZA",
"value": "NUMERO de POLIZA"
},
{
"name": "COPAGO",
"value": "1000000"
},
{
"name": "CUOTA_MODERADORA",
"value": "2000000"
},
{
"name": "CUOTA_RECUPERACION",
"value": "3000000"
},
{
"name": "PAGOS_COMPARTIDOS",
"value": "4000000"
}
]
}
]
},
"customer": {
"country_id": "45",
"city_id": "836",
"identity_document_id": "1",
"type_organization_id": 2,
"tax_regime_id": 2,
"tax_level_id": 5,
"company_name": "NOMBRE DEL CLIENTE",
"dni": "1234564",
"mobile": "1234156465",
"email": "correo@corre.com",
"address": "dirección",
"postal_code": "000000",
"points": 0
},
"discrepancy_response": {
"reference_id": "EPOS2",
"response_id": "9"
},
"billing_reference": {
"number": "EPOS2",
"date": "2023-12-22",
"uuid": "b1b5d93a2918407a2ef0048ed3092e5d96c94f73db178779463f202f8c52dd53ef5b9888d804d4b609521b1d031aea39"
},
"allowance_charges": [
{
"amount": "10000",
"base_amount": "725000",
"charge_indicator": true,
"allowance_charge_reason": "Motivo del cargo a la factura"
},
{
"amount": "10000",
"base_amount": "725000",
"charge_indicator": false,
"discount_id": 8,
"allowance_charge_reason": "Motivo del descuento a la factura"
}
],
"legal_monetary_totals": {
"line_extension_amount": "131600.00",
"tax_exclusive_amount": "50000",
"tax_inclusive_amount": "141100.00",
"total_charges": 0,
"total_allowance": 0,
"payable_amount": "141100.00"
},
"prepaid_payments": {
"id": "SFR3123856",
"paid_amount": "10.00",
"received_date": "2018-09-29",
"paid_date": "2018-09-29",
"instruction_id": "Prepago recibido"
},
"lines": [
{
"invoiced_quantity": "3",
"quantity_units_id": "1093",
"line_extension_amount": "81600",
"free_of_charge_indicator": false,
"description": "Hunters Mini Tumaco 82%",
"note": "Información adicional del producto, es opcional cuando no es AUI",
"code": "HMT82",
"type_item_identifications_id": "4",
"reference_price_id": "1",
"price_amount": "27200",
"base_quantity": "3",
"extra_data": [
{
"title": "LOTE",
"value": "45413",
"align": "left"
},
{
"title": "FECHA DE EXPIRACIÓN",
"value": "02/02/2026",
"align": "center"
}
],
"invoice_period": {
"start_date": "2022-08-30",
"description_code": 1
},
"allowance_charges": [
{
"amount": "10000",
"base_amount": "725000",
"charge_indicator": true,
"allowance_charge_reason": "Motivo del cargo a la linea"
},
{
"amount": "10000",
"base_amount": "725000",
"charge_indicator": false,
"discount_id": 8,
"allowance_charge_reason": "Motivo del descuento a la linea"
}
]
},
{
"invoiced_quantity": "1",
"quantity_units_id": "1093",
"line_extension_amount": "50000",
"free_of_charge_indicator": false,
"description": "TIJERA NECROPSIA AVES",
"code": "HMT83",
"type_item_identifications_id": "4",
"reference_price_id": "1",
"price_amount": "59500",
"base_quantity": "1",
"tax_totals": [
{
"tax_id": "1",
"tax_amount": 9500,
"taxable_amount": 50000,
"percent": 19
}
]
}
],
"tax_totals": [
{
"tax_id": "1",
"tax_amount": 9500,
"taxable_amount": 50000,
"percent": 19
}
]
}
Descripción de los campos
A continuación se describen los campos que se deben de considerar para la generación de la factura electrónica.
{
"resolution_number": str, # Número de resolución del documento
"prefix": str, # Prefijo del documento
"date": str, # Fecha de emisión del documento
"expiration_date": str, # Fecha de expiración del documento
"time": str, # Hora de emisión del documento
"notes": str, # Notas adicionales del documento
"document_number": int, # Número del documento
"operation_type_id": int, # ID del tipo de operación
"type_document_id": int, # ID del tipo de documento
"graphic_representation": int, # Indicador de representación gráfica
"send_email": int, # Indicador de envío de email
"currency_id": int, # ID de la moneda utilizada
"payments": [ # Lista de pagos
{
"payment_method_id": int, # ID del método de pago
"means_payment_id": int, # ID del medio de pago
"value_paid": str, # Valor pagado
"payment_due_date": str, # Fecha de vencimiento del pago
}
],
"payment_exchange_rate": { # Tasa de cambio para el pago
"exchange_rate": str, # Valor de la tasa de cambio
"rate_date": str, # Fecha de la tasa de cambio
"base_rate": str, # Tasa base
"currency_id": int, # ID de la moneda
},
"point_of_sale": { # Información del punto de venta
"cashier_name": str, # Nombre del cajero
"terminal_number": str, # Número de terminal
"cashier_type": str, # Tipo de cajero
"sales_code": str, # Código de ventas
"address": str, # Dirección
"sub_total": str, # Subtotal
},
"software_manufacturer": { # Información del fabricante del software
"owner_name": str, # Nombre del propietario
"company_name": str, # Nombre de la compañía
"software_name": str, # Nombre del software
},
"order_reference": { # Referencia de la orden
"reference_number": str, # Número de referencia
"reference_date": str, # Fecha de referencia
},
"health": { # Información del sector salud
"operation_type": str, # Tipo de operación
"invoice_period": { # Periodo de facturación
"start_date": str, # Fecha de inicio
"start_time": str, # Hora de inicio
"end_date": str, # Fecha de fin
"end_time": str, # Hora de fin
},
"download_attachments": { # Descargar archivos adjuntos
"url": str, # URL
"arguments": [ # Argumentos
{
"name": str, # Nombre
"value": str, # Valor
}
]
},
"document_delivery": { # Entrega de documentos
"ws": str, # URL del servicio web
"arguments": [ # Argumentos
{
"name": str, # Nombre
"value": str, # Valor
}
]
},
"user_collections": [ # Colecciones de usuario
{
"information": [ # Información
{
"name": str, # Nombre
"value": str, # Valor
"schemeName": str, # Nombre del esquema
"schemeID": str, # ID del esquema
}
]
}
]
},
"customer": { # Información del cliente
"country_id": str, # ID del país
"city_id": str, # ID de la ciudad
"identity_document_id": str, # ID del documento de identidad
"type_organization_id": int, # ID del tipo de organización
"tax_regime_id": int, # ID del régimen tributario
"tax_level_id": int, # ID del nivel tributario
"company_name": str, # Nombre de la compañía
"dni": str, # DNI del cliente
"mobile": str, # Móvil del cliente
"email": str, # Email del cliente
"address": str, # Dirección del cliente
"postal_code": str, # Código postal del cliente,
"points": int, # Puntos del cliente
},
"discrepancy_response": { # Respuesta a discrepancias
"reference_id": str, # ID de referencia
"response_id": str, # ID de respuesta
},
"billing_reference": { # Referencia de facturación
"number": str, # Número
"date": str, # Fecha
"uuid": str, # UUID
},
"allowance_charges": [ # Cargos y descuentos
{
"amount": str, # Monto
"base_amount": str, # Monto base
"charge_indicator": bool, # Indicador de cargo
"allowance_charge_reason": str, # Motivo del cargo o descuento
"discount_id": int, # ID del descuento (opcional)
}
],
"legal_monetary_totals": { # Totales monetarios legales
"line_extension_amount": str, # Monto de extensión de línea
"tax_exclusive_amount": str, # Monto exclusivo de impuestos
"tax_inclusive_amount": str, # Monto incluyente de impuestos
"total_charges": int, # Total de cargos
"total_allowance": int, # Total de descuentos
"payable_amount": str, # Monto pagable
},
"prepaid_payments": { # Anticipos
"id": str, # ID
"paid_amount": str, # Monto pagado
"received_date": str, # Fecha de recibido
"paid_date": str, # Fecha de pago
"instruction_id": str, # ID de instrucción
},
"lines": [ # Líneas de detalle
{
"invoiced_quantity": str, # Cantidad facturada
"quantity_units_id": str, # ID de unidad de medida
"line_extension_amount": str, # Monto de extensión de línea
"free_of_charge_indicator": bool, # Indicador de gratuidad
"description": str, # Descripción
"note": str, # Nota
"code": str, # Código
"type_item_identifications_id": str, # ID de tipo de identificación del ítem
"reference_price_id": str, # ID de precio de referencia
"price_amount": str, # Monto del precio
"base_quantity": str, # Cantidad base
"invoice_period": { # Periodo de facturación de la línea del documento soporte
"start_date": str, # Fecha de inicio
"description_code": int, # Código de descripción
},
"allowance_charges": [ # Cargos y descuentos en la línea
{
"amount": str, # Monto
"base_amount": str, # Monto base
"charge_indicator": bool, # Indicador de cargo
"allowance_charge_reason": str, # Motivo del cargo o descuento
"discount_id": int, # ID del descuento (opcional)
}
],
"tax_totals": [ # Totales de impuestos
{
"tax_id": str, # ID del impuesto
"tax_amount": int, # Monto del impuesto
"taxable_amount": int, # Monto imponible
"percent": int, # Porcentaje
}
],
}
],
"tax_totals": [ # Totales de impuestos
{
"tax_id": str, # ID del impuesto
"tax_amount": int, # Monto del impuesto
"taxable_amount": int, # Monto imponible
"percent": int, # Porcentaje
}
]
}
Uso de los campos
A continuación se describe el uso de los campos de la factura electrónica, nota de crédito y nota de débito, documento soporte y documento equivalente, con sus respectivas notas de ajuste.
resolution_number
Número de resolución del documento, este valor debe ser el mismo que se configura en el portal web. Este campo es obligatorio para todos los documentos.
prefix
Prefijo de la resolución del documento. Este campo es obligatorio cuando se tiene más de una resolución y debe ser un string.
date
Fecha de emisión del documento. Este campo es opcional y en caso de enviarlo debe ser un string en formato YYYY-MM-DD
. Si no envía este campo, la API tomará la fecha actual.
expiration_date
Fecha de vencimiento del documento equivalente electrónico debe estar asociada con las fechas negociadas o acordadas según los registros de los campos cac:PaymentTerms/cbc:PaymentDueDate.
time
Hora de emisión del documento. Este campo es opcional y en caso de enviarlo y debe ser un string en formato H:i:s
. Si no envía este campo, la API tomará la hora actual
notes
Si desea enviar información adicional sobre el documento, puede enviar este campo, el cual es opcional para algunos documentos y debe ser un string.
document_number
Número consecutivo del documento, sin prefijos. Este campo es obligatorio para todos los documentos y debe ser un entero encerrado entre ""
sin prefijos.
operation_type_id
-
Ejemplo
"operation_type_id" : 1
Se refiere al tipo de operación que afecta al documento, en la mayoría de los documentos es 1 (Estandar). Puede consultar
los diferentes tipos de operación en el ENDPOINT {{url}}/operation-type
. Este campo es obligatorio para todos los documentos y debe ser un entero.
type_document_id
Se refiere al tipo de documento que se está enviando a la DIAN, puede consultar cada tipo de documento en el ENDPOINT
{{url}}/document-type
. Este campo es obligatorio para todos los documentos y debe ser un entero.
graphic_representation
Indicador de representación gráfica. Este campo es opcional, se debe enviar cuado se espera que la API genere el PDF de la representación gráfica.
-
Ejemplo
"graphic_representation": 1
send_email
Indicador de envío de email. Este campo es opcional, se debe enviar cuado se espera que la API envíe el email al cliente del documento.
-
Ejemplo
"send_email": 1
currency_id
Hace referencia a la moneda del documento. Puede consultar la lista de monedas disponibles en el ENDPOINT {{url}}/currencies
.
Este campo es opcional, solo se debe enviar cuando es una moneda extranjera y debe ser un entero.
payments
Lista de pagos. Este campo es obligatorio para todos los documentos y debe ser un arreglo de objetos.
-
Ejemplo
"payments": [
{
"payment_method_id": 1,
"means_payment_id": 10,
"value_paid": "141100.00",
"payment_due_date": "2024-02-22"
}
]
-
Detalle de los campos
-
Método de pago,payment_method_id
1
cuado es de contado y2
cuando es a crédito. Este campo es obligatorio para todos los documentos y debe ser un entero. -
Medio de pago. Este campo es utiliza para indicar un medio de pago y es obligatorio para todos los documentos y debe ser un entero. Puede consultar los diferentes medios de pago en el ENDPOINTmeans_payment_id
{{url}}/payment-means
. -
Valor pagado. Este campo es obligatorio para todos los documentos y debe ser un número flotante con máximo dos decimales, encerrado entrevalue_paid
""
. -
Fecha de vencimiento del pago. Este campo es usado para indicar la fecha de vencimiento de un pago a crédito. Es obligatorio solo para las ventas a crédito y debe ser un string en formatopayment_due_date
YYYY-MM-DD
.
-
document_signature
: NEW
Información de la firma del documento. Este campo es opcional y debe ser un objeto.
-
Ejemplo
"document_signature": {
"cashier": "Nombre del cajero(a)",
"seller": "Nombre del vendedor(a)"
}
-
Detalle de los campos
payment_exchange_rate
Tasa de cambio para el pago. Este campo es obligatorio solo para los documentos en moneda extranjera y debe ser un objeto.
-
Ejemplo
"payment_exchange_rate": {
"exchange_rate": "3950.00",
"rate_date": "2022-06-28",
"base_rate" : "3950.00",
"currency_id": 188
}
-
Detalle de los campos
-
Valor de la tasa de cambio. Este campo es obligatorio solo para los documentos en moneda extranjera y debe ser un string.exchange_rate
-
Fecha de la tasa de cambio. Este campo es obligatorio solo para los documentos en moneda extranjera y debe ser un string.rate_date
-
Tasa base. Este campo es obligatorio solo para los documentos en moneda extranjera y debe ser un string. Base monetaria de la divisa COP que se deberá convertir a moneda extranjera, ejemplo: si es USD el valor a informar es el valor equivalente de un dólar en pesos.base_rate
-
point_of_sale
Información del punto de venta. Este campo es obligatorio solo para los documentos de tipo P.O.S ELECTRÓNICO y debe ser un objeto.
-
Ejemplo
"point_of_sale": {
"cashier_name": "LEWIS LOPEZ",
"terminal_number": "CJ001aB",
"cashier_type": "Caja de apoyo",
"sales_code": "POS01",
"address": "Gilbarco Encore 4 L1 Mangue ra 17 AC",
"sub_total": "2000.10"
}
-
Detalle de los campos
-
Nombre del cajero. Este campo es obligatorio solo para los documentos de tipo P.O.S ELECTRÓNICO y debe ser un string.cashier_name
-
Número de términal del punto de venta. Este campo es obligatorio solo para los documentos de tipo P.O.S ELECTRÓNICO y debe ser un string.terminal_number
-
Tipo de caja del punto de venta, ejemplo(cashier_type
GENÉRICA
). Este campo es obligatorio solo para los documentos de tipo P.O.S ELECTRÓNICO y debe ser un string. -
Código de la venta, puede ser ID de la venta ejemplo(sales_code
45212
). Este campo es obligatorio solo para los documentos de tipo P.O.S ELECTRÓNICO y debe ser un string. -
Dirección del punto de venta. Este campo es obligatorio solo para los documentos de tipo P.O.S ELECTRÓNICO y debe ser un string.address
-
Subtotal de la venta, total venta sin IVA. Este campo es obligatorio solo para los documentos de tipo P.O.S ELECTRÓNICO y debe ser un string.sub_total
-
software_manufacturer
Información del fabricante del software. Este campo es obligatorio solo para los documentos equivalentes P.O.S y debe ser un objeto.
-
Ejemplo
{
"owner_name": "LEWIS LOPEZ GOMEZ",
"company_name": "LOPEZSOFT SAS",
"software_name": "SOFTWARE POS MATIAS APP"
}
-
Detalle de los campos
-
Nombre del propietario. Este campo es obligatorio solo para los documentos equivalentes P.O.S y debe ser un string.owner_name
-
Nombre de la compañía. Este campo es obligatorio solo para los documentos equivalentes P.O.S y debe ser un string.company_name
-
Nombre del software. Este campo es obligatorio solo para los documentos equivalentes P.O.S y debe ser un string.software_name
-
order_reference
Referencia de la orden. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.
-
Ejemplo
"order_reference": {
"reference_number": "4545478787",
"reference_date": "2021-05-19"
}
-
Detalle de los campos
health
Información del sector salud. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.
-
Tipo de operación. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.operation_type
-
Periodo de facturación. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.invoice_period
-
-
Fecha de inicio. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.start_date
-
-
-
Hora de inicio. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.start_time
-
-
-
Fecha de fin. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.end_date
-
-
-
Hora de fin. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.end_time
-
-
-
Descargar archivos adjuntos. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.download_attachments
-
-
Nombre. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.name
-
-
-
Valor. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.value
-
-
Entrega de documentos. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.document_delivery
-
-
Nombre. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.name
-
-
-
Valor. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.value
-
-
Colecciones de usuario. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un arreglo de objetos.user_collections
-
-
Información. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un arreglo de objetos.information
-
-
-
-
Nombre. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.name
-
-
-
Valor. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.value
-
-
-
Nombre del esquema. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.schemeName
-
-
-
ID del esquema. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.schemeID
-
customer: Factura Electrónica
Información del cliente. Este campo es obligatorio para todos los documentos relacionados con la factura electrónica y documento soporte, y sus respectivas notas y debe ser un objeto.
- Debido a que el cliente puede ser una persona natural o jurídica, se deben enviar los siguientes campos:
-
País del cliente. Este campo es opcional. Puede consultar los diferentes países en el ENDPOINTcountry_id
: Valor por defecto45
, Colombia(CO){{url}}/countries
. -
Ciudad del cliente. Este campo es opcional. Puede consultar las diferentes ciudades en el ENDPOINTcity_id
{{url}}/cities
. -
Documento de identidad del cliente. Este campo es opcional. Puede consultar los diferentes documentos de identidad en el ENDPOINTidentity_document_id
: Valor por defecto3
, NIT(31){{url}}/identity-documents
. -
Tipo de organización del cliente, 1 (Persona Jurídica), 2 (Persona natural). Este campo es opcional.type_organization_id
: Valor por defecto2
, Persona Natural(2) -
Régimen fiscal del cliente. Este campo es opcional, si no se envía por defecto toma el código(tax_regime_id
: Valor por defecto2
, No responsable de IVA(49)49
) de No responsable de IVA. Puede consultar los diferentes regímenes tributarios en el ENDPOINT{{url}}/accounting-regime
. -
Responsabilidad tributaria del cliente. Este campo es opcional, si no se envía por defecto toma el código(tax_level_id
: Valor por defecto5
, No aplica – Otros(R-99-PN)R-99-PN
) de No aplica – Otros. Puede consultar los diferentes niveles tributarios en el ENDPOINT{{url}}/fiscal-regime
. -
Nombre de la empresa/persona natual. Este campo es obligatorio para todos los documentos y debe ser un string.company_name
: Obligatorio para todos los documentos -
Número del documento de identidad del cliente sin dígito de verificación. Este campo es obligatorio para todos los documentos y debe ser un string.dni
: Obligatorio para todos los documentos -
Móvil del cliente. Este campo es opcional, si no se envía por defecto toma el valor demobile
: valor por defecto""
""
. -
Email del cliente, a donde se enviará el documento electrónico. Este campo es obligatorio para todos los documentos que deben ser enviados al cliente y debe ser un string.email
-
Dirección del cliente. Este documento es opcional, si no se envía por defecto toma el valor deaddress
: valor por defecto""
""
. -
Código postal del cliente. Este campo es opcional, si no se envía por defecto toma el valor depostal_code
: valor por defecto"000000"
"000000"
. -
Nombre de la ciudad del cliente o proveedor extranjero. Este campo es opcional, solo se debe usar cuando el documento soporte es para no residente o cuando un cliente es extranjero.city_name:
NEW
-
customer -> Documento P.O.S Electrónico.
Información del cliente. Este campo es obligatorio solo para los documentos equivalentes P.O.S y debe ser un objeto.
-
Descripción de los campos
-
Nombre de la empresa/persona natual. Este campo es obligatorio y debe ser un string.company_name
: Obligatorio para todos los documentos -
Número del documento de identidad del cliente sin dígito de verificación. Este campo es obligatorio y debe ser un string.dni
: Obligatorio para todos los documentos -
Email del cliente, a donde se enviará el documento electrónico. Este campo es opcional y debe ser un string.email
-
Puntos del cliente. Este campo es opcional, si no se envía por defecto toma el valor depoints
0
.
-
discrepancy_response
Respuesta a discrepancias. Este campo es obligatorio solo para las notas de crédito, débito y de ajustes de todos los documentos y debe ser un objeto.
-
Ejemplo
"discrepancy_response": {
"reference_id": "EPOS2",
"response_id": "9"
}
-
Detalle de los campos
-
Número del documento al que se le hace la nota, con el prefijo, ejemplo(FE4578). Este campo es obligatorio solo para las notas de crédito, débito y de ajustes de todos los documentos y debe ser un string.reference_id
-
Hace referencia al tipo de corrección aplicado a la nota. Este campo es obligatorio solo para las notas de crédito, débito y de ajustes de todos los documentos y debe ser un string. Puede consultar los diferentes tipos de corrección en el ENDPOINTresponse_id
{{url}}/correction-notes
.
-
billing_reference
Referencia de facturación. Este campo es obligatorio solo para las notas de crédito, débito y de ajustes de todos los documentos y debe ser un objeto.
-
Ejemplo
"billing_reference": {
"number": "EPOS2",
"date": "2023-12-22",
"uuid": "b1b5d93a2918407a2ef0048ed3092e5d96c94f73db178779463f202f8c52dd53ef5b9888d804d4b609521b1d031aea39",
"scheme_name": "CUDE-SHA384"
}
-
Detalle de los campos
-
Número del documento de referencia, con el prefijo, ejemplo(FE4578). Este campo es obligatorio solo para las notas de crédito, débito y de ajustes de todos los documentos y debe ser un string.number
-
Fecha del documento de referencia. Este campo es obligatorio solo para las notas de crédito, débito y de ajustes de todos los documentos y debe ser un string.date
-
UUID del documento de referencia(uuid
CUFE/CUDE
). Este campo es obligatorio solo para las notas de crédito, débito y de ajustes de todos los documentos y debe ser un string. -
Nombre del esquema. Este campo es obligatorio solo para las notas de crédito, débito del POS ELECTRÓNICO y para las notas de ajuste del DOCUMENTO SOPORTE. Debe ser un string.scheme_name
-
allowance_charges
Descuentos o cargos a nivel de factura, es decir descuentos o cargos que no afectan las bases gravables. Los descuentos o cargos que afectan bases gravables se informan a nivel de ítem. Este campo es opcional, se debe informar cuando hay un cargo o descuento a nivel global de la factura y debe ser un arreglo de objetos.
-
Ejemplo
"allowance_charges": [
{
"amount": "10000",
"base_amount": "725000",
"charge_indicator": true,
"allowance_charge_reason": "Motivo del cargo a la factura"
},
{
"amount": "10000",
"base_amount": "725000",
"charge_indicator": false,
"discount_id": 2,
"allowance_charge_reason": "Motivo del descuento a la factura"
}
]
-
Detalle de los campos
-
Valor total del cargo o descuento. Valor numérico del Cargo o el Descuento. Si es descuento, no puede ser superior al valor base. Este campo es obligatorio y debe ser un string.amount
-
Valor Base para calcular el descuento o el cargo. Este campo es obligatorio y debe ser un string.base_amount
-
Indica que el elemento es un Cargo y no un descuento. Cargo es true, es un Débito aumenta el valor de la factura y se debe reportar en elcharge_indicator
LegalMonetary
. Descuento esfalse
, un Crédito descuenta el valor de la factura antes de tributos y debe reportarse en el LegalMonetary El elemento solamente puede identificar una de la información. Rechazo: Si este elemento contiene una información diferente detrue
ofalse
. -
Texto libre para informar de la razón del descuento. Obligatorio si hay un recargo o descuento, entonces este elemento debe ser informado y debe ser un string.allowance_charge_reason
-
Código para categorizar el descuento. Solo para descuentos a nivel de factura. Obligatorio de informar si es descuento a nivel de factura y debe ser un entero. Puede consultar los diferentes tipos de descuentos en el ENDPOINTdiscount_id
{{url}}/discount-codes
.
-
legal_monetary_totals
Totales del documento. Este campo es obligatorio para todos los documentos donde se usa y debe ser un objeto.
-
Ejemplo
"legal_monetary_totals": {
"line_extension_amount": "50000",
"tax_exclusive_amount": "50000",
"tax_inclusive_amount": "59500",
"total_charges": 0,
"total_allowance": 0,
"payable_amount": "59500"
}
-
Detalle de los campos
-
Total de las líneas antes de iva (Total Valor Bruto antes de tributos). El Valor Bruto antes de tributos tiene que ser la suma de los valores de las líneas de la factura que contienen el valor comercial. Este campo es obligatorio y debe ser un string con valor flotante de máximo dos decimales.line_extension_amount
-
Base gravable de las líneas que tienen impuesto, si no tiene impuesto se deja entax_exclusive_amount
0
. Total Valor Base Imponible: base imponible para el cálculo de los tributos. El Valor Base Imponible tiene que ser la suma de los valores de las bases imponibles de todas líneas de detalle. Este campo es obligatorio y debe ser un string con valor flotante de máximo dos decimales. -
Total de líneas + Impuestos. Total de Valor Bruto más tributos. El Valor Bruto más tributos tiene que ser igual a Valor Bruto de la factura que contienen el valor comercial, más la suma de los tributos de todas las líneas de detalle. Este campo es obligatorio y debe ser un string con valor flotante de máximo dos decimales.tax_inclusive_amount
-
Total de cargos. El Valor del Cargo Total, es igual a la suma de todos los cargos globales aplicados al total de la factura. Este campo es opcional y debe ser un string con valor flotante de máximo dos decimales. Si no se envía por defecto toma el valor detotal_charges
0
. -
Total de descuentos. El Valor del Descuento Total es igual a la suma de todos los descuentos globales aplicados al total de la factura. Este campo es opcional y debe ser un string con valor flotante de máximo dos decimales. Si no se envía por defecto toma el valor detotal_allowance
0
. -
Monto total del documento. Valor total de ítems (incluyendo cargos y descuentos a nivel de ítems) +valor tributos + valor cargos globales – valor descuentos globales. Este campo es obligatorio y debe ser un string con valor flotante de máximo dos decimales.payable_amount
-
lines
Líneas del detalle de cada item del documento. Este campo es obligatorio para todos los documentos donde se usa y debe ser un arreglo de objetos.
-
Cantidad del producto o servicio. Este campo es obligatorio y debe ser un string.invoiced_quantity
-
Hace referencia a la unidad de medida, se recomienda dejar el valorquantity_units_id
1093
. Este campo es obligatorio y debe ser un string. Puede consultar las diferentes unidades de medida en el ENDPOINT{{url}}/quantity-units
. -
Valor total de la línea sin impuesto. El Valor Total de la línea es igual al producto de: Cantidad x Precio Unidad menos Descuentos más Recargos (C X PU - D + R), que apliquen para la línea. Este campo es obligatorio y debe ser un string con valor flotante de máximo dos decimales ("line_extension_amount
0.00
"). -
Indicador de gratuidad: Para indicar que es un producto gratis o muestra se debe enviar el valorfree_of_charge_indicator
: Valor por defectofalse
true
. Este campo es obligatorio y debe ser un booleano. -
Descripción del artículo o servicio a que se refiere esta línea de la factura. Este campo es obligatorio y debe ser un string.description
-
Nota adicional del detalle de la línea. Obligatorio de informar para el caso de facturas por contratos denote
servicio tipo AIU
. Para el ítem Administración. En este caso la cbc:Note debe empezar por el texto:“Contrato de servicios AIU por concepto de:”
El contribuyente debe incluir el objeto del contrato facturado. Este campo es opcional y debe ser un string. -
Código interno del artículo o servicio de la línea. Este campo es obligatorio y debe ser un string.code
-
Estandar de identificación del ítem, se recomienda que siempre seatype_item_identifications_id
: Valor por defecto4
4
. Este campo es obligatorio y debe ser un string. Puede consultar los diferentes tipos de identificación de ítem en el ENDPOINT{{url}}/type-item-identifications
. -
Precio de referencia. Este campo es obligatorio y debe ser un string. Puede consultar los diferentes precios de referencia en el ENDPOINTreference_price_id
: Valor por defecto1
{{url}}/reference-price
. -
Valor del artículo o servicio. Este campo es obligatorio y debe ser un string con valor flotante de máximo dos decimales ("price_amount
0.00
"). -
La cantidad real sobre la cual el precio aplica, se recomienda ser igual abase_quantity
invoiced_quantity
. Este campo es obligatorio y debe ser un string.
linea->extra_data
: NEW
-
Grupo de campos para información adicional de la línea. Este campo es opcional y debe ser un arreglo de objetos.
-
Este campo es utilizado para enviar información adicional que no se encuentra en los campos estándar de la línea.
-
Esta información adicional se mostrará en la representación gráfica del documento y no se enviará a la DIAN.
-
Ejemplo
"extra_data": [
{
"title": "LOTE",
"value": "45413",
"align": "left"
},
{
"title": "FECHA DE EXPIRACIÓN",
"value": "02/02/2026",
"align": "center"
}
]
-
Detalle de los campos
NOTA: Es importante que el campotitle
sea igual en cada línea donde se envía el mismo valor para la columna en la representación gráfica.-
Título del campo adicional. Este campo es obligatorio y debe ser un string.title
-
Valor del campo adicional. Este campo es obligatorio y debe ser un string.value
-
Alineación del campo adicional. Este campo es obligatorio y debe ser un string.align
: defaultleft
left
: Alineación a la izquierda.center
: Alineación al centro.right
: Alineación a la derecha.
-
lines->invoice_period
Periodo de facturación de la línea del documento soporte. Este campo es obligatorio solo para los documentos soporte y debe ser un objeto.
-
Ejemplo
"invoice_period": {
"start_date": "2022-06-28",
"description_code": 1
}
-
Descripción de los campos
lines->allowance_charges
Grupo de campos para información relacionada con un cargo o un descuento en la línea. Este grupo se debe informar a nivel de ítem, si y solamente si el cargo o descuento afecta la base gravable del ítem. Si un cargo individual, general a la factura genera IVA, debe reportarse como ítem. Para el caso de los descuentos a nivel de ítem no es necesario codificarlos. Este campo es opcional y debe ser un arreglo de objetos.
-
Ejemplo
"allowance_charges": [
{
"amount": "10000",
"base_amount": "725000",
"charge_indicator": true,
"allowance_charge_reason": "Motivo del cargo a la linea"
},
{
"amount": "10000",
"base_amount": "725000",
"charge_indicator": false,
"discount_id": 1,
"allowance_charge_reason": "Motivo del descuento a la linea"
}
]
-
Detalle de los campos
-
Valor total del cargo o descuento. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales encerrado entreamount
""
. -
Valor Base para calcular el descuento el cargo. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales encerrado entrebase_amount
""
. -
Indica que el elemento es un Cargo y no un descuento. Cargo escharge_indicator
true
, es un Débito aumenta el valor de la item. Descuento esfalse
, un Crédito descuenta el valor del ítem El elemento solamente puede identificar una de las informaciones. Este campo es obligatorio cuando el cargo no es un descuento y debe ser un booleano. -
Texto libre para informar de la razón del descuento. Este campo es obligatorio y debe ser un string.allowance_charge_reason
-
lines->tax_totals
Grupo de campos para información relacionada con todos los impuestos de la línea. Este campo es obligatorio solo cuanto la línea tiene impuestos y debe ser un arreglo de objetos.
-
Ejemplo
"tax_totals": [
{
"tax_id": "01",
"tax_amount": "10000",
"taxable_amount": "725000",
"percent": 5
}
]
-
Detalle de los campos
-
ID del impuesto. Este campo es obligatorio y debe ser un string.tax_id
-
Monto o valor total del impuesto. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales.tax_amount
-
Base gravable del impuesto. Este campo es obligatorio y debe ser un número flotante con máximo dos decimalestaxable_amount
-
Porcentaje. Este campo es obligatorio y debe ser un entero.percent
-
tax_totals
Suma de todos los impuestos del documento. Este campo es obligatorio solo cuanto el documento tiene impuestos y debe ser un arreglo de objetos.
-
Ejemplo
"tax_totals": [
{
"tax_id": "01",
"tax_amount": "10000",
"taxable_amount": "725000",
"percent": 5
}
]
-
Detalle de los campos
-
ID del impuesto. Este campo es obligatorio y debe ser un string.tax_id
-
Monto o valor total del impuesto. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales.tax_amount
-
Base gravable del impuesto. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales.taxable_amount
-
Porcentaje. Este campo es obligatorio y debe ser un entero.percent
-