Saltar al contenido principal

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"
},
"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": "170",
"city_id": "149",
"identity_document_id": "1",
"type_organization_id": 2,
"tax_regime_id": 2,
"tax_level_id": 5,
"company_name": "Santiago Arango",
"dni": "1152440359",
"mobile": "3108435423",
"email": "lws_1234@hotmail.com",
"address": "Direccion residencial",
"postal_code": "661002",
"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",
"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

"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.

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.

"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.

"payments": [
{
"payment_method_id": 1,
"means_payment_id": 10,
"value_paid": "141100.00",
"payment_due_date": "2024-02-22"
}
]
  • payment_method_id

Método de pago, 1 cuado es de contado y 2 cuando es a crédito. Este campo es obligatorio para todos los documentos y debe ser un entero.

  • means_payment_id

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 ENDPOINT {{url}}/payment-means.

  • value_paid

Valor pagado. Este campo es obligatorio para todos los documentos y debe ser un número flotante con máximo dos decimales, encerrado entre "".

  • payment_due_date

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 los pagos a crédito y debe ser un string en formato YYYY-MM-DD.

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.

"payment_exchange_rate": {
"exchange_rate": "3950.00",
"rate_date": "2022-06-28",
"base_rate" : "3950.00",
"currency_id": 188
}
  • exchange_rate

Valor de la tasa de cambio. Este campo es obligatorio solo para los documentos en moneda extranjera y debe ser un string.

Fecha de la tasa de cambio. Este campo es obligatorio solo para los documentos en moneda extranjera y debe ser un string.

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.

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.

"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"
}
  • cashier_name

Nombre del cajero. Este campo es obligatorio solo para los documentos de tipo P.O.S ELECTRÓNICO y debe ser un string.

  • terminal_number

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.

  • cashier_type

Tipo de caja del punto de venta, ejemplo(GENÉRICA). Este campo es obligatorio solo para los documentos de tipo P.O.S ELECTRÓNICO y debe ser un string.

  • sales_code

Código de la venta, puede ser ID de la venta ejemplo(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.

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.

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.

{
"owner_name": "LEWIS LOPEZ GOMEZ",
"company_name": "LOPEZSOFT SAS",
"software_name": "SOFTWARE POS MATIAS APP"
}
  • owner_name

Nombre del propietario. Este campo es obligatorio solo para los documentos equivalentes P.O.S y debe ser un string.

  • company_name

Nombre de la compañía. Este campo es obligatorio solo para los documentos equivalentes P.O.S y debe ser un string.

  • software_name

Nombre del software. Este campo es obligatorio solo para los documentos equivalentes P.O.S y debe ser un string.

order_reference

Referencia de la orden. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.

"order_reference": {
"reference_number": "4545478787",
"reference_date": "2021-05-19"
}
  • reference_number

Número de referencia. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

  • reference_date

Fecha de referencia. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

health

Información del sector salud. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.

  • operation_type

Tipo de operación. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

  • invoice_period

Periodo de facturación. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.

    • start_date

Fecha de inicio. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

    • start_time

Hora de inicio. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

Fecha de fin. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

Hora de fin. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

  • download_attachments

Descargar archivos adjuntos. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.

URL. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

Argumentos. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un arreglo de objetos.

Nombre. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

Valor. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

  • document_delivery

Entrega de documentos. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un objeto.

URL del servicio web. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

Argumentos. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un arreglo de objetos.

Nombre. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

Valor. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

  • user_collections

Colecciones de usuario. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un arreglo de objetos.

    • information

Información. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un arreglo de objetos.

Nombre. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

Valor. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

    • schemeName

Nombre del esquema. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

ID del esquema. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.

customer -> Factura

Información del cliente. Este campo es obligatorio para todos los documentos relacionados con a factura electrónica y documento soporte y debe ser un objeto.

  • country_id

País del cliente. Este campo es opcional, si no se envía por defecto toma el código del país de Colombia. Puede consultar los diferentes países en el ENDPOINT {{url}}/countries.

Ciudad del cliente. Este campo es opcional, si no se envía por defecto toma el código de la ciudad de Bogotá. Puede consultar las diferentes ciudades en el ENDPOINT {{url}}/cities.

  • identity_document_id

Documento de identidad del cliente. Este campo es opcional, si no se envía por defecto toma el código del documento de identidad NIT. Puede consultar los diferentes documentos de identidad en el ENDPOINT {{url}}/identity-documents.

  • type_organization_id

Tipo de organización del cliente, 1 (Persona Jurídica), 2 (Persona natural). Este campo es opcional, si no se envía por defecto toma el código del tipo de Persona Natural y asimiladas.

  • tax_regime_id

Régimen contable del cliente. Este campo es opcional, si no se envía por defecto toma el código(49) de No responsable de IVA. Puede consultar los diferentes regímenes tributarios en el ENDPOINT {{url}}/accounting-regime.

  • tax_level_id

Régimen fiscal del cliente. Este campo es opcional, si no se envía por defecto toma el código(R-99-PN) de No aplica – Otros. Puede consultar los diferentes niveles tributarios en el ENDPOINT {{url}}/fiscal-regime.

  • company_name

Nombre de la empresa/persona natual. Este campo es obligatorio para todos los documentos y debe ser un string.

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.

Móvil del cliente. Este campo es opcional, si no se envía por defecto toma el valor de "".

Email del cliente. Este campo es obligatorio para todos los documentos que deben ser enviados al cliente y debe ser un string.

Dirección del cliente. Este documento es opcional, si no se envía por defecto toma el valor de "".

  • postal_code

Código postal del cliente. Este campo es opcional, si no se envía por defecto toma el valor de "661002".

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.

  • company_name

Nombre de la empresa/persona natual. Este campo es obligatorio y debe ser un string.

Número del documento de identidad del cliente sin dígito de verificación. Este campo es obligatorio y debe ser un string.

Puntos del cliente. Este campo es opcional, si no se envía por defecto toma el valor de 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.

"discrepancy_response": {
"reference_id": "EPOS2",
"response_id": "9"
}
  • reference_id

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.

  • response_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 ENDPOINT {{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.

"billing_reference": {
"number": "EPOS2",
"date": "2023-12-22",
"uuid": "b1b5d93a2918407a2ef0048ed3092e5d96c94f73db178779463f202f8c52dd53ef5b9888d804d4b609521b1d031aea39"
}

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.

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.

UUID del documento de referencia(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.

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.

"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"
}
]

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.

  • base_amount

Valor Base para calcular el descuento o el cargo. Este campo es obligatorio y debe ser un string.

  • charge_indicator

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 el LegalMonetary. Descuento es false, 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 de true o false.

  • allowance_charge_reason

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.

  • discount_id

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 ENDPOINT {{url}}/discount-codes.

Totales del documento. Este campo es obligatorio para todos los documentos y debe ser un objeto.

"legal_monetary_totals": {
"line_extension_amount": "50000",
"tax_exclusive_amount": "50000",
"tax_inclusive_amount": "59500",
"total_charges": 0,
"total_allowance": 0,
"payable_amount": "59500"
}
  • line_extension_amount

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.

  • tax_exclusive_amount

Base gravable de las líneas que tienen impuesto, si no tiene impuesto se deja en 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.

  • tax_inclusive_amount

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.

  • total_charges

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 de 0.

  • total_allowance

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 de 0.

  • payable_amount

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.

lines

Líneas de detalle de cada documento. Este campo es obligatorio para todos los documentos y debe ser un arreglo de objetos.

  • invoiced_quantity

Cantidad del producto o servicio. Este campo es obligatorio y debe ser un string.

  • quantity_units_id

Hace referencia unidad de medida, se recomienda dejar el valor 1093. Este campo es obligatorio y debe ser un string. Puede consultar las diferentes unidades de medida en el ENDPOINT {{url}}/quantity-units.

  • line_extension_amount

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 que apliquen para la línea. Este campo es obligatorio y debe ser un string.

  • free_of_charge_indicator

Indicador de gratuidad, siempre es false. Este campo es obligatorio y debe ser un booleano.

  • description

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.

Nota adicional del detalle de la línea. Obligatorio de informar para el caso de facturas por contratos de 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.

  • type_item_identifications_id

Estandar de identificación del ítem, se recomienda que siempre sea 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.

  • reference_price_id

Precio de referencia. Este campo es obligatorio y debe ser un string. Puede consultar los diferentes precios de referencia en el ENDPOINT {{url}}/reference-price.

  • price_amount

Valor del artículo o servicio. Este campo es obligatorio y debe ser un string.

  • base_quantity

La cantidad real sobre la cual el precio aplica, se recomienda ser igual a invoiced_quantity. Este campo es obligatorio y debe ser un string.

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.

"invoice_period": {
"start_date": "2022-06-28",
"description_code": 1
}
  • start_date

Fecha de inicio. Este campo es obligatorio solo para los documentos soporte y debe ser un string.

  • description_code

Código de descripción. Este campo es obligatorio solo para los documentos soporte y debe ser un entero.

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.

"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"
}
]

Valor total del cargo o descuento. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales encerrado entre "".

  • base_amount

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 entre "".

  • charge_indicator

Indica que el elemento es un Cargo y no un descuento. Cargo es true, es un Débito aumenta el valor de la item. Descuento es false, 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.

  • allowance_charge_reason

Texto libre para informar de la razón del descuento. Este campo es obligatorio y debe ser un string.

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.

"tax_totals": [
{
"tax_id": "01",
"tax_amount": "10000",
"taxable_amount": "725000",
"percent": 5
}
]

ID del impuesto. Este campo es obligatorio y debe ser un string.

  • tax_amount

Monto o valor total del impuesto. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales.

  • taxable_amount

Base gravable del impuesto. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales

Porcentaje. Este campo es obligatorio y debe ser un entero.

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.

"tax_totals": [
{
"tax_id": "01",
"tax_amount": "10000",
"taxable_amount": "725000",
"percent": 5
}
]

ID del impuesto. Este campo es obligatorio y debe ser un string.

  • tax_amount

Monto o valor total del impuesto. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales.

  • taxable_amount

Base gravable del impuesto. Este campo es obligatorio y debe ser un número flotante con máximo dos decimales.

Porcentaje. Este campo es obligatorio y debe ser un entero.