10 - Estándar
Esta sección describe los campos que podría contener la factura.
Método: POST
Endpoint
https://api-sandbox.factus.com.co/v2/bills/validatehttps://api.factus.com.co/v2/bills/validateEncabezados de la Solicitud
Para realizar la solicitud es necesario incluir los siguientes encabezados:
Content-Type : application/json Indica que los datos se envían en formato JSON. |
Authorization Bearer token_de_acceso Token de autenticación necesario para acceder al recurso. Ver Cómo generar token |
Accept : application/json Indica que la respuesta debe estar en formato JSON. |
Nota:
Reemplaza token_de_acceso con el token proporcionado tras autenticarte.
Ver aquí la descripción de los campos.
| Parámetros Factura Estándar |
|---|
reference_code string Código único que sirve para identificar cada factura de manera unívoca en el sistema y garantizar que no haya duplicados. Esto nos ayuda a prevenir que se genere más de una factura con la misma información. |
document string default:01 opcional Código del tipo de documento. Tipos de documentos disponibles. |
numbering_range_id integer opcional ID del rango de numeración. Es obligatorio solo si tienes múltiples rangos activos. Si se omite, el sistema utilizará el único rango disponible por defecto. Rangos de numeración. |
operation_type string default:10 opcional Código del tipo de operación. Si el tipo de operación no se agrega, por defecto el API agrega el código 10 (estándar). Tipos de operación disponibles. |
send_email boolean default:true opcional Indica si el sistema debe enviar el correo electrónico al cliente. Útil cuando el envío del correo se gestiona de forma externa o personalizada por el integrador. Por defecto, este campo tiene un valor de true, lo que implica que el correo electrónico será enviado al cliente. Si se establece en false, el correo no será enviado. |
observation string opcional Agrega una observación a la factura. No debe tener más de 250 caracteres. |
prepayment_details array opcional Este es un array de objetos para los detalles de anticipos. Se debe enviar un objeto por cada anticipo realizado. |
prepayment_details.*.reference_code string Código de referencia del anticipo. |
prepayment_details.*.received_date string Fecha en que se recibió el anticipo en formato YYYY-MM-DD.
|
prepayment_details.*.amount string Monto del anticipo. |
prepayment_details.*.note string opcional Nota adicional sobre el anticipo. No debe exceder los 5000 caracteres. |
payment_details array Este es un array de objetos para los medios de pago. Se debe enviar un objeto por cada medio de pago utilizado para pagar la factura. |
payment_details.*.payment_form string Código de la forma de pago. Formas de pago disponibles |
payment_details.*.payment_method_code string Código del método de pago. Métodos de pago disponibles. |
payment_details.*.reference_code string opcional Código de referencia del pago. |
payment_details.*.amount string Monto pagado por ese medio y método de pago. |
payment_details.*.due_date string opcional Fecha de vencimiento de la factura en formato YYYY-MM-DD. Requerido solo cuando la forma de pago (payment_form)
contiene el valor de 2 (pago a crédito).
|
cash_rounding_amount string opcional Ajuste opcional que reconcilia la diferencia entre la suma de los montos en payment_details y el total de la factura, causada por las limitaciones de denominación de la moneda local. Acepta valores negativos (redondeo hacia abajo) o positivos (redondeo hacia arriba). El valor máximo permitido es ±500.00.
|
establishment object opcional Este es un objeto que contendrá la información sobre el establecimiento. Úsalo cuando manejes más de un establecimiento y necesites que los datos correspondientes se reflejen en la factura. Si envías el campo establishment los campos internos son obligatorios.
|
establishment.name string Nombre del establecimiento. |
establishment.address string Dirección del establecimiento. |
establishment.phone_number string Número telefónico del establecimiento. |
establishment.email string Correo electrónico del establecimiento. |
establishment.municipality_code string Código que corresponda al municipio donde se encuentra el establecimiento. Municipios disponibles. |
billing_period object opcional Este es un objeto que contendrá la información del periodo de facturación. Para utilizar en los servicios públicos, contratos de arrendamiento, matrículas en educación, etc. Si envías el campo billing_period los campos internos son
obligatorios.
|
billing_period.start_date string Fecha de inicio del periodo de facturación en formato YYYY-MM-DD.
|
billing_period.start_time string opcional Hora de inicio del periodo de facturación en formato HH:mm:ss.
|
billing_period.end_date string Fecha de fin del periodo de facturación en formato YYYY-MM-DD.
|
billing_period.end_time string opcional Hora de fin del periodo de facturación en formato HH:mm:ss.
|
order_reference object opcional Este es un objeto que contendrá la información que describe una orden de pedido. Si envías el campo order_reference
los campos internos son obligatorios.
|
order_reference.reference_code string Número del documento de la orden. |
order_reference.issue_date string opcional Fecha de emisión de la orden. |
related_documents.* array opcional Este es un array de objetos (documentos), debe haber un objeto por cada documento. Obligatorio cuando el campo document contenga el valor 03. Si
envías el campo related_documents los campos internos son obligatorios.
|
related_documents.*.code string Identificador del tipo de documento de referencia (corresponde a una codificación propia de la empresa). |
related_documents.*.issue_date string Fecha de emisión del documento referenciado en formato YYYY-MM-DD.
|
related_documents.*.number string Prefijo y número del documento referenciado. |
customer object Este es un objeto que contendrá la información del cliente de la factura. |
customer.identification_document_code string Código que corresponda al tipo de identificación. Tipos de documentos disponibles. |
customer.identification string Número de identificación del cliente. Si el numero de identificación corresponde a un NIT no se debe enviar el dígito de verificación ni el guion que lo separa, el dígito de verificación tiene un campo exclusivo para él, aquí se debe enviar únicamente el numero de identificación. |
customer.dv string opcional Dígito de verificación correspondiente al NIT del cliente. El dígito de verificación se envía únicamente para clientes que se identifican con NIT. Si el cliente se identifica con NIT y no se envía el dígito de verificación, el API lo calculará automáticamente. |
customer.legal_organization_code string Código que corresponda al tipo de organización. Tipos de organizaciones disponibles. |
customer.tribute_code string default:ZZ opcional Código del tributo. Tipos de tributos disponibles. |
customer.company string opcional Razón social. Es obligatorio cuando el campo customer.legal_organization_code es 1 (persona jurídica).
|
customer.trade_name string opcional Nombre comercial. |
customer.names string opcional Nombre del cliente. Es obligatorio cuando el campo customer.legal_organization_code es 2 (persona natural).
|
customer.address string opcional Dirección del cliente. |
customer.email string opcional Correo electrónico del cliente. |
customer.phone string opcional Número de teléfono del cliente. |
customer.municipality_code string opcional Código que corresponda al municipio donde vive el cliente. Se debe enviar el código del municipio únicamente si el municipio es de Colombia; si es extranjero, el valor del campo no aplica. Municipios disponibles. |
items array Este es un array de objetos (items) que corresponde a los productos o servicios de la factura, se debe enviar un objeto por cada producto o servicio. |
items.*.note string opcional Añade información adicional del producto o servicio. |
items.*.code_reference string Código de referencia del producto o servicio. |
created_time string opcional Fecha y hora de creación del documento soporte en formato `HH:mm:ss`. |
items.*.name string Nombre del producto o servicio. |
items.*.quantity string Cantidad del producto o servicio (máximo dos decimales). |
items.*.discount_rate string Porcentaje del descuento del producto o servicio (máximo dos decimales). |
items.*.price string Precio por unidad del producto o servicio sin impuestos incluidos ni descuentos, valor neto (máximo dos decimales). |
items.*.unit_measure_code string Código que corresponda a la unidad de medida del item. Unidades de medida disponibles |
items.*.standard_code string Código que corresponde al estándar que se adopta para los productos o servicios. Códigos de estándar disponibles. |
items.*.taxes array Este es un array de objetos para los impuestos. |
items.*.taxes.*.code string Código del impuesto aplicado al producto o servicio. Códigos de impuestos disponibles. |
items.*.taxes.*.rate string Porcentaje del impuesto aplicado al producto o servicio (máximo dos decimales). |
items.*.withholding_taxes array opcional Este es un array de objetos (autorretenciones) para informar las retenciones que se aplican al producto o servicio. No son retenciones que otra persona o empresa te hace a ti, sino retenciones que tú mismo te aplicas como contribuyente. Por cada retención que te apliques a ti mismo, debes enviar un objeto. |
items.*.withholding_taxes.*.code string Código de la retención aplicada al producto o servicio. Códigos retenciones disponibles. |
items.*.withholding_taxes.*.rate string Porcentaje de la retención aplicada al producto o servicio (máximo dos decimales). |
allowance_charges array opcional Este es un array de objetos que corresponden a los descuentos o recargos que se aplican a la factura; se debe enviar un objeto por cada descuento o recargo. |
allowance_charges.*.concept_type string Código del tipo de descuento o recargo. Para saber el código que corresponde, consulte la tabla. Códigos de conceptos disponibles. |
allowance_charges.*.is_surcharge boolean Indica si es un descuento o un recargo. El valor true corresponde a un recargo y false a un descuento.
|
allowance_charges.*.reason string Razón por la cual se está haciendo el descuento o recargo. |
allowance_charges.*.base_amount string Base sobre la cual se calcula el descuento o recargo (máximo dos decimales). |
allowance_charges.*.amount string Valor del descuento o recargo aplicado (máximo dos decimales). |
Ejemplo de Solicitud
Sección titulada «Ejemplo de Solicitud»{ "reference_code": "FACT-2026-0124", "document": "01", "numbering_range_id": 4, "operation_type": "10", "observation": "Observación de prueba", "payment_details": [ { "payment_form": "2", "payment_method_code": "10", "reference_code": "pago-001", "amount": "50000", "due_date": "2026-03-25" }, { "payment_form": "1", "payment_method_code": "42", "reference_code": "pago-001", "amount": "83300" } ], "cash_rounding_amount": "0.00", "prepayment_details": [ { "reference_code": "1", "received_date": "2025-08-01", "amount": "3300", "note": "texto libre para notas" } ], "customer": { "identification_document_code": "31", "identification": "123456789", "company": "Alan company name", "trade_name": "Alan trade name", "address": "calle 1 # 1-1", "email": "alan.company@email.com", "phone": "1234567890", "legal_organization_code": "1", "tribute_code": "ZZ", "municipality_code": "68679" }, "items": [ { "code_reference": "PROD-000A", "name": "Producto A", "quantity": "1.00", "discount_rate": "0.00", "price": "10000.00", "unit_measure_code": "94", "standard_code": "999", "taxes": [ { "code": "01", "rate": "19.00" } ] }, { "code_reference": "PROD-000B", "name": "Producto B", "quantity": "3.00", "discount_rate": "0.00", "price": "20000.00", "unit_measure_code": "94", "standard_code": "999", "taxes": [ { "code": "01", "rate": "19.00" } ] } ]}Response
Sección titulada «Response»{ "status": "Created", "message": "Documento con el código de referencia FACT-2026-0124 registrado y validado con éxito", "data": { "reference_code": "FACT-2026-0124", "number": "SETP990001103", "document_type": { "code": "01", "name": "Factura electrónica de Venta" }, "operation_type": { "code": "10", "name": "Estándar" }, "payment_form": { "code": "1", "name": "Pago de contado" }, "payment_method": { "code": "10", "name": "Efectivo" }, "order_reference": null, "billing_period": null, "send_email": false, "has_claim": false, "is_negotiable_instrument": false, "is_validated": true, "validated_at": "02-03-2026 11:12:48 AM", "errors": null, "observation": "Observacion de prueba", "payment_due_date": null, "created_at": "02-03-2026 11:12:47 AM", "numbering_range": { "prefix": "SETP", "from": 990000000, "to": 995000000, "resolution_number": "18760000001", "start_date": "19-01-2019", "end_date": "19-01-2030", "months": 132 }, "company": { "url_logo": "http://api.test/storage/images/logos/oCuCijLV5YQY6AGZjxFCafdWaWEgIBFBl7aWa3ok.png", "nit": "900825759", "dv": "7", "economic_activity": "6311", "establishment": { "name": "HALLTEC S.A.S.", "address": "Calle 11 # 8 - 84", "phone_number": "3161331234", "email": "email@gmail.com", "municipality": { "code": "68679", "name": "San Gil", "department": { "code": "68", "name": "Santander" } } } }, "customer": { "identification_document": { "code": "31", "name": "NIT" }, "identification": "123456789", "dv": "6", "graphic_representation_name": "Alan trade name", "trade_name": "Alan trade name", "company": "Alan company name", "names": null, "address": "calle 1 # 1-1", "email": "alan.company@email.com", "phone": "1234567890", "legal_organization": { "code": "1", "name": "Persona Jurídica" }, "tribute": { "code": "ZZ", "name": "No aplica" }, "municipality": { "code": "68679", "name": "San Gil", "department": { "code": "68", "name": "Santander" } } }, "items": [ { "scheme_id": null, "note": "", "mandate": null, "additional_properties": [], "code_reference": "PROD-000A", "name": "Producto A", "quantity": "1.00", "unit_measure": { "code": "94", "name": "unidad" }, "standard_code": { "code": "999", "name": "Estándar de adopción del contribuyente" }, "discount_rate": "0.00", "discount": "0.00", "gross_value": "10000.00", "taxes": [ { "tribute": { "code": "01", "name": "IVA" }, "is_excluded": false, "rates": [ { "taxable_amount": "10000.00", "tax_amount": "1900.00", "rate": "19.00" } ] } ], "withholding_taxes": [], "price": "10000.00", "total": "11900.00" }, { "scheme_id": null, "note": "", "mandate": null, "additional_properties": [], "code_reference": "PROD-000B", "name": "Producto B", "quantity": "3.00", "unit_measure": { "code": "94", "name": "unidad" }, "standard_code": { "code": "999", "name": "Estándar de adopción del contribuyente" }, "discount_rate": "0.00", "discount": "0.00", "gross_value": "20000.00", "taxes": [ { "tribute": { "code": "01", "name": "IVA" }, "is_excluded": false, "rates": [ { "taxable_amount": "60000.00", "tax_amount": "11400.00", "rate": "19.00" } ] } ], "withholding_taxes": [], "price": "20000.00", "total": "71400.00" } ], "allowance_charges": [], "taxes": [ { "tribute": { "code": "01", "name": "IVA" }, "is_excluded": false, "rates": [ { "taxable_amount": "70000.00", "tax_amount": "13300.00", "rate": "19.00" } ] } ], "withholding_taxes": [], "totals": { "gross_value": "70000.00", "taxable_amount": "70000.00", "tax_amount": "13300.00", "discount_amount": "0.00", "surcharge_amount": "0.00", "total": "83300.00" }, "related_documents": [], "related_notes": { "credit_notes": [], "debit_notes": [] }, "cufe": "789b4ee4489b4d09f73913ebcabcc329ebb419a9f3a58a55354bd52427168a856c023e2d24ceafad1cc9ace9abf09e49", "links": { "qr": "https://catalogo-vpfe-hab.dian.gov.co/document/searchqr?documentkey=789b4ee4489b4d09f73913ebcabcc329ebb419a9f3a58a55354bd52427168a856c023e2d24ceafad1cc9ace9abf09e49", "public_url": "http://app.test/documents/bills/1ea2d985975ee13ef1de0b9fe2915b5a5d9df6c9e004757f9ed2a9864b92d771" } }}