Skip to content

Guía de mapeo POS

Tienes un sistema POS o ERP con su propio modelo de datos. Emitia habla en términos DIAN. Esta guía es el diccionario entre los dos mundos.

Cada tabla muestra: campo en tu sistema → campo Emitia → código DIAN → ejemplo.


Campo Emitia: lines[].unit_code
Catálogo DIAN: Unidad de medida (UN/ECE Rec 20)

Tu campo POSCódigo EmitiaSignificado
Unidad / pieza94Unidad (más común para servicios y productos unitarios)
KilogramoKGMKilogramo
MetroMTRMetro lineal
LitroLTRLitro
HoraHURHora de servicio
DíaDAYDía
Número de artículosNARNúmero de artículos (para ítems contables)

Ejemplo en el request:

{
"lines": [
{
"description": "Servicio de consultoría",
"quantity": "1.00",
"unit_code": "94",
"unit_price": "100000.00"
}
]
}

Campo Emitia: payment_means.code
Catálogo DIAN: Medio de pago (UN/ECE 4461)

Tu campo POSCódigo EmitiaSignificado
Efectivo10Efectivo
Tarjeta crédito47Tarjeta de crédito
Tarjeta débito48Tarjeta de débito
Transferencia crédito30Transferencia bancaria (crédito)
Transferencia débito31Transferencia bancaria (débito)
Cheque20Cheque
Consignación bancaria42Consignación bancaria
Billetera digital / PSE71Billetera electrónica
Bono / voucher49Bono o voucher

Además del código, debes indicar el tipo de pago:

Tipo de pagoValorCuándo usar
Contado1Pago al momento de la venta
Crédito2Pago a plazo (requiere due_date)

Ejemplo:

{
"payment_means": {
"code": "47",
"type": "2",
"due_date": "2026-02-15"
}
}

Campo Emitia: identification.type (en el recurso customers)
Catálogo DIAN: Tipo de documento de identidad

Tipo de clienteCódigo EmitiaDocumento
Empresa colombiana31NIT (Número de Identificación Tributaria)
Persona natural13Cédula de ciudadanía
Extranjero residente22Cédula de extranjería
Extranjero no residente21Tarjeta de extranjería
Pasaporte41Pasaporte
Menor de edad12Tarjeta de identidad
Registro civil11Registro civil
Empresa extranjera50NIT de otro país

El tipo de organización (jurídica/natural) va aparte, en organization_type ("1" jurídica, "2" natural) — no es un campo type del cliente.

Ejemplo para empresa (NIT con dígito de verificación):

{
"identification": {
"type": "31",
"number": "900111222",
"check_digit": "1"
},
"legal_name": "Acme SAS",
"organization_type": "1"
}

Ejemplo para persona natural (cédula sin dígito de verificación):

{
"identification": {
"type": "13",
"number": "1020304050"
},
"legal_name": "Juan Pérez",
"organization_type": "2"
}

Campo Emitia: operation_type
Catálogo DIAN: Tipo de operación (CustomizationID en el UBL)

Tipo de venta en tu POSCódigo EmitiaSignificado DIAN
Venta estándar10Operación estándar (la más común)
Servicios AIU09Administración, Impuesto y Utilidad
Exportación11Venta a no residentes / exportación

La gran mayoría de facturas nacionales usan 10 (estándar).

Ejemplo:

{
"operation_type": "10"
}

Campo Emitia: lines[].taxes[].code
Catálogo DIAN: Tributos

Impuesto en tu POSCódigo EmitiaNombre completoTasa típica
IVA01Impuesto al Valor Agregado0%, 5%, 19%
INC04Impuesto Nacional al Consumo8%, 16%
ICA03Impuesto de Industria y ComercioVariable por municipio
IC02Impuesto al CarbonoVariable
Sin impuestoZZNo aplica

Ejemplo de línea con IVA al 19%:

{
"lines": [
{
"description": "Laptop Dell XPS",
"quantity": "1.00",
"unit_code": "94",
"unit_price": "3000000.00",
"taxes": [
{
"code": "01",
"rate": "19.00",
"base": "3000000.00",
"value": "570000.00"
}
]
}
]
}

Ejemplo de línea sin impuesto (exenta o excluida):

{
"taxes": [
{
"code": "ZZ",
"rate": "0.00",
"base": "0.00",
"value": "0.00"
}
]
}

Con los valores anteriores, una factura de venta estándar con IVA 19% a una empresa colombiana queda así:

{
"customer_id": "cust_01HX...",
"currency": "COP",
"operation_type": "10",
"payment_means": { "code": "10", "type": "1" },
"lines": [
{
"description": "Servicio de consultoría",
"quantity": "1.00",
"unit_code": "94",
"unit_price": "100000.00",
"line_extension_amount": "100000.00",
"taxes": [
{ "code": "01", "rate": "19.00", "base": "100000.00", "value": "19000.00" }
]
}
]
}

Total: 100.000 + 19.000 = 119.000 COP.


En vez de hardcodear los códigos en tu aplicación, puedes consultarlos en runtime:

Terminal window
# Medios de pago
GET /v1/catalogs/medios-pago
# Tipos de identificación
GET /v1/catalogs/tipo-identificacion
# Unidades de medida
GET /v1/catalogs/unidad-medida
# Tributos
GET /v1/catalogs/tributos
# Tipos de operación
GET /v1/catalogs/tipo-operacion

Todos los catálogos tienen caché agresiva (24h). Consulta la Referencia API interactiva para el schema completo de la respuesta.