La función encargada de construir y enviar los documentos electrónicos al proveedor tecnológico.
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por el proveedor tecnológico
tokenPassword
FacturaGeneral
factura
Ver el detalle del Objeto Factura más abajo
String
adjuntos
Posibles valores:
“0” No se admiten adjuntos. Se genera XML y representación Gráfica estándar por The Factory HKA
“1” Admite archivos adjuntos. Se genera XML y representación Gráfica estándar por The Factory HKA
“10” No se admiten adjuntos. Se genera sólo XML sin representación Gráfica estándar por The Factory HKA
“11” Admite archivos adjuntos. Se genera sólo XML sin representación gráfica estándar por The Factory HKA
@IMPORTANTE: En caso de enviarse en el parámetro adjuntos el valor “1” u “11”, no se enviará correo electrónico hasta que se consuma el método CargarAdjuntos (Servicio Adjuntos Web SOAP). Para documentos que admiten adjuntos el campo Destinatario.email del cliente es requerido y el campo notificar debe estar en “SI”.
ADVERTENCIA: Si se utiliza las opciones ‘10’ u ‘11’ en el parámetro adjuntos, nuestra plataforma no generará representación gráfica (PDF) estándar, por lo tanto no se aloja PDF en la misma y no se podrá visualizar la representación gráfica desde el portal web, en el correo de notificación hacia el adquiriente (sección visualizar documento), tampoco realizar la descarga a través del método DescargaPDF del Servicio Emisión Web SOAP o reenviar la representación gráfica a través del método EnvioCorreo, ya que se está asumiendo que la misma ha sido generada de manera local por el software de facturación (ERP).
A continuación, se expone el diagrama del objeto factura para el modelo de facturación con validación previa, donde se pueden apreciar los cambios en la estructura del mismo con respecto al objeto utilizado en el modelo con validación posterior:
En Azul clases/atributos nuevos que no estaban presentes en el modelo de validación posterior.
En Amarillo clases/atributos existentes en el modelo de validación posterior que sufrieron cambios en validación previa.
En Naranja clases/atributos existentes en el modelo de validación posterior que están en desuso (eliminados) en validación previa.
A continuación se describen con mayor detalle el objeto factura para el modelo de facturación con validación previa:
Diagrama Class.FacturaGeneral con Class.Anticipos, Class.Autorizado y Class.CargosDescuentosDiagrama Class.FacturaGeneral con Class.Anticipos, Class.Autorizado y Class.CargosDescuentos
Diagrama Class.FacturaGeneral con Class.Cliente
Diagrama Class.FacturaGeneral con Class.Cliente
Diagrama Class.FacturaGeneral con Class.CondicionPago
Diagrama Class.FacturaGeneral con Class.CondicionPago
Diagrama Class.FacturaGeneral con Class.FacturaDetalle
Diagrama Class.FacturaGeneral con Class.FacturaDetalle
Diagrama Class.FacturaGeneral con Class.DocumentoReferenciado
Diagrama Class.FacturaGeneral con Class.DocumentoReferenciado
Diagrama Class.FacturaGeneral Class.EntregaMercancia
Diagrama Class.FacturaGeneral Class.EntregaMercancia
Diagrama Class.FacturaGeneral con Class.Extras. Class.FacturaImpuestos, Class.ImpuestosTotales, Class.MediosDePago, Class.OrdenDeCompra y Array - informacionAdicional
Diagrama Class.FacturaGeneral con Class.Extras. Class.FacturaImpuestos, Class.ImpuestosTotales, Class.MediosDePago, Class.OrdenDeCompra y Array - informacionAdicional
Diagrama Class.FacturaGeneral con Class.TasaDeCambio, Class.TasaDeCambioAlternativa y Class.TerminosEntrega
Diagrama Class.FacturaGeneral con Class.TasaDeCambio, Class.TasaDeCambioAlternativa y Class.TerminosEntrega
Informaciones que describen un documento referenciado
Obligatorio en facturas tipoDocumento contingencia (AdditionalDocumentReference), en facturas que afecten una nota (BillingReference), en Notas de Crédito y Débito (DiscrepancyResponse y BillingReference)
Fecha y hora de emisión del documento, en formato: YYYY-MM-DD HH:MM:SS
Notificación Si la fecha de emisión es anterior a cinco (5) días de la fecha calendario
Rechazo Si la fecha de emisión es posterior a diez días calendario
PATH: /root/cbc:IssueDate, root/cbc:IssueTime
fechaFinPeriodoFacturacion
String
AN|19
NO
Fecha/Hora de fin del periodo de facturación (Intervalo de fechas a las que referencia la factura por ejemplo en servicios públicos), en formato: YYYY-MM-DD HH:MM:SS
Consecutivo desde el que comienza la serie para el documento a emitir, siempre debe colocarse el prefijo (con guión) independientemente de la modalidad de secuencial.
Ejemplo: ‘PREF-1123456’
Rechazo Si el valor del campo desde (Inicio del rango) supera el valor 2.147.483.647.
Valor a pagar del documento: Valor total de ítems (incluyendo cargos y descuentos a nivel de ítems) + valor de tributos + valor de cargos – valor de descuentos – valor anticipos
Rechazo Si totalMonto no es consistente con el valor total de ítems + valor de tributos + valor de cargos – valor de descuentos – valor anticipos + redondeo aplicado
PATH: /root/LegalMonetaryTotal/cbc:PayableAmount
totalProductos
String
AN|..5
SI
Número o cantidad de líneas de productos (renglones) presentes en el documento
Rechazo Si el valor de totalProductos es diferente al número de ocurrencias de rans en el arreglo detalleDeFactura
PATH: /root/cbc:LineCountNumeric
totalSinImpuestos
String
Ent: N|..15
Dec: N|0..6
SI
Total Valor Bruto antes de tributos: Suma de los valores brutos de las líneas de la factura
Rechazo Si totalSinImpuestos no corresponde a la suma de los atributos precioTotalSinImpuestos en el arreglo detalleDeFactura
Por ejemplo, si el artículo son tres “six pack”, la cantidad a reportar en cantidadPorEmpaque es 6, mientras la cantidad a reportar en cantidadReal es 3, y el total de latas que se está describiendo son 18
PATH: ..cac:Item/cbc:PackSizeNumeric
cantidadReal
String
N|..6
SI
Cantidad real sobre la cual el precio aplica
PATH: .. /cac:Price/cbc:BaseQuantity
cantidadRealUnidadMedida
String
AN|..6
SI
Unidad de la cantidad sobre la cual el precio aplica
Notificación Si el valor del atributo no se encuentra en la Tabla 6
(Se puede utilizar el código estandár “WSD”, unidad “94” o Acuerdo Mutuo “ZZ” para NO reclasificar los productos)
PATH: .. /cac:Price/cbc:BaseQuantity/@unitCode
cantidadUnidades
String
N|..6
SI
Cantidad de unidades del producto/servicio facturado
PATH: .. /cbc:InvoicedQuantity
cargosDescuentos
Array <CargosDescuentos>
-
C/C
Información de cargos y descuentos
Obligatorio Este arreglo 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 Documento Soporte en adquisiciones a No Obligados a Facturar Reportar el Servicio recibido.
PATH: ../Item/cbc:Description[1]
descripcion2
String
AN|..300
C/C
Descripción del producto o servicio
Para Documento Soporte en adquisiciones a No Obligados a Facturar se Reporta la fecha de compra en un formato año-mes-día.
PATH: ../Item/cbc:Description[2]
descripcion3
String
AN|..300
C/C
Para Documento Soporte en adquisiciones a No Obligados a Facturar se Reporta (1) Si es por operación (2) Si es un acumulado semanal.
PATH: ../Item/cbc:Description[3]
descripcionTecnica
String
AN|..300
NO
Datos técnicos asociados al producto o servicio
PATH: .. /cac:Item/cbc:AdditionalInformation
documentosReferenciados
Array <DocumentoReferenciado>
-
NO
Informaciones que describen un documento referenciado
Obligatorio En facturas tipoDocumento contingencia (AdditionalDocumentReference), en facturas que afecten una nota (BillingReference), en Notas de Crédito y Débito (DiscrepancyResponse)
Rechazo Si existe más de un elemento con el mismo valor en el atributo FacturaImpuestos.codigoTOTALImp
Este grupo NO debe ser informado para ítems excluidos de acuerdo a lo establecido en el Estatuto Tributario.
Adicionalmente, NO debe ser informado para facturas del régimen simple grupo I, ni para ítems cuyo concepto en contratos de AIU no haga parte de la base gravable.
A nivel de ítem solo aplica para tributos que deban informarse a nivel de ítem, por ejemplo: IVA, INC, IC, Impuesto Nacional a los Combustibles, entre otros
Este grupo NO debe ser informado para ítems excluidos de acuerdo a lo establecido en el Estatuto Tributario.
Rechazo Si el valor del valor total del impuesto indicado es diferente a la sumatoria de lo reportado en FacturaImpuestos. valorTOTALImp.
A nivel de ítem solo aplica para tributos que deban informase a nivel de ítem, por ejemplo, IVA, INC, IC, Impuesto Nacional a los Combustibles, entre otros
Texto libre para añadir información adicional al artículo
Obligatorio Informar para el caso de facturas por contratos de servicio tipo AIU. Para el ítem Adminsitración. En este caso la nota debe empezar por el texto: “Contrato de servicios AIU por concepto de:” El contribuyente debe incluir el objeto del contrato facturado
PATH: ../cbc:Note
precioReferencia
String
Ent: N|..15
Dec: N|0..6
C/C
Valor del artículo o servicio.
Corresponde al valor del precio referencia del ítem que se da como muestra o regalo sin valor comercial
Obligatorio Para muestras comerciales
Rechazo Si se informa el atributo precioReferencia entonces el valor de precioTotalSinImpuestos debe ser (0.00), ya que se trata de muestra o regalo comercial
Rechazo Si se informa el atributo precioTotalSinImpuestos en 0.00 entonces el valor de precioReferencia debe ser informado ya que se trata de muestra o regalo comercial
PATH: ../cbc:LineExtensionAmount
precioVentaUnitario
String
Ent: N|..15
Dec: N|0..6
SI
Precio Unitario del porducto/servicio
PATH: ../Price/cbc:PriceAmount
secuencia
String
AN|..4
SI
Indicador de orden de secuencia (número de línea)
Notificación Si contiene un valor ya utilizado en el atributo secuencia en otro grupo de este archivo
Notificación Si los números utilizados en los diferentes grupos no son consecutivos, empezando en “1”
PATH: ../cbc:ID
seriales
String
AN|..500
NO
Seriales del producto (separador por coma), Ej: ABC123,ABC456
PATH: ../cac:Item/cac:ItemInstance/cbc:SerialID
subCodigoFabricante
String
AN|..50
NO
Código del fabricante correspondiente a una sub-especificación del artículo
Código de Unidad de medida del producto/servicio facturado
Notificación Si el valor del atributo no se encuentra en la Tabla 6
(Se puede utilizar el código estandár “WSD”, unidad “94” o Acuerdo Mutuo “ZZ” para NO reclasificar los productos)
PATH: ../cbc:InvoicedQuantity@unitCode
Class.Direccion
Atributo
Tipo Dato
Formato
Requerido
Descripción
aCuidadoDe
String
AN|..50
NO
Cuidado de
PATH: ../cac:Address/cbc:MarkCare
aLaAtenciónDe
String
AN|..50
NO
A la atención de
PATH: ../cac:Address/cbc:MarkAttention
bloque
String
AN|..50
NO
Nombre del bloque
PATH: ../cac:Address/cbc:BlockName
buzon
String
AN|..50
NO
Buzón postal
PATH: ../cac:Address/cbc:Postbox
calle
String
AN|..50
NO
Nombre de la calle
PATH: ../cac:Address/cbc:StreetName
calleAdicional
String
AN|..50
NO
Nombre Adicional para especificar mejor el nombre de la calle
PATH: ../cac:Address/cbc:AdditionalStreetName
ciudad
String
AN|…50
SI
Ciudad
Rechazo Si país es “CO” y el contenido de este atributo no corresponde a uno de los valores de la columna ‘Nombre’ de la Tabla 19 (columna ‘Nombre : : : : Municipio’ del numeral 6.4.3 del Anexo Técnico)
PATH: ../cac:Address/cbc:CityName
codigoDepartamento
String
AN|…5
SI
Código del departamento
Si pais es “CO”, codigoDepartamento debe corresponder a uno de los valores de la columna Código de la Tabla 16
Obligatorio para Emisores y Adquirentes Responsables
PATH: ../cac:Address/cbc:CountrySubentityCode
correccionHusoHorario
String
AN|6
NO
Corrección del uso horario correspondiente
PATH: ../cac:Address/cbc:TimezoneOffset
departamento
String
AN|…50
SI
Nombre del departamento
Rechazo Si el código del campo pais es “CO” y el contenido de este atributo no corresponde a uno de los valores de la columna Nombre de la Tabla 16
PATH: ../cac:Address/cbc:CountrySubentity
departamentoOrg
String
AN|..50
NO
Un departamento direccionable de una organización
PATH: ../cac:Address/cbc:Department
direccion
String
AN|…100
SI
Dirección del cliente, sin indicar ciudad ni departamento
PATH: ../cac:Address/cac:AddressLine/cbc:Line
distrito
String
AN|..50
NO
Distrito
PATH: /cac:Address/cbc:District
extras
Array <Extensible>
-
NO
Campos o información opcional para el modelo de negocio del emisor.
Notificación Si el contenido de este elemento no corresponde a un valor correspondiente de la Tabla 20
Notificación Si el valor del atributo codigoDepartamento es diferente a los 2 primeros dígitos del código postal.
PATH: ../cac:Address/cbc:PostalZone
Class.DocumentoReferencia
Atributo
Tipo Dato
Formato
Requerido
Descripción
codigoEstatusDocumento
String
-
C/C
Código o motivo del Documento
Obligatorio Cuando codigoInterno sea ‘4’
Rechazo Si el contenido de este atributo no corresponde a algún de los valores de Tabla 9 y Tabla 10
PATH: ../cac:DiscrepancyResponse/cbc:ResponseCode
codigoInterno
String
N|1
SI
Este campo decide si en que nodo XML se va a enviar la información de DocumentoReferenciado, posibles valores:
AdditionalDocumentReference (FE de contingencia y para acciones comerciales y mercantiles)
DespatchDocumentReference (Doc. De despacho)
ReceiptDocumentReference (Doc. De recepción)
DiscrepancyResponse (N.C y N.D)
BillingReference (Facturas por corrección, N.C y N.D)
OBLIGATORIOPara Documento soporte este campo debe ser 5.
cufeDocReferenciado
String
AN|..90
C/C
CUFE o CUDE del documento referenciado
Obligatorio Cuando codigoInterno sea ‘5’
Obligatorio En facturas, se debe diligenciar únicamente cuando la factura electrónica se origina a partir de la corrección o ajuste que se da mediante un NC o ND
Obligatorio En N.C y N.D, son las referencias a facturas electrónicas afectadas por la Nota. Solamente puede reportar facturas electrónicas de un mismo adquiriente
Objeto 2: si el tipoOperacion es igual a 20 (para NC) ó 30 (para ND) y codigoInterno = ‘5’, se validan los campos: cufeDocReferenciado, fecha, y numeroDocumento.
Al transmitir una Factura de Contingencia, se debe enviar un arreglo de tipo DocumentosReferenciados indicando los campos: codigoInterno = ‘1’, numeroDocumento, fecha, tipoDocumentoCodigo (correspondiente a Factura de Contingencia).
Para referenciar Documentos de Despacho (codigoInterno = ’2’) o Documentos de Recepción (codigoInterno = ‘3’) se validan los campos: numeroDocumento y fecha.
|}
Class.DocumentoReferenciado
Atributo
Tipo Dato
Formato
Requerido
Descripción
codigoEstatusDocumento
String
-
C/C
Código o motivo del Documento
Obligatorio Cuando codigoInterno sea ‘4’
Rechazo Si el contenido de este atributo no corresponde a algún de los valores de Tabla 9 y Tabla 10
PATH: ../cac:DiscrepancyResponse/cbc:ResponseCode
codigoInterno
String
N|1
SI
Este campo decide si en que nodo XML se va a enviar la información de DocumentoReferenciado, posibles valores:
AdditionalDocumentReference (FE de contingencia y para acciones comerciales y mercantiles)
DespatchDocumentReference (Doc. De despacho)
ReceiptDocumentReference (Doc. De recepción)
DiscrepancyResponse (N.C y N.D)
BillingReference (Facturas por corrección, N.C y N.D)
OBLIGATORIOPara Documento soporte este campo debe ser 5.
cufeDocReferenciado
String
AN|..90
C/C
CUFE o CUDE del documento referenciado
Obligatorio Cuando codigoInterno sea ‘5’
Obligatorio En facturas, se debe diligenciar únicamente cuando la factura ransferênc se origina a partir de la corrección o ajuste que se da mediante un NC o ND
Obligatorio En N.C y N.D, son las referencias a facturas electrónicas afectadas por la Nota.
Solamente puede reportar facturas electrónicas de un mismo adquiriente
@IMPORTANTE:# Para referenciar facturas de venta al emitir una NC o ND, se deben enviar dos objetos de tipo DocumentosReferenciados indicando lo siguiente:
Objeto 2: si el tipoOperacion es igual a 20 (para NC) ó 30 (para ND) y codigoInterno = ‘5’, se validan los campos: cufeDocReferenciado, fecha, y numeroDocumento.
Al transmitir una Factura de Contingencia, se debe enviar un arreglo de tipo DocumentosReferenciados indicando los campos: codigoInterno = ‘1’, numeroDocumento, fecha, tipoDocumentoCodigo (correspondiente a Factura de Contingencia).
Para referenciar Documentos de Despacho (codigoInterno = ’2’) o Documentos de Recepción (codigoInterno = ‘3’) se validan los campos: numeroDocumento y fecha.
Obligatorio En el caso de que el tributo es un valor fijo por unidad tributada, por ejemplo el impuesto de consumo a las bolsas o los impuestos a los combustibles
Rechazo Si elemento valorTributoUnidad es informado y unidadMedidaTributo no es informado
Valor del tributo. Producto del porcentaje aplicado sobre la base imponible
Rechazo Para tributos cuya tarifa se enuncia en porcentajes, si valorTOTALImp es diferente a baseImponibleTOTALImp * porcentajeTOTALImp
Rechazo Para tributos cuya tarifa se enuncia en valores nominales (ejempo bolsas plásticas), si valorTOTALImp es diferente a valorTributoUnidad * cantidadUnidades
PATH: ../cac:TaxTotal/TaxSubtotal/cbc:TaxAmount
valorTributoUnidad
String
Ent: N|..15
Dec: N|0..6
C/C
Es el valor nominal del tributo por unidad
Obligatorio En el caso de que el tributo es un valor fijo por unidad tributada, por ejemplo el impuesto de consumo a las bolsas o los impuestos a los combustibles
Rechazo si el elemento unidadMedidaTributo NO es informado.
@IMPORTANTE: Para el caso del ICA y RETEICA en el cual el valor del porcentaje se maneja en base a mil, se debe informar el valor de dicho porcentaje en base a cien, es decir, si se desea informar un porcentaje de 11.04%mil para alguno de estos tributos, se debe indicar en el campo porcentajeTOTALImp como 1.104.
Class.ImpuestosTotales
Atributo
Tipo Dato
Formato
Requerido
Descripción
codigoTOTALImp
String
AN|2
SI
Identificador del tributo
Rechazo Si el contenido de este elemento no corresponde a uno de los códigos de la Tabla 11
PATH: Por Definir
extras
Array <Extensible>
-
NO
Campos o información opcional para el modelo de negocio del emisor.
Fecha de la Orden, en formato: YYYY-MM-DD HH:MM:SS
PATH: ../cbc:IssueDate
numeroOrden
String
AN|..20
SI
Número de la Orden de Compra
Obligatorio Para enviar la Orden de Compra
PATH: ../cbc:ID
numeroPedido
String
AN|..20
C/C
Número del Pedido
Obligatorio Para enviar el Pedido
PATH: ../cbc:SalesOrderID
tipoCUFE
String
AN|..20
NO
Identificador del tipo de CUFE
PATH: ../cbc:UUID@schemeName
tipoOrden
String
AN|..20
NO
Tipo de Orden
PATH: ../cbc:OrderTypeCode
uuid
String
AN|..90
NO
UUID de algún documento referenciado
PATH: ../cbc:UUID
NOTA: Al tratarse de una orden de entrega se debe informar la clase OrdenDeCompra, si es necesario indicar más de una orden se debe informar a través de la clase DocumentoReferenciado con codigoInterno =’1’, esto con el fin de enviar la información referente a las mismas en el grupo AdditionalDocumentReference.
Class.sectorSalud
Atributo
Tipo Dato
Formato
Requerido
Descripción
Beneficiario
Beneficiario
-
C/C
Datos complementarios del beneficiario del servicio de salud para escenarios de recaudo.
Importante: En el caso del campo rangoNumeracion, éste valor siempre debe tener el siguiente formato (Pefijo-campoDesde), es decir, dicho campo es independiente de la modalidad de secuencial configurado en el portal (manual con prefijo o manual sin prefijo).
En el caso del campo consecutivoDocumento, este campo si depende de la modalidad de secuenciales configurados en el portal web.
Si la modalidad asignada es “manual sin prefijo”, los valores para los campos rangoNumeracion y consecutivoDocumento’ deben ser por ejemplo:
Fecha en la que se fijó la tasa de cambio, en formato: YYYY-MM-DD
PATH: ../cbc:Date
indicadorDeTasa
String
-
NO
Indicador de Tasa de Cambio
PATH: ../cbc:ExchangeMarketID
monedaDestino
String
AN|3
SI
Código de moneda destino del documento.
Rechazo Si el contenido de este elemento no es ‘COP’
PATH: ../cbc:TargetCurrencyCode
monedaOrigen
String
AN|3
SI
Código de moneda base del documento
Rechazo Si el contenido de este elemento no corresponde al estándar ISO-4217
PATH: ../cbc:SourceCurrencyCode
operadorCalculo
String
-
NO
Operador de Calculo
PATH: ../cbc: MathematicOperatorCode
tasaDeCambio
String
Ent: N|..15
Dec: N|0..6
SI
Valor de la tasa de cambio entre las divisas. Se debe diligenciar con el valor de la tasa de cambio.
Por ejemplo para USD-COP puede ser el valor de la TRM o tasa acordada entre las partes (Valor reportado * Valor de tasa de cambio = Valor reportado en divisa informado en monedaDestino)
PATH: ../cbc:CalculationRate
Class.TasaDeCambioAlternativa
Atributo
Tipo Dato
Formato
Requerido
Descripción
baseMonedaDestino
String
Ent: N|..15
Dec: N|0..6
SI
Base monetaria para la conversión.
Debe ser 1.00
Rechazo Si trae valor diferente a 1.00
PATH: ../cbc:TargetCurrencyBaseRate
baseMonedaOrigen
String
Ent: N|..15
Dec: N|0..6
SI
Base monetaria de la divisa extranjera para el cambio.
Debe ser 1.00
Rechazo Si trae valor diferente a 1.00
PATH: ../cbc:SourceCurrencyBaseRate
extras
Array <Extensible>
-
NO
Campos o información opcional para el modelo de negocio del emisor
Fecha en la que se fijó la tasa de cambio, en formato: YYYY-MM-DD
PATH: ../cbc:Date
indicadorDeTasa
String
-
NO
Indicador de Tasa de Cambio
PATH: ../cbc:ExchangeMarketID
monedaDestino
String
AN|3
SI
Código de moneda destino del documento.
Rechazo Si el contenido de este elemento no es ‘COP’
PATH: ../cbc:TargetCurrencyCode
monedaOrigen
String
AN|3
SI
Código de moneda base del documento
Rechazo Si el contenido de este elemento no corresponde al estándar ISO-4217
PATH: ../cbc:SourceCurrencyCode
operadorCalculo
String
-
NO
Operador de Calculo
PATH: ../cbc: MathematicOperatorCode
tasaDeCambio
String
Ent: N|..15
Dec: N|0..6
SI
Valor de la tasa de cambio entre las divisas. Se debe diligenciar con el valor de la tasa de cambio.
Por ejemplo para USD-COP puede ser el valor de la TRM o tasa acordada entre las partes (Valor reportado * Valor de tasa de cambio = Valor reportado en divisa informado en monedaDestino)
PATH: ../cbc:CalculationRate
Class.TerminosEntrega
Atributo
Tipo Dato
Formato
Requerido
Descripción
cargosDescuentos
Array <CargosDescuentos>
-
NO
Informaciones relacionadas con un cargo o un descuento
Indica el Estado de la operación retornado por el servicio, (Por definir catálogo)
String
consecutivoDocumento
Prefijo y Consecutivo del Documento concatenado sin separadores. Para el ejemplo anterior corresponde a: “PRUE980338337”
String
cufe
“Código Único de Factura Electrónica” correspondiente al documento consultado.
Bool
esValidoDian
“true” Si es válido
String
fechaAceptacionDIAN
Día y Hora en la que la DIAN aceptó el documento electrónico, en formato AAAA-MM-DD HH:MM:SS
String
fechaRespuesta
Día y Hora en la que se generó el documento electrónico, en formato AAAA-MM-DD HH:MM:SS
String
hash
Código de detección de errores
String
mensaje
Este mensaje está asociado al código de respuesta, útil para identificación de errores
Array
mensajesValidacion
Mensajes de validación en caso de notificación o rechazo
String
nombre
Nombre definido por la DIAN
String
qr
Concatenación cadena del código QR (elemento de control)
Array
reglasNotificacionDIAN
Reglas de validación en caso de notificación
Array
reglasValidacionDIAN
Reglas de validación en caso de rechazo
String
resultado
Resultado del consumo del método: Procesado” ó “Error”
String
tipoCufe
Algoritmo del tipo de CUFE. “CUFE-SHA384” ó “CUDE-SHA384”
String
xml
Archivo XML (tipo AttachedDocument) codificado en Base64
Una vez realizado el envío exitoso de la factura electrónica (código ‘200’ o ‘201’ en la respuesta), se procede a enviar los archivos adjuntos (a través del método CargarAdjuntos) consumiendo el Servicio Adjuntos Web SOAP, en el escenario de que el parámetro adjuntos se haya asignado en “1” u “11”, en caso contrario el Servicio Adjuntos Web SOAP retornará un error indicando que el documento NO admite adjuntos.
Método EstadoDocumento
Permite consultar el estado del documento indicado ante el Adquiriente, ante la DIAN, el tipo de entrega y si la misma fue exitosa, la lista de eventos (ApplicationResponse) asociados y otros parámetros de interés que puedes ser útil en los procesos de control del software de facturación (ERP) o para el modelo de negocio del cliente emisor.
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
Documento
Prefijo y Consecutivo del Documento electrónico concatenado sin separadores. Ejemplo “PRUE980338212
RESPONSE
Parámetros a Recibir
Tipo
Identificador
Descripción
Bool
aceptacionFisica
Indica si el documento posee aceptación física (entregado físicamente): “true” o “false”
String
acuseComentario
Comentario informado por el adquiriente al realizar el acuse
String
acuseEstatus
0: Acuse no realizado ; 1: Acuse realizado
String
acuseResponsable
Email del responsable de realizar el acuse
String
acuseRespuesta
0: Respuesta no enviada ; 1: Respuesta enviada
String
ambiente
Tipo de ambiente de generación del documento:
“1: ambienteDeProducción”
“2: ambienteDePruebas”
String
cadenaCodigoQR
Concatenación cadena del código QR (elemento de control)
String
cadenaCufe
Concatenación cadena del código CUFE previo al cálculo por el algoritmo correspondiente del servicio
int
Codigo
Indica el estado de la operación retornado por el servicio
String
consecutivo
Consecutivo del Documento TFHKA/DIAN
String
cufe
“Código Único de Factura Electrónica” correspondiente al documento consultado, calculado por el algoritmo correspondiente del servicio
String
descripcionDocumento
Identificador del tipo de documento de referencia,
Ejemplo: “Factura de Venta Nacional”
String
descripcionEstatusDocumento
Descripción correspondiente al estatusDocumento ante la DIAN: “Procesado Correctamente”
String
entregaMetodoDIAN
Indica el método de Entrega a la DIAN
(Síncrono ó Asyncrono), (Individual ó Lote)
Bool
esValidoDIAN
“true” Si es válido
“false” Si no es válido
String
estatusDocumento
Código obtenido en la respuesta correspondiente al estado del documento ante la DIAN (Por definir catálogo)
Array <Evento>
eventos
Lista de eventos del Documento Electrónico
String
fechaAceptacionDIAN
Día y Hora en la que la DIAN aceptó el documento electrónico, en formato AAAA-MM-DD HH:MM:SS
String
fechaDocumento
Fecha en la que se generó el documento, en formato: AAAA-MM-DD
Array <HistorialDeEntregas>
historialDeEntregas
Histórico de las entregas del documento
String
mensaje
Este mensaje está asociado al codigo, útil para identificación de errores
String
mensajeDocumento
Entrega una descripción del error de cada una de las validaciones iniciales. Si no hay errores no entrega descripción
Bool
poseeAdjuntos
Indica si el documento posee adjuntos:
“true” o “false”
Bool
poseeRepresentacionGrafica
Indica si el documento posee representación gráfica:
Este elemento corresponde al TrackId del documento procesado
Donde Class.Evento contiene la siguiente información:
Tipo
Identificador
Descripción
String
ambienteDIAN
Ambiente de generación en la DIAN:
“1:ambienteDeProducción”
“2:ambienteDePruebas”
String
codigo
Código el documento del Application Response (evento)
String
comentario
Comentario del evento
String
cufe
CUFE del documento electronico
String
descripcionEvento
Descripción de uso/origen del evento
String
emisorNumeroDocumento
Número de Identificación del Emisor
String
emisorNumeroDocumentoDV
Dígito Verificador del Número de Documento del Emisor
String
emisorRazonSocial
Razón Social del Emisor
String
emisorTipoIdentificacion
Tipo de Identificación del Emisor
Array <ExtrasEvento>
extras
Información extra correspondiente al evento
String
fechaEmision
Fecha de Emisión del Application Response (evento)
String
fechaRecepcion
Fecha de Recepción del Application Response (evento)
String
hash
Hash del documento Application Response
String
idPerfilDIAN
Perfil de la DIAN
String
mensaje
Mensaje de descripción del ApplicationResponse
String
nombreArchivoXML
Nombre del archivo XML
String
nota
Contenido del campo Note del Application Response
String
numeroDelEvento
Consecutivo del Application Response
String
receptorNumeroDocumento
Número de Identificación del Receptor
String
receptorNumeroDocumentoDV
Dígito Verificador del Número de Documento del Receptor
String
receptorRazonSocial
Razón Social del Receptor
String
receptorTipoIdentificacion
Tipo de Identificación del Receptor
String
resultado
Resultado del consumo del método:
“Procesado” ó “Error”
String
tipoCufe
Algoritmo utilizado para calcular CUDE del evento:
SHA-256, SHA-384, SHA-512
String
tipoEvento
Identificador del tipo de Evento:
(Interno/ApplicationResponse)
String
versionUBL
Versión UBL del XML
Y Class.ExtrasEvento contiene la siguiente información:
Tipo
Identificador
Descripción
String
codigoInterno1
Etiqueta
String
codigoInterno2
Descripción Adicional
String
nombre
Código del campo
String
valor
Información Adicional
Class.HistorialDeEntregas corresponderá a:
Tipo
Identificador
Descripción
String
LeidoEmailIPAddress
Dirección IP del computador en el cual se realizó el acuse del correo de notificación
String
LeidoEstatus
Estatus del acuse del correo de notificación
String
LeidoFecha
Fecha del acuse del correo de notificación
String
canalDeEntrega
Canal de entrega del documento electrónico
Array <String>
email
Email del receptor del documento electrónico
String
entregaEstatus
Estatus de la entrega:
‘0’: Correo no enviado
‘200’: Correo enviado
String
entregaEstatusDescripcion
Descripción del Estatus de la entrega
String
entregaFecha
Fecha de la Entrega del documento
String
fechaProgramada
Fecha de la Entrega
String
mensajePersonalizado
Mensaje personalizado para entrerga por Email, Whatsaap o Telegram
String
nitProveedorReceptor
NIT del Proveedor Tecnológico receptor, en caso de entrega por Interoperabilidad
String
recepcionEmailComentario
Comentario de Acuse de Recibo del Cliente
String
recepcionEmailEstatus
Estatus de recepción del Correo Electrónico
1: Aceptado
2: Rechazado
3: En verificación
String
recepcionEmailFecha
Fecha de recepción del Correo Electrónico
String
recepcionEmailIPAddress
Dirección IP de recepción del Correo Electrónico
String
telefono
Para entrega por Whatsapp/Telegram
@Importante: La estructura de éste Response, aún puede estar sujeta a cambios en una próxima actualización.
Método EstadoLegalDocumentos
Permite verificar si el documento indicado tiene validez legal frente al comprador y la autoridad tributaria (DIAN), además concede validar el historial de eventos relacionados con el documento ante la DIAN. Los clientes de ERP que cuenten con el servicio de Recepción podrán consultar el Estado Legal de un documento en particular, a través del nuevo método denominado (EstadoLegalDocumentos).
El cliente debe tener el servicio de recepción electrónica activo y contratado con The Factory HKA Colombia.
Nota: De momento este método de integración se encuentra en prueba, es importante aclarar que este método posteriormente tendrá un costo, el cual se informará desde el área comercial de The Factory HKA Colombia.
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
CUFE
“Código Único de Factura Electrónica” correspondiente al documento consultado, calculado por el algoritmo correspondiente del servicio
SupplierIdentification
Nit del emisor.
DocumentoId
Prefijo y Consecutivo del Documento electrónico concatenado sin separadores. Ejemplo “PRUE980338212"
En la siguiente tabla se muestran los estados posibles del documento, se deben pasar los siguientes parámetros de entrada: token de empresa, token password, cufe, nit y número de documento y devuelve como respuesta la siguiente información:
Indica el estatus actual en el que se encuentra actualmente el documento ante la DIAN con los detalles del documento.
Array <EventosResult>
EventosResult
Detalle del documento ante la DIAN, resultado de los eventos obtenidos.
String
CodigoRespuesta
String
MensajeRespuesta
Mensaje de respuesta del método.
Array <ResumenEventosDocumento>
ResumenEventosDocumento
Resumen a nivel general de los diferentes estatus que tiene el documento.
Donde Class.EstadoDocumentoDIANResult contiene la siguiente información:
Tipo
Identificador
Descripción
int
codigoEstadoFacturaDIAN
Indica el estado de la operación retornado por la DIAN.
String
DocumentoValidoenDIAN
Indica validación del documento ante la DIAN.
String
numeroDocumento
Consecutivo del Documento TFHKA/DIAN.
String
cufeCudeDocumento
CUFE del documento electronico
String
numeroIdentificacionEmisor
Número de Identificación del Emisor.
int
tipoIdentificacionEmisor
Indicador del Emisor
String
numeroIdentificacionReceptor
Número de Identificación del Receptor o adquieriente del documento.
int
TipoIdentificacionReceptor
Indicador del Receptor
Y Class.EventosResult contiene la siguiente información:
Tipo
Identificador
Descripción
String
codigoEvento
Etiqueta
String
descripcionEvento
Descripción del evento actual
String
fechaEvento
fecha de registro del evento
String
cudeEvento
Código Único de Documento Electrónico del evento.
String
emisorEvento
Evento ejecutado por la persona encargada.
String
tipoIdentificacionEmisor
Tipo indentificación del emisor
String
numeroIdentificacionEmisor
Indentificación del emisor
String
receptorEvento
Usuario que recibe los eventos(emisor)
String
numeroIdentificacionReceptor
Indentificación del receptor.
String
tipoIdentificacionReceptor
Tipo indentificación del receptor.
Class.ResumenEventosDocumento corresponderá a:
Tipo
Identificador
Descripción
String
CódigoRespuesta
Código correspondiente al catalogo de la tabla.
String
MensajeRespuesta
Mensaje de satisfacción o error de resumen de eventos del documento.
String
CantidadEventos
Número de eventos que se han dado al documento (1, 2 ó 3)
String
EsAceptada
Si el documento tiene los 3 eventos y tiene una aceptación expresa como evento.(SI/NO)
String
AceptaciónTácita
Si el documento tiene una aceptación tácita como evento realizada por el emisor.(SI/NO)
String
EsBienoServicio
Si el documento tiene un segundo evento DIAN, recibo del bien o prestación del servicio como evento.(SI/NO)
String
EsReclamada
Si el documento tiene un reclamo como evento por parte del receptor.(SI/NO)
String
EsRecibida
Si el documento tiene un acuse de recibo como evento por parte del receptor.(SI/NO)
String
TieneEventos
Si cumple con por lo menos un evento por parte del receptor.(SI/NO)
String
EsTituloValor
El documento cuenta con titulo valor despues de dar los 3 eventos por parte del receptor
String
EstaEndosada
@Importante: La estructura de éste Response, aún puede estar sujeta a cambios en una próxima actualización.
Método EnvioCorreo
Permite reenviar a una o varias direcciones de correos el documento indicado.
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
Documento
Prefijo y consecutivo del Documento Electrónico concatenado sin separadores. Ejemplo “PRUE980338212”. Permite enviar múltiples destinatarios (máximo 5) separados por coma el carácter coma ‘,’
correo
Correo electrónico al que se enviará el documento. Ejemplo nombre@empresa.com
adjuntos
“0”: Realiza el reenvio del correo sin adjuntos
“1”: Realiza el reenvio del correo con los adjuntos almacenados durante la emisión del documento.
RESPONSE
Parámetros a Recibir
Tipo
Identificador
Descripción
int
codigo
Indica el Estado de la operación retornado por el servicio
String
mensaje
Este mensaje está asociado al código, útil para identificación de errores
resultado
Resultado del consumo del método:
“Procesado” ó “Error”
@Importante: Si durante la emisión del documento (método Enviar) el parámetro adjuntos se asignó en “10” u “11”, la plataforma The Factory HKA - DFACTURE no generará representación gráfica (PDF) estándar, por lo tanto solo será reenviado a los destinatarios los documentos alojados en la plataforma (AttachedDocument). Para realizar un reenvío de correo (con el AttachedDocument y adjuntos) a una dirección de email diferente a la utilizada durante la emisión se puede consumir nuevamente el método CargarAdjuntos del Servicio Adjuntos Web SOAP.
Método DescargaPDF
Permite descargar la representación gráfica estándar (PDF generado por TFHKA) del documento para efectos de almacenamiento local, consulta local o reimpresión.
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
documento
Prefijo y consecutivo del Documento Electrónico concatenado sin separadores. Ejemplo “PRUE980338212”
RESPONSE
Parámetros a Recibir
Tipo
Identificador
Descripción
int
codigo
Indica el Estado de la operación retornado por el servicio
String
cufe
“Código Único de Factura Electrónica” correspondiente al documento consultado.
String
documento
Documento PDF codificado en Base64
String
hash
Código de detección de errores
String
mensaje
Este mensaje está asociado al codigo, útil para identificación de errores
String
resultado
Resultado del consumo del método:
“Procesado” ó “Error”
@Importante: Si durante la emisión del documento (método Enviar) el parámetro adjuntos se asignó en “10” u “11”, la plataforma The Factory HKA - DFACTURE no generará representación gráfica (PDF) estándar, por lo tanto no se puede consumir éste método ya que el servicio arrojará un error indicando que NO existe PDF asociado, ya que se asume que la representación gráfica ha sido generada de manera local por el software de facturación (ERP).
Método DescargaXML
Permite la descarga del documento XML (solo el documento electrónico Invoice, CreditNote y DebitNote), en caso que se requiera validar la información como la firma o la autenticidad de la misma o para efecto de manejo y almacenamiento local.
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
Documento
Prefijo y Consecutivo del Documento electrónico concatenado sin separadores. Ejemplo “PRUE980338212
RESPONSE
Parámetros a Recibir
Tipo
Identificador
Descripción
int
codigo
Indica el Estado de la operación retornado por el servicio
String
cufe
“Código Único de Factura Electrónica” correspondiente al documento consultado
String
documento
Documento XML (Invoice, CreditNote ó DebitNote) codificado en Base64
String
hash
Código de detección de errores
String
mensaje
Este mensaje está asociado al codigo, útil para identificación de errores
String
resultado
Resultado del consumo del método:
“Procesado” ó “Error”
Método FoliosRestantes
Permite consultar los timbres (transacciones) disponibles. Los timbres son consumidos en proporción a las transacciones realizadas.
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
RESPONSE
Parámetros a Recibir
Tipo
Identificador
Descripción
int
codigo
Indica el Estado de la operación retornado por el servicio
int
foliosRestantes
Cantidad de folios disponibles
String
mensaje
Este mensaje está asociado al codigo, útil para identificación de errores
String
resultado
Resultado del consumo del método:
“Procesado” ó “Error”
Método CargarCertificado
Este método por ahora se mantendrá solo como uso interno de The Factory HKA Colombia.
Método DescargarEventoXML
Permite descargar un evento u ocurrencia (ApplicationResponse) relacionado con un Documento Electrónico (Invoice, CreditNote ó DebitNote), generado por una persona o entidad relacionada con esto documento (DIAN, Emisor, Adquiriente).
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
documentoEvento
Consecutivo del evento (ApplicationResponse)
Documento
Prefijo y Consecutivo del Documento electrónico concatenado sin separadores. Ejemplo “PRUE980338212
RESPONSE
Parámetros a Recibir
Tipo
Identificador
Descripción
int
Código
Indica el Estado de la operación retornado por el servicio
String
Cufe
CUFE del evento (ApplicationResponse)
String
Documento
Documento XML (ApplicationResponse) codificado en Base64
String
fechaRespuesta
Fecha y Hora consumo del método, formato: AAAA-MM-DD HH:MM:SS
String
Hash
Código de detección de errores
String
Mensaje
Este mensaje está asociado al codigo, útil para identificación de errores.
String
Resultado
Resultado del consumo del método:
“Procesado” ó “Error”
String
tipoCufe
Algoritmo utilizado para calcular CUFE:
SHA-256, SHA-384, SHA-512
Método GenerarContenedor
Un contendor es un tipo de documento AttachedDocument, la estructura de éste tiene por objetivo contener y transmitir en un único archivo XML un documento electrónico (Invoice, CreditNote ó DebitNote) y todos los eventos (ApplicationResponse) generados hasta la fecha.
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
Documento
Prefijo y Consecutivo del Documento electrónico concatenado sin separadores. Ejemplo “PRUE980338212
RESPONSE
Parámetros a Recibir
Tipo
Identificador
Descripción
int
Código
Indica el Estado de la operación retornado por el servicio
String
Contenedor
Documento XML (AttachedDocument) codificado en Base64
String
Fecha
Fecha y Hora consumo del método, formato: AAAA-MM-DD HH:MM:SS
String
Hash
Código de detección de errores
String
Mensaje
Este mensaje está asociado al codigo, útil para identificación de errores.
String
Resultado
Resultado del consumo del método:
“Procesado” ó “Error”
Método GenerarEvento
Permite generar un evento u ocurrencia (ApplicationResponse) asociado a un Documento Electrónico (Invoice, CreditNote ó DebitNote), generado por una persona o entidad relacionada con esto documento (DIAN, Emisor, Adquiriente).
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
DatosEvento
datosEvento
Objeto con los datos del evento (ApplicationResponse) a generar
Donde Class.DatosEvento contiene la siguiente información:
Tipo
Identificador
Descripción
String
codigoEvento
Indica el código del evento (Por definir catálogo)
String
codigoInterno1
Etiqueta
String
codigoInterno2
Descripción Adicional
String
Comentario
Comentario o descripción del evento
String
Documento
Prefijo y consecutivo del Documento Electrónico concatenado sin separadores. Ejemplo “PRUE980338212”
Array <ExtrasEvento>
Extras
Información adicional del evento
Donde Class.ExtrasEvento contiene la siguiente información:
Tipo
Identificador
Descripción
String
codigoInterno1
Etiqueta
String
codigoInterno2
Descripción Adicional
String
Nombre Código
del campo
String
valor
Información adicional
RESPONSE
Parámetros a Recibir
Tipo
Identificador
Descripción
int
Código
Indica el Estado de la operación retornado por el servicio
String
consecutivoDocumentoEvento
Consecutivo del evento (ApplicationResponse)
String
Cufe
CUFE del evento (ApplicationResponse)
String
fechaRespuesta
Fecha y Hora consumo del método, formato: AAAA-MM-DD HH:MM:SS
String
Hash
Código de detección de errores
String
Mensaje
Este mensaje está asociado al codigo, útil para identificación de errores.
String
Resultado
Resultado del consumo del método:
“Procesado” ó “Error”
String
tipoCufe
Algoritmo utilizado para calcular CUFE:
SHA-256, SHA-384, SHA-512
String
Xml
Documento XML (ApplicationResponse) codificado en Base64
Método EstadoCertificado
Permite conocer el estado del certificado digital adquirido en ambiente demo o ambiente producción, indica su vigencia y los días restantes para cumplir su vencimiento.
REQUEST
Parámetros a Enviar
Tipo
Identificador
Descripción
String
tokenEmpresa
Suministrado por The Factory HKA Colombia
tokenPassword
RESPONSE
Parámetros a Recibir
Tipo
Identificador
Descripción
String
active
Indica el Estatus actual en el que se encuentra el certificado digital
String
dateFrom
Indica la fecha desde la cual se encuentra activo el certificado digital
String
dateTo
Indica la fecha de vencimiento del certificado digital.
Int
identification
Muestra el numero de identificación del contribuyente al que pertenece el certificado
Int
codigo
Indica el Estado de la operación retornado por el servicio
String
mensaje
Este mensaje está asociado a los días faltantes para el vencimiento del certificado digital.
@IMPORTANTE: El consumo de este método está contemplado solamente con la versión url V4 del servicio a través de Web Service.
Para mayor información pude visitar la siguiente sección: