Dos Lineas, Una Tarifa de IVA, Varias Responsabilidades del Cliente
Método: POST
URL: http://coapi.test/api/ubl2.1/invoice
PRIMER ENVIO DE FACTURA
- Si se instalo un dominio se debe utilizar de la siguiente manera:
http://midominio.com/api/ubl2.1/invoice
-
Requiere un token de autorizacion el cual fue devuelto al realizar el Paso 1 - Config Company, si este token se extravio, se puede consultar en la tabla de la base de datos de la API en la tabla users, en el campo API_TOKEN.
-
En URL el ultimo parametro corresponde al id del set de pruebas que la dian entrego al momento de registrar el modo de operacion software propio.
.../ubl2.1/invoice/iddelsetdepruebasdeladian
- Este endpoint se puede utilizar de dos modos:
-
Asincrono: .../ubl2.1/invoice/iddelsetdepruebasdeladian
-
Sincrono: .../ubl2.1/invoice
-
El modo sincrono no afecta al set de pruebas, pero la respuesta de la DIAN incluye posibles errores de validacion y estado de la factura, valida o no valida.
-
El modo asincrono, afecta el set de pruebas y en la respuesta no se incluye el resultado de la factura, solo se entrega un ZIP_KEY el cual debe ser consultado mediante el endpoint:
.../ubl2.1/status/zip
de la seccion 03 - Consultas de estado para asi poder establecer si la factura fue valida o no y los errores de validacion.
Responsabilidades del cliente (type_liability_ids)
- En el objeto
customerse puede agregar el campo opcionaltype_liability_ids, un arreglo de ids para informar varias responsabilidades del cliente. - Cada id corresponde a un registro de la tabla
type_liabilitiesde la base de datos de la API. - Si solo se requiere informar una responsabilidad, se puede usar el campo
type_liability_id; si no se requiere informar ninguna, ambos campos se pueden omitir.
Autenticación
- Tipo: Bearer Token
- Header:
Authorization: Bearer {{token}}
Headers
| Key | Value |
|---|---|
Content-Type | application/json |
Accept | application/json |
Body
{
"number": 994500239, // Número consecutivo de la factura
"type_document_id": 1, // 1 = Factura electrónica
"date": "2025-07-22", // Fecha de emisión
"time": "04:08:12", // Hora de emisión
"resolution_number": "18760000001", // Número de resolución de la DIAN
"prefix": "SETP", // Prefijo autorizado
"customer": {
"identification_number": "900428042", // NIT del cliente
"name": "TAMPAC TECNOLOGÍA EN AUTOMATIZACIÓN SAS", // Razón social del cliente
"type_liability_ids": [14, 7] // para informar varias responsabilidades
},
"payment_form": {
"payment_form_id": 1, // 1 = Contado, 2 = Crédito
"payment_method_id": 30, // Método de pago, ej. 30 = Transferencia electrónica
"payment_due_date": "2025-07-22", // Fecha de vencimiento del pago
"duration_measure": "30" // Número de días de plazo para pagar
},
"legal_monetary_totals": {
"line_extension_amount": "2000.00", // Subtotal (sin IVA)
"tax_exclusive_amount": "2000.00", // Igual al subtotal si no hay cargos adicionales
"tax_inclusive_amount": "2380.00", // Total con IVA incluido
"payable_amount": "2380.00" // Valor total a pagar
},
"tax_totals": [
{
"tax_id": 1, // 1 = IVA
"tax_amount": "380.00", // Valor total del impuesto
"percent": "19", // Porcentaje aplicado
"taxable_amount": "2000.00" // Base gravable del impuesto
}
],
"invoice_lines": [
{
"unit_measure_id": 70, // Unidad de medida (ej. 70 = unidad)
"invoiced_quantity": "1", // Cantidad facturada
"line_extension_amount": "1000.00", // Subtotal de la línea (sin IVA)
"free_of_charge_indicator": false, // ¿Es gratuito? false = no
"description": "Producto de prueba 1", // Descripción del producto o servicio
"code": "PRUEBA1", // Código interno del producto
"type_item_identification_id": 4, // Tipo de identificación del ítem
"price_amount": "1000.00", // Precio unitario
"base_quantity": "1", // Cantidad base para el precio
"tax_totals": [
{
"tax_id": 1, // IVA
"tax_amount": "190.00", // Valor del IVA para esta línea
"taxable_amount": "1000.00", // Base gravable de esta línea
"percent": "19.00" // Porcentaje de IVA
}
]
},
{
"unit_measure_id": 70,
"invoiced_quantity": "1",
"line_extension_amount": "1000.00",
"free_of_charge_indicator": false,
"description": "Producto de prueba 2",
"code": "PRUEBA2",
"type_item_identification_id": 4,
"price_amount": "1000.00",
"base_quantity": "1",
"tax_totals": [
{
"tax_id": 1,
"tax_amount": "190.00",
"taxable_amount": "1000.00",
"percent": "19.00"
}
]
}
]
}
Ejemplo cURL
<?php
curl -X POST "http://apidian2024.oo/api/ubl2.1/invoice" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
--data-raw '{
"number": 994553119, // Número consecutivo de la factura
"type_document_id": 1, // 1 = Factura electrónica
"date": "2026-01-08", // Fecha de emisión
"time": "09:05:12", // Hora de emisión
"resolution_number": "18760000001", // Número de resolución de la DIAN
"prefix": "SETP", // Prefijo autorizado
"sendmail": true,
"customer": {
"identification_number": "89008004", // NIT del cliente
"name": "Jeremy Abel", // Razón social del cliente
"email": "jeremyabel710@gmail.com",
"type_liability_ids": [14, 7] // para informar varias responsabilidades
},
"payment_form": {
"payment_form_id": 2, // 1 = Contado, 2 = Crédito
"payment_method_id": 30, // Método de pago, ej. 30 = Transferencia electrónica
"payment_due_date": "2026-11-30", // Fecha de vencimiento del pago
"duration_measure": "4" // Número de días de plazo para pagar
},
"legal_monetary_totals": {
"line_extension_amount": "2000.00", // Subtotal (sin IVA)
"tax_exclusive_amount": "2000.00", // Igual al subtotal si no hay cargos adicionales
"tax_inclusive_amount": "2380.00", // Total con IVA incluido
"payable_amount": "2380.00" // Valor total a pagar
},
"tax_totals": [
{
"tax_id": 1, // 1 = IVA
"tax_amount": "380.00", // Valor total del impuesto
"percent": "19", // Porcentaje aplicado
"taxable_amount": "2000.00" // Base gravable del impuesto
}
],
"invoice_lines": [
{
"unit_measure_id": 70, // Unidad de medida (ej. 70 = unidad)
"invoiced_quantity": "1", // Cantidad facturada
"line_extension_amount": "1000.00", // Subtotal de la línea (sin IVA)
"free_of_charge_indicator": false, // ¿Es gratuito? false = no
"description": "Producto de prueba 1", // Descripción del producto o servicio
"code": "6455", // Código interno del producto
"type_item_identification_id": 4, // Tipo de identificación del ítem
"price_amount": "1000.00", // Precio unitario
"base_quantity": "1", // Cantidad base para el precio
"tax_totals": [
{
"tax_id": 1, // IVA
"tax_amount": "190.00", // Valor del IVA para esta línea
"taxable_amount": "1000.00", // Base gravable de esta línea
"percent": "19.00" // Porcentaje de IVA
}
]
},
{
"unit_measure_id": 70,
"invoiced_quantity": "1",
"line_extension_amount": "1000.00",
"free_of_charge_indicator": false,
"description": "Producto de prueba 2",
"code": "PRUEBA2",
"type_item_identification_id": 4,
"price_amount": "1000.00",
"base_quantity": "1",
"tax_totals": [
{
"tax_id": 1,
"tax_amount": "190.00",
"taxable_amount": "1000.00",
"percent": "19.00"
}
]
}
]
}'