Skip to main content

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:
  1. Asincrono: .../ubl2.1/invoice/iddelsetdepruebasdeladian

  2. 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 customer se puede agregar el campo opcional type_liability_ids, un arreglo de ids para informar varias responsabilidades del cliente.
  • Cada id corresponde a un registro de la tabla type_liabilities de 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

KeyValue
Content-Typeapplication/json
Acceptapplication/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"
}
]
}
]
}'

Probar endpoint

POST
Enviar Factura (Síncrono / Asíncrono con TestSetId)
BASE URL
Se guarda localmente en tu navegador.
BEARER TOKEN
Se guarda solo en esta sesión/pestaña.
PATH PARAMS
TestSetId (opcional)
URL FINAL
/api/ubl2.1/invoice
BODY JSON
RESPUESTA
Envía la solicitud para ver la respuesta aquí.