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
-
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.
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"
}
]
-
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.
-
Ejemplo
"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.
-
rate_date
Fecha de la tasa de cambio. Este campo es obligatorio solo para los documentos en moneda extranjera y debe ser un string.
-
base_rate
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.
-
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"
}
-
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.
-
address
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.
-
sub_total
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.
-
Ejemplo
{
"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.
-
Ejemplo
"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.
-
-
end_date
-
Fecha de fin. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.
-
-
end_time
-
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
-
URL. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.
-
-
arguments
-
Argumentos. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un arreglo de objetos.
-
-
name
-
Nombre. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.
-
-
value
-
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.
-
-
ws
-
URL del servicio web. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.
-
-
arguments
-
Argumentos. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un arreglo de objetos.
-
-
name
-
Nombre. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.
-
-
value
-
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.
-
-
name
-
Nombre. Este campo es opcional debe ser usado de acuerdo al giro del documento y debe ser un string.
-
-
value
-
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.
-
-
schemeID
-
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
.
-
city_id
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.
-
dni
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.
-
mobile
Móvil del cliente. Este campo es opcional, si no se envía por defecto toma el valor de ""
.
-
email
Email del cliente. Este campo es obligatorio para todos los documentos que deben ser enviados al cliente y debe ser un string.
-
address
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.
-
dni
Número del documento de identidad del cliente sin dígito de verificación. Este campo es obligatorio y debe ser un string.
-
points
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.
-
Ejemplo
"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.
-
Ejemplo
"billing_reference": {
"number": "EPOS2",
"date": "2023-12-22",
"uuid": "b1b5d93a2918407a2ef0048ed3092e5d96c94f73db178779463f202f8c52dd53ef5b9888d804d4b609521b1d031aea39"
}
-
number
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.
-
date
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
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.
-
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"
}
]
-
amount
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
.
legal_monetary_totals
Totales del documento. Este campo es obligatorio para todos los documentos 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"
}
-
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.
-
note
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.
-
code
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.
-
Ejemplo
"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.
-
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"
}
]
-
amount
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.
-
Ejemplo
"tax_totals": [
{
"tax_id": "01",
"tax_amount": "10000",
"taxable_amount": "725000",
"percent": 5
}
]
-
tax_id
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
-
percent
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.
-
Ejemplo
"tax_totals": [
{
"tax_id": "01",
"tax_amount": "10000",
"taxable_amount": "725000",
"percent": 5
}
]
-
tax_id
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.
-
percent
Porcentaje. Este campo es obligatorio y debe ser un entero.