Diferencia entre revisiones de «Manual DLL hkafact21 - Emisión V4»
(No se muestran 12 ediciones intermedias de 6 usuarios) | |||
Línea 1: | Línea 1: | ||
− | <includeonly>=</includeonly>== Objetivo ==<includeonly>=</includeonly> | + | <includeonly>=</includeonly>== <font color="blue">Objetivo </font>==<includeonly>=</includeonly> |
<br> | <br> | ||
El presente manual tiene como propósito dar a conocer los detalles de los cambios a nivel del consumo de la librería HKAFACT21 para validación previa respecto a la versión del modelo de facturación de validación posterior (HKAFACT). | El presente manual tiene como propósito dar a conocer los detalles de los cambios a nivel del consumo de la librería HKAFACT21 para validación previa respecto a la versión del modelo de facturación de validación posterior (HKAFACT). | ||
− | <includeonly>=</includeonly>== Alcance ==<includeonly>=</includeonly> | + | <includeonly>=</includeonly>== <font color="blue">Alcance </font>==<includeonly>=</includeonly> |
<br> | <br> | ||
<DIV ALIGN=justify>El presente documento abarca desde la instalación de la API hasta las funciones utilizables para el consumo del Servicio Web de Integración para el modelo de facturación de validación previa. La librería hkafact21 es compatible con cualquier desarrollo cuya base sea plataformas WIN32</DIV> | <DIV ALIGN=justify>El presente documento abarca desde la instalación de la API hasta las funciones utilizables para el consumo del Servicio Web de Integración para el modelo de facturación de validación previa. La librería hkafact21 es compatible con cualquier desarrollo cuya base sea plataformas WIN32</DIV> | ||
Línea 9: | Línea 9: | ||
'''Nota:''' En el mismo se describen cada uno de los strings que constituyen el objeto factura. Para obtener mayor información sobre la obligatoriedad de los campos (requeridos/opcionales) ver '''MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL. PREVIA)''' | '''Nota:''' En el mismo se describen cada uno de los strings que constituyen el objeto factura. Para obtener mayor información sobre la obligatoriedad de los campos (requeridos/opcionales) ver '''MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL. PREVIA)''' | ||
− | <includeonly>=</includeonly>== Definiciones y Términos ==<includeonly>=</includeonly> | + | <includeonly>=</includeonly>== <font color="blue">Definiciones y Términos </font>==<includeonly>=</includeonly> |
<br> | <br> | ||
*'''C++:''' lenguaje de programación diseñado para extender al lenguaje de programación C con mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido, con la particularidad de poder redefinir los operadores, y de crear nuevos tipos que se comporten como tipos fundamentales. | *'''C++:''' lenguaje de programación diseñado para extender al lenguaje de programación C con mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido, con la particularidad de poder redefinir los operadores, y de crear nuevos tipos que se comporten como tipos fundamentales. | ||
Línea 16: | Línea 16: | ||
*'''Servicio Web de Integración:''' Servicio Web de The Factory HKA Colombia SAS puesto a disposición a propietarios de software administrativos o de gestión para la generación de factura electrónica. | *'''Servicio Web de Integración:''' Servicio Web de The Factory HKA Colombia SAS puesto a disposición a propietarios de software administrativos o de gestión para la generación de factura electrónica. | ||
− | <includeonly>=</includeonly>== Procedimiento ==<includeonly>=</includeonly> | + | <includeonly>=</includeonly>==<font color="blue"> Procedimiento </font >==<includeonly>=</includeonly> |
<br> | <br> | ||
<DIV ALIGN=justify>Instalación: En el SDK descargado, se encontrará con tres herramientas; la librería de integración (hkafact21.dll), el presente manual y un demo funcional de código. Antes de comenzar a hacer uso de la librería en el desarrollo, lo primero que se debe hacer es registrar y referenciar la librería en nuestro proyecto. Esto se consigue siguiendo los siguientes pasos: </DIV> | <DIV ALIGN=justify>Instalación: En el SDK descargado, se encontrará con tres herramientas; la librería de integración (hkafact21.dll), el presente manual y un demo funcional de código. Antes de comenzar a hacer uso de la librería en el desarrollo, lo primero que se debe hacer es registrar y referenciar la librería en nuestro proyecto. Esto se consigue siguiendo los siguientes pasos: </DIV> | ||
Línea 31: | Línea 31: | ||
#Si los identificadores son repetibles puede concatenarse con el separador “% “seguido del identificador con los campos correspondientes a la cadena que desea repetir. | #Si los identificadores son repetibles puede concatenarse con el separador “% “seguido del identificador con los campos correspondientes a la cadena que desea repetir. | ||
<br> | <br> | ||
− | <includeonly>=</includeonly>== MÉTODO ENVIAR==<includeonly>=</includeonly> | + | <includeonly>=</includeonly>== <font color="blue">MÉTODO ENVIAR</font>==<includeonly>=</includeonly> |
<br> | <br> | ||
Función que permite generar el documento electrónico. | Función que permite generar el documento electrónico. | ||
<br> | <br> | ||
=== Declaración === | === Declaración === | ||
− | <pre> INT Enviar (string URL, string tokenEmpresa, string tokenPassword, string DatosCliente, string FacturaGlobal, string AnticAutCargDesc, string CpDr, string EntMerc, string ImpuestosFactura, string MpOcTe, string TcTcaIa, string | + | <center> |
+ | <pre> INT Enviar (string URL, string tokenEmpresa, string tokenPassword, string DatosCliente, string FacturaGlobal, string AnticAutCargDesc, string CpDr, string EntMerc, string ImpuestosFactura, string MpOcTe, string TcTcaIa, string Extras, string DetalleDeFactura, string Adjuntos, string SectorSalud, bool debugMode)</pre></center> | ||
=== String URL === | === String URL === | ||
Línea 45: | Línea 46: | ||
=== String tokenPassword === | === String tokenPassword === | ||
− | + | *Token asignado por la plataforma de TFHKA. | |
=== String datosCliente === | === String datosCliente === | ||
− | + | *Datos que componen la información del adquiriente. | |
=====<font color="blue"> Cliente_DatosGenerales </font> ===== | =====<font color="blue"> Cliente_DatosGenerales </font> ===== | ||
(20 Campos, 19 pipes “|”): | (20 Campos, 19 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID01= | + | <pre>ID01=01|nombreRazonSocial|tipoPersona|segundoNombre|apellido|numeroDocumento|tipoIdentificacion |
− | |nombreRazonSocial|tipoPersona|segundoNombre|apellido|numeroDocumento|tipoIdentificacion | ||
|email|telefono|notificar|actividadEconomicaCIIU|nombreComercial|nombreContacto | |email|telefono|notificar|actividadEconomicaCIIU|nombreComercial|nombreContacto | ||
|nota|numeroIdentificacionDV | |nota|numeroIdentificacionDV | ||
Línea 67: | Línea 67: | ||
(11 Campos, 9 pipes “|”): | (11 Campos, 9 pipes “|”): | ||
<center> | <center> | ||
− | <pre> | + | <pre>ID01A=01A|CanalDeEntrega|email|fechaProgramada|mensajePersonalizado|nitProveedorReceptor |
− | |CanalDeEntrega|email|fechaProgramada|mensajePersonalizado|nitProveedorReceptor | ||
|telefono|Extensible1.controlInterno1|Extensible1.controlInterno2 | |telefono|Extensible1.controlInterno1|Extensible1.controlInterno2 | ||
|Extensible1.nombre|Extensible1.valor | |Extensible1.nombre|Extensible1.valor | ||
Línea 79: | Línea 78: | ||
(6 Campos, 5 pipes “|”): | (6 Campos, 5 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID01B= | + | <pre>ID01B=01B|codigoImpuesto|Extensible1.controlInterno1|Extensible1.controlInterno2 |
− | |codigoImpuesto|Extensible1.controlInterno1|Extensible1.controlInterno2 | ||
|Extensible1.nombre|Extensible1.valor | |Extensible1.nombre|Extensible1.valor | ||
</pre> | </pre> | ||
Línea 90: | Línea 88: | ||
(8 Campos, 7 pipes “|”): | (8 Campos, 7 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID01E= | + | <pre>ID01E=01E|codigoEstablecimiento|nombreRegistroRUT|numeroIdentificacion|numeroIdentificacionDV| |
− | |codigoEstablecimiento|nombreRegistroRUT|numeroIdentificacion|numeroIdentificacionDV| | ||
numeroMatriculaMercantil|prefijoFacturacion|tipoIdentificacion | numeroMatriculaMercantil|prefijoFacturacion|tipoIdentificacion | ||
</pre> | </pre> | ||
Línea 100: | Línea 97: | ||
(7 Campos, 6 pipes “|”): | (7 Campos, 6 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID01F= | + | <pre>ID01F=01F|obligaciones|regimen|Extensible1.controlInterno1|Extensible1.controlInterno2 |
− | |obligaciones|regimen|Extensible1.controlInterno1|Extensible1.controlInterno2 | ||
|Extensible1.nombre|Extensible1.valor | |Extensible1.nombre|Extensible1.valor | ||
− | |||
</pre> | </pre> | ||
</center> | </center> | ||
Línea 112: | Línea 107: | ||
(30 Campos, 29 pipes “|”): | (30 Campos, 29 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID01C= | + | <pre>ID01C=01C|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento| |
− | |aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento| | ||
correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion|lenguaje | correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion|lenguaje | ||
|municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso|region|subDivision|ubicación | |municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso|region|subDivision|ubicación | ||
Línea 126: | Línea 120: | ||
(30 Campos, 29 pipes “|”): | (30 Campos, 29 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID01D= | + | <pre>ID01D=01D|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento |
− | |aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento | ||
|correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion|lenguaje | |correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion|lenguaje | ||
|municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso|region|subDivision|ubicación | |municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso|region|subDivision|ubicación | ||
Línea 138: | Línea 131: | ||
<u><center>'''datos_Cliente=''' ID01 <span style="color:#000000; background:#FFFF00">%</span>ID01A<span style="color:#000000; background:#FFFF00">%</span>ID01B<span style="color:#000000; background:#FFFF00">%</span>ID01E<span style="color:#000000; background:#FFFF00">%</span>ID01F<span style="color:#000000; background:#00FF00">%%</span>ID01C <span style="color:#000000; background:#00FF00">%%</span>ID01D</center></u> | <u><center>'''datos_Cliente=''' ID01 <span style="color:#000000; background:#FFFF00">%</span>ID01A<span style="color:#000000; background:#FFFF00">%</span>ID01B<span style="color:#000000; background:#FFFF00">%</span>ID01E<span style="color:#000000; background:#FFFF00">%</span>ID01F<span style="color:#000000; background:#00FF00">%%</span>ID01C <span style="color:#000000; background:#00FF00">%%</span>ID01D</center></u> | ||
− | ''' | + | '''Observaciones:''' |
* Los identificadores 01A, 01B, 01F son repetibles | * Los identificadores 01A, 01B, 01F son repetibles | ||
<br> | <br> | ||
+ | |||
=== String FacturaGlobalL === | === String FacturaGlobalL === | ||
Datos generales del objeto factura. | Datos generales del objeto factura. | ||
Línea 147: | Línea 141: | ||
(23 Campos, 22 pipes “|”): | (23 Campos, 22 pipes “|”): | ||
<center> | <center> | ||
− | <pre>datos_factura= | + | <pre>datos_factura=02|tipoDocumento|consecutivoDocumento|rangoNumeracion|fechaEmision|fechaVencimiento|moneda |
− | |tipoDocumento|consecutivoDocumento|rangoNumeracion|fechaEmision|fechaVencimiento|moneda | ||
|propina|totalDescuentos|totalSinImpuestos|totalMonto|cantidadDecimales|fechaFinPeriodoFacturacion | |propina|totalDescuentos|totalSinImpuestos|totalMonto|cantidadDecimales|fechaFinPeriodoFacturacion | ||
|fechaInicioPeriodoFacturacion|fechaPagoImpuestos|redondeoAplicado|tipoOperacion| | |fechaInicioPeriodoFacturacion|fechaPagoImpuestos|redondeoAplicado|tipoOperacion| | ||
Línea 163: | Línea 156: | ||
(11 Campos, 10 pipes “|”): | (11 Campos, 10 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID02A= | + | <pre>ID02A=02A|fechaDeRecibido|fechadePago|horaDePago|id|instrucciones|montoPagado| |
− | |fechaDeRecibido|fechadePago|horaDePago|id|instrucciones|montoPagado| | ||
Extensible1.controlInterno1 | Extensible1.controlInterno1 | ||
|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
Línea 175: | Línea 167: | ||
(15 Campos, 14 pipes “|”): | (15 Campos, 14 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID02B= | + | <pre>ID02B=02B|email|nombreComercial|nombreContacto|nota|numeroDocumento|numeroDocumentoDV |
− | |email|nombreComercial|nombreContacto|nota|numeroDocumento|numeroDocumentoDV | ||
|razonSocial|telefax|telefono|tipoIdentificacion|Extensible1.controlInterno1 | |razonSocial|telefax|telefono|tipoIdentificacion|Extensible1.controlInterno1 | ||
|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
Línea 187: | Línea 178: | ||
(12 Campos, 11 pipes “|”): | (12 Campos, 11 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID02C= | + | <pre>ID02C=02C|codigo|descripcion|indicador|monto|montoBase|porcentaje|secuencia|Extensible1.controlInterno1 |
− | |codigo|descripcion|indicador|monto|montoBase|porcentaje|secuencia|Extensible1.controlInterno1 | ||
|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
</pre> | </pre> | ||
Línea 196: | Línea 186: | ||
<u><center>'''AnticAutCargDesc =''' ID02A <span style="color:#000000; background:#00FF00">%%</span>ID02B <span style="color:#000000; background:#00FF00">%%</span>ID02C<span style="color:#000000; background:#00FF00">%%</span></center></u> | <u><center>'''AnticAutCargDesc =''' ID02A <span style="color:#000000; background:#00FF00">%%</span>ID02B <span style="color:#000000; background:#00FF00">%%</span>ID02C<span style="color:#000000; background:#00FF00">%%</span></center></u> | ||
− | ''' | + | '''Observaciones:''' |
* Los identificadores 02A, 02B son repetibles | * Los identificadores 02A, 02B son repetibles | ||
<br> | <br> | ||
+ | |||
=== String CpDr === | === String CpDr === | ||
Condiciones de pago y documentos referenciados para el comprobante. | Condiciones de pago y documentos referenciados para el comprobante. | ||
Línea 205: | Línea 196: | ||
(20 Campos, 19 pipes “|”): | (20 Campos, 19 pipes “|”): | ||
<center> | <center> | ||
− | <pre>ID02D= | + | <pre>ID02D=02D|codigoEvento|comentario|duracionPeriodo|duracionPeriodoMedida|fechaVencimiento|identificador |
− | |codigoEvento|comentario|duracionPeriodo|duracionPeriodoMedida|fechaVencimiento|identificador | ||
|medioPagoAsociado|monto|montoMulta|montoPenalidad|periodoDesde|periodoHasta|porcentajeDescuento | |medioPagoAsociado|monto|montoMulta|montoPenalidad|periodoDesde|periodoHasta|porcentajeDescuento | ||
|porcentajePago|referenciaAnticipo|Extensible1.controlInterno1| | |porcentajePago|referenciaAnticipo|Extensible1.controlInterno1| | ||
Línea 218: | Línea 208: | ||
(18 Campos, 17 pipes “|”): Puedo no enviarse 02E1 | (18 Campos, 17 pipes “|”): Puedo no enviarse 02E1 | ||
<center> | <center> | ||
− | <pre>ID02E= | + | <pre>ID02E=02E|codigoEstatusDocumento|codigoInterno|cufeDocReferenciado|fecha|fechaFinValidez|fechaInicioValidez |
− | |codigoEstatusDocumento|codigoInterno|cufeDocReferenciado|fecha|fechaFinValidez|fechaInicioValidez | ||
|numeroDocumento|tipoCUFE|tipoDocumento|tipoDocumentoCodigo|Extensible1.controlInterno1| | |numeroDocumento|tipoCUFE|tipoDocumento|tipoDocumentoCodigo|Extensible1.controlInterno1| | ||
Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor|conceptoRecaudo| | Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor|conceptoRecaudo| | ||
Línea 229: | Línea 218: | ||
<u><center>'''CpDr =''' ID02D<span style="color:#000000; background:#00FF00">%%</span>ID02E </center></u> | <u><center>'''CpDr =''' ID02D<span style="color:#000000; background:#00FF00">%%</span>ID02E </center></u> | ||
− | ''' | + | '''Observaciones:''' |
* Los identificadores 02D, 02E son repetibles | * Los identificadores 02D, 02E son repetibles | ||
+ | <br/> | ||
=== String EntMerc (Este indientificador no es obligatorio) === | === String EntMerc (Este indientificador no es obligatorio) === | ||
Línea 237: | Línea 227: | ||
==== <font color="blue"> entregaMercancia </font> ==== | ==== <font color="blue"> entregaMercancia </font> ==== | ||
<center> | <center> | ||
− | <pre>ID02F= | + | <pre>ID02F=02F|fechaEfectivaSalida|fechaEstimada|fechaReal|fechaSolicitada|identificacionTransporte| |
− | |fechaEfectivaSalida|fechaEstimada|fechaReal|fechaSolicitada|identificacionTransporte| | ||
matriculaTransporte|Extensible1.controlInterno1|Extensible1.controlInterno2| | matriculaTransporte|Extensible1.controlInterno1|Extensible1.controlInterno2| | ||
Extensible1.nombre|Extensible1.valor | Extensible1.nombre|Extensible1.valor | ||
Línea 248: | Línea 237: | ||
==== <font color="blue"> datosTransportista</font> ==== | ==== <font color="blue"> datosTransportista</font> ==== | ||
<center> | <center> | ||
− | <pre>ID02F1= | + | <pre>ID02F1=02F1|email|indicadordeAtencion|indicadordeCuidado|nombreContacto|nombreResponsableEntrega |
− | |email|indicadordeAtencion|indicadordeCuidado|nombreContacto|nombreResponsableEntrega | ||
|nota|numeroIdentificacion|numeroIdentificacionDV|numeroMatriculaMercantil|prefijoFacturacion | |nota|numeroIdentificacion|numeroIdentificacionDV|numeroMatriculaMercantil|prefijoFacturacion | ||
|telefax|telefono|tipoIdentificacion|transportadorNombre|transportadorNumeroDocumento | |telefax|telefono|tipoIdentificacion|transportadorNombre|transportadorNumeroDocumento | ||
Línea 261: | Línea 249: | ||
==== <font color="blue"> detallesTributariosTransportista </font> ==== | ==== <font color="blue"> detallesTributariosTransportista </font> ==== | ||
<center> | <center> | ||
− | <pre>ID02F1A= | + | <pre>ID02F1A=02F1A|codigoImpuesto|Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre |
− | |codigoImpuesto|Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre | ||
|Extensible1.valor | |Extensible1.valor | ||
</pre> | </pre> | ||
Línea 271: | Línea 258: | ||
==== <font color="blue"> direccionTransportista</font> ==== | ==== <font color="blue"> direccionTransportista</font> ==== | ||
<center> | <center> | ||
− | <pre>ID02F1B= | + | <pre>ID02F1B=02F1B|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento |
− | |aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento | ||
|correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion | |correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion | ||
|lenguaje|municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso|region | |lenguaje|municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso|region | ||
Línea 284: | Línea 270: | ||
==== <font color="blue"> responsabilidadRUT</font> ==== | ==== <font color="blue"> responsabilidadRUT</font> ==== | ||
<center> | <center> | ||
− | <pre>ID02F1C= | + | <pre>ID02F1C=02F1C|obligaciones|regimen|Extensible1.controlInterno1|Extensible1.controlInterno2 |
− | |obligaciones|regimen|Extensible1.controlInterno1|Extensible1.controlInterno2 | ||
|Extensible1.nombre|Extensible1.valor | |Extensible1.nombre|Extensible1.valor | ||
</pre> | </pre> | ||
Línea 294: | Línea 279: | ||
==== <font color="blue"> transportadorDireccion</font> ==== | ==== <font color="blue"> transportadorDireccion</font> ==== | ||
<center> | <center> | ||
− | <pre>ID02F1D= | + | <pre>ID02F1D=02F1D|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad |
− | |aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad | ||
|codigoDepartamento|correccionHusoHorario|departamento|departamentoOrg | |codigoDepartamento|correccionHusoHorario|departamento|departamentoOrg | ||
|direccion|distrito|habitacion|lenguaje|municipio|nombreEdificio|numeroEdificio | |direccion|distrito|habitacion|lenguaje|municipio|nombreEdificio|numeroEdificio | ||
Línea 307: | Línea 291: | ||
==== <font color="blue"> direccionDespacho </font> ==== | ==== <font color="blue"> direccionDespacho </font> ==== | ||
<center> | <center> | ||
− | <pre>ID02F2= | + | <pre>ID02F2=02F2|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad |
− | |aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad | ||
|codigoDepartamento|correccionHusoHorario|departamento|departamentoOrg | |codigoDepartamento|correccionHusoHorario|departamento|departamentoOrg | ||
|direccion|distrito|habitacion|lenguaje|municipio|nombreEdificio|numeroEdificio | |direccion|distrito|habitacion|lenguaje|municipio|nombreEdificio|numeroEdificio | ||
Línea 320: | Línea 303: | ||
==== <font color="blue"> direccionEntrega </font> ==== | ==== <font color="blue"> direccionEntrega </font> ==== | ||
<center> | <center> | ||
− | <pre>ID02F3= | + | <pre>ID02F3=02F3aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento |
− | |||
|correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion | |correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion | ||
|lenguaje|municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso | |lenguaje|municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso | ||
Línea 338: | Línea 320: | ||
<br> | <br> | ||
<br> | <br> | ||
− | Observaciones: | + | '''Observaciones:''' |
*Los identificadores ID02F1A, 02F1B1, 02F1C, 02F1D1, 02F2A, 02F3A son repetibles | *Los identificadores ID02F1A, 02F1B1, 02F1C, 02F1D1, 02F2A, 02F3A son repetibles | ||
+ | <br/> | ||
+ | |||
+ | === String ImpuestosFactura === | ||
+ | Esta cadena contiene la información referente a los impuestos aplicados en el documento. | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> ImpuestosGenerales </font> ==== | ||
+ | (13 Campos, 12 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID02G=02G|baseImponibleTOTALImp|codigoTOTALImp|controlInterno|porcentajeTOTALImp | ||
+ | |unidadMedida|unidadMedidaTributo|valorTOTALImp|valorTributoUnidad|Extensible1.controlInterno1 | ||
+ | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> ImpuestosTotales </font> ==== | ||
+ | (8 Campos, 7 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID02H=02H|codigoTOTALImp|montoTotal|Extensible1.controlInterno1|Extensible1.controlInterno2 | ||
+ | |Extensible1.nombre|Extensible1.valor|redondeoAplicado | ||
+ | </pre> | ||
+ | <br> | ||
+ | <u><center>'''ImpuestosFactura =''' ID02G<span style="color:#000000; background:#00FF00">%%</span>ID02H</center></u> | ||
+ | </center> | ||
+ | '''Nota:''' En caso de enviar el campo redondeoAplicado vacío se tomará por defecto 0.00 | ||
+ | |||
+ | '''Nota:''' Si el campo redondeoAplicado se encuentra vacío debe enviar un pipe (|) al final de la cadena. | ||
+ | <br> | ||
+ | <u>Obsercaciones:</u> | ||
+ | *Los identificadores ID02G, ID02H son repetibles | ||
+ | <br> | ||
+ | === String MpOcTe === | ||
+ | Esta cadena contiene la información referente a Medios de pagos, Orden de compra y términos de entrega. | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> MediosPago </font> ==== | ||
+ | (15 Campos, 14 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID02J=02J|codigoBanco|codigoCanalPago|codigoReferencia|fechaDeVencimiento|medioPago|metodoDePago | ||
+ | |nombreBanco|numeroDeReferencia|numeroDias|numeroTransferencia|Extensible1.controlInterno1 | ||
+ | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> Orden_Compra </font> ==== | ||
+ | (12 Campos, 11 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID02K=02K|codigoCliente|fecha|numeroOrden|numeroPedido|tipoCUFE|tipoOrden | ||
+ | |uuid|Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> Terminos_Entrega </font> ==== | ||
+ | (10 Campos, 9 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID02N=02N|codigoCondicionEntrega|costoTransporte|identificacion|monto | ||
+ | |responsableEntrega|Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena | ||
+ | <br/> | ||
+ | <u><center>'''MpOcTe =''' ID02J<span style="color:#000000; background:#00FF00">%%</span>ID02K<span style="color:#000000; background:#00FF00">%%</span>ID02N</center></u> | ||
+ | <br> | ||
+ | '''Observaciones:''' | ||
+ | *Los identificadores ID02J, ID02K son repetibles | ||
+ | <br> | ||
+ | |||
+ | === String TcTcaIa === | ||
+ | Esta cadena contiene la información referente a la tasa de cambio, tasa de cambio alternativa e información adicional. | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> TasaCambio </font> ==== | ||
+ | (13 Campos, 12 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID02L=02L|baseMonedaDestino|baseMonedaOrigen|fechaDeTasaDeCambio|indicadorDeTasa | ||
+ | |monedaDestino|monedaOrigen|operadorCalculo|tasaDeCambio|Extensible1.controlInterno1 | ||
+ | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> TasaCambioAlternativa </font> ==== | ||
+ | (13 Campos, 12 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID02M=02M|baseMonedaDestino|baseMonedaOrigen|fechaDeTasaDeCambio|indicadorDeTasa | ||
+ | |monedaDestino|monedaOrigen|operadorCalculo|tasaDeCambio|Extensible1.controlInterno1 | ||
+ | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> InformacionAdicional </font> ==== | ||
+ | (2 Campos, 1 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID02I=02I|Texto | ||
+ | </pre> | ||
+ | </center> | ||
+ | <br/> | ||
+ | <u><center>'''TcTcaIa=''' ID02L<span style="color:#000000; background:#00FF00">%%</span>ID02M<span style="color:#000000; background:#00FF00">%%</span>ID02I</center></u> | ||
+ | <br> | ||
+ | '''Observaciones:''' | ||
+ | *Los identificadores ID02I son repetibles | ||
+ | <br/> | ||
+ | |||
+ | === String DetalleDeFactura === | ||
+ | Esta cadena contiene la información referente a los items | ||
+ | <br/> | ||
+ | |||
+ | ==== <font color="blue"> DetalleDeFactura </font> ==== | ||
+ | (43 Campos, 42 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID03=03|cantidaPorEmpaque|CantidadReal|CantidadRealUnidadMedida|cantidadUnidades | ||
+ | |codigoFabricante|codigoIdentificacionPais|codigoProducto|codigoTipoPrecio|descripcion | ||
+ | |descripcionTecnica|estandarCodigo|estandarCodigoID|estandarCodigoIdentificador|estandarCodigoProducto | ||
+ | |estandarOrganizacion|estandarSubcodigoProducto|mandatorioNumeroIdentificacion|mandatorioNumeroIdentificacionDV | ||
+ | |mandatorioTipoIdentificacion|marca|modelo|muestraGratis|NombreFabricante|nota|precioReferencia | ||
+ | |precioTotal|precioTotalSinImpuestos|PrecioVentaUnitario|secuencia|seriales|subCodigoFabricante | ||
+ | |subcodigoProducto|tipoAIU|unidadMedida|informacionAdicional|Extensible1.controlInterno1 | ||
+ | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor|descripcion2|descripcion3| idEsquema | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' Si envía vacío el campo idEsquema se debe enviar un pipe (|) al final de la cadena | ||
+ | <br/> | ||
+ | |||
+ | ==== <font color="blue"> DF_CargosDescuentos </font> ==== | ||
+ | (12 Campos, 11 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID03A=03A|codigo|descripcion|indicador|monto|montoBase|porcentaje|secuencia | ||
+ | |Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> DF_ImpDet </font> ==== | ||
+ | (13 Campos, 12 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID03C=03C|baseImponibleTOTALImp|codigoTOTALImp|controlInterno|porcentajeTOTALImp | ||
+ | |unidadMedida|unidadMedidaTributo|valorTOTALImp|valorTributoUnidad|Extensible1.controlInterno1 | ||
+ | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> DF_ImpTot </font> ==== | ||
+ | (8 Campos, 7 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID03D=03D|codigoTOTALImp|montoTotal|Extensible1.controlInterno1|Extensible1.controlInterno2 | ||
+ | |Extensible1.nombre|Extensible1.valor|redondeoAplicado | ||
+ | </pre> | ||
+ | </center> | ||
+ | '''Nota:''' En caso de enviar el campo redondeoAplicado vacio se tomara por defecto 0.00 | ||
+ | |||
+ | '''Nota:'''<span style="color:#000000; background:#FFFF00"> Si el campo redondeoAplicado se encuentra vacío debe enviar un pipe (|) al final de la cadena </span> | ||
+ | <br> | ||
+ | <br> | ||
+ | '''Observaciones:''' | ||
+ | *Separación entre campos del ítem: $$ | ||
+ | <br> | ||
+ | |||
+ | ==== <font color="blue"> DF_InformacionAdicional </font> ==== | ||
+ | (7 Campos, 6 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID03E=03E|nombre|valor|código|cantidad|secuencia|unidadMedidaTransporte | ||
+ | </pre> | ||
+ | </center> | ||
+ | <br/> | ||
+ | '''Nota:'''Si el campo unidadMedidaTransporte se encuentra vacío debe enviar un pipe (|) al final de la cadena | ||
+ | |||
+ | '''Observaciones:''' | ||
+ | *Separación entre ítems: ¬(Ejemplo: item1¬item2) | ||
+ | |||
+ | <u><center>'''DetalleDeFactura ='''ID03<span style="color:#000000; background:#00FF00">$$</span>ID03A<span style="color:#000000; background:#00FF00">$$</span>ID03C<span style="color:#000000; background:#00FF00">$$</span>ID03D<span style="color:#000000; background:#00FF00">$$</span>ID03E (Si se envía descuento) </u></center> | ||
+ | <br> | ||
+ | <u><center>'''DetalleDeFactura ='''ID03<span style="color:#000000; background:#00FF00">$$</span>ID03C<span style="color:#000000; background:#00FF00">$$</span>ID03D<span style="color:#000000; background:#00FF00">$$</span>ID03E <span style="color:#000000; background:#00FF00">$$</span>ID03E (Si NO se envía descuento) </u></center> | ||
+ | <br/> | ||
+ | <u><center>'''DetalleDeFactura ='''ID03<span style="color:#000000; background:#00FF00">$$</span>ID03C<span style="color:#000000; background:#00FF00">$$</span>ID03D (Si NO se envía descuento ni información Adicional) </u></center> | ||
+ | <br/> | ||
+ | |||
+ | === String Extras === | ||
+ | Esta cadena contiene los campos extras que se deseen agregar al objeto factura. | ||
+ | <br> | ||
+ | <u><center>'''Extras = '''<font color="Blue>04</font>|controlInterno1|controlInterno2|nombre|pdf|valor|xml</u></center> | ||
+ | '''Observaciones:''' | ||
+ | *El string Extras es repetible. | ||
+ | <br/> | ||
+ | |||
+ | === String SectorSalud === | ||
+ | Esta cadena contiene la información referente al sector salud: | ||
+ | <br/> | ||
+ | |||
+ | ==== <font color="blue"> sectorSalud </font> ==== | ||
+ | (4 Campos, 3 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID06=06|TipoIdentificacion|IdPersonalizacion|TipoEscenario | ||
+ | </pre> | ||
+ | </center> | ||
+ | <br/> | ||
+ | |||
+ | ==== <font color="blue"> DireccionResidencia </font> ==== | ||
+ | (30 Campos, 29 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID06A=06A|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad | ||
+ | |codigoDepartamento|correccionHusoHorario|departamento|departamentoOrg|direccion | ||
+ | |distrito|habitacion|lenguaje|municipio|nombreEdificio|numeroEdificio|numeroParcela | ||
+ | |pais|piso|region|subDivision|ubicación|zonaPostal|Extensible1.controlInterno1 | ||
+ | |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | <br/> | ||
+ | |||
+ | ==== <font color="blue"> CamposGenerales </font> ==== | ||
+ | (3 Campos, 2 pipes “|”): | ||
+ | |||
+ | Esta cadena contiene la información referente a los Pacientes. | ||
+ | <center> | ||
+ | <pre>ID06B=06B|Nombre|Valor | ||
+ | </pre> | ||
+ | </center> | ||
+ | <br/> | ||
+ | '''Nota:'''Los camposGenerales se encuentran numerados según el orden establecido en la resolución. Para los campos que se envian vacios se debe finalizar la cadena con pipe (|) adicional. | ||
+ | *El string CamposGenerales es repetible. | ||
+ | <u><center>'''Separación entre Pacientes:'''</u> <span style="color:#000000; background:#FFFF00">“¬”</span> <span style="color:#000000; background:#FFFF00">(Ejemplo: Paciente1¬Paciente2)</span> | ||
+ | </center> | ||
+ | <br/> | ||
+ | |||
+ | ==== <font color="blue"> Sextras </font> ==== | ||
+ | (7 Campos, 6 pipes “|”): | ||
+ | <center> | ||
+ | <pre>ID06C=06C|controlInterno1|controlInterno2|nombre|pdf|valor|xml | ||
+ | </pre> | ||
+ | </center> | ||
+ | *El string Extras es repetible. | ||
+ | <u><center>'''SectorSalud= ''' ID06 +<span style="color:#000000; background:#00FF00">“%”</span> + ID06A + <span style="color:#000000; background:#00FF00">“%%”</span> + ID06B + <span style="color:#000000; background:#00FF00">“%%”</span>+ ID06C | ||
+ | </center></u> | ||
+ | <br/> | ||
+ | |||
+ | === String Adjunto === | ||
+ | Caracter que establece si el documento que se emite contendrá o no adjuntos. Valores posibles: | ||
+ | <br/> | ||
+ | * “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 solo XML sin representación Gráfica estándar por The Factory HKA. | ||
+ | * “11” Admite archivos adjuntos. Se genera solo XML sin representación gráfica estándar por The Factory HKA. | ||
+ | |||
+ | === String debugMode === | ||
+ | Flag para indicar a la dll que registre el log de debug en pruebas. | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | === Respuesta de método Enviar === | ||
+ | Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult.txt con la siguiente estructura: | ||
+ | |||
+ | |||
+ | :01|codigo|consecutivoDocumento|cufe|fechaRespuesta|hash|mensaje|resultado|tipoCufe|esValidoDian|nombre|fechaAceptacionDIAN | ||
+ | |||
+ | :esValidoDian =1 True (Documento Aceptado) - esValidoDian = 0 False (Documento no Aceptado) | ||
+ | |||
+ | :01A|mensajeValidacion | ||
+ | |||
+ | :01B|reglasValidacionDIAN | ||
+ | <br/> | ||
+ | '''Nota:'''El string del QR se escribe en un archivo de texto llamado string_QR.txt | ||
+ | |||
+ | '''Nota:'''La dll también dispone del método EnviarCustom, similar al anterior con la diferencia de que este método permite generar el archivo plano de resultado con un nombre diferente y en un directorio distinto al local mediante el parámetro NombreArchivo. Para más detalles ver código ejemplo suministrado en el SDK. | ||
+ | <br> | ||
+ | <br> | ||
+ | <includeonly>=</includeonly>== <font color="blue">Método EnviarArchivo </font>==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | Función que permite adjuntar o enviar archivos (anexos) por email durante la emisión del documento electrónico. Este método se ejecuta después de consumir el método Enviar con el parámetro adjuntos en “1” o en “11”. | ||
+ | <br> | ||
+ | |||
+ | <big>''' Declaración '''</big> | ||
+ | <center> | ||
+ | <pre> INT EnviarArchivo (string URLAdj, string tokenEmpresa, string tokenPassword, string ndocumento, string enviar, string formato, string nombre, string tipo, string email, string ruta, bool debugMode).</pre></center> | ||
+ | |||
+ | <big>''' String URLAdj'''</big> | ||
+ | <br> | ||
+ | *URL del servicio de carga de Adjuntos (Sin ?wsdl). | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String tokenEmpresa ''' </big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String tokenPassword'''</big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String ndocumento '''</big> | ||
+ | <br/> | ||
+ | Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento al cual se adjuntará el archivo). | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String enviar '''</big> | ||
+ | <br/> | ||
+ | Parámetro que indica la finalización de la carga de adjuntos. Posee dos valores: | ||
+ | * “0” Adjunta el archivo y lo asocia al documento electrónico sin enviar el email al Adquiriente. | ||
+ | * “1” Adjunta el archivo y lo asocia al documento electrónico y envía el email al Adquiriente. | ||
+ | |||
+ | <big>'''String formato '''</big> | ||
+ | <br/> | ||
+ | Extension del archivo adjunto, formatos permitidos: png, bmp, jpg, pdf, doc, docx, xsl, xlsx, ppt, pptx. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String nombre '''</big> | ||
+ | <br/> | ||
+ | Nombre que tomará el archive adjunto. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String tipo '''</big> | ||
+ | <br/> | ||
+ | “1” Declaramos en la Clase Adjunto (Class.Adjunto) en Tipo "1" cuando queremos generar la representación gráfica obtenida por el ERP.<br/> | ||
+ | “2” Declaramos en la Clase Adjunto (Class.Adjunto) en Tipo "2" Cuando se van a enviar otros documentos adicionales a la factura, es decir, que estos documentos van a quedar en una cola sin que se haga ningún tipo de envío sin antes indicárselo a la plataforma. Para esto, el<strong> parámetro <enviar> </strong>se debe declarar en cero '0', para indicarle a nuestra plataforma que sincronice el adjunto pero sin enviarlo. Finalmente cuando se declare el último adjunto se debe declarar el <strong>parámetro <enviar></strong> en "1", así nuestra plataforma entiende que es el último adjunto, por tanto envía este último documento más los anteriores que se encontraban en la cola. | ||
+ | |||
+ | <br/> | ||
+ | |||
+ | <big>'''String email'''</big> | ||
+ | <br/> | ||
+ | Correo al cual se dese enviar el XML (AttachedDocument), la Representación Gráfica y los anexos o adjuntos. | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String ruta '''</big> | ||
+ | <br/> | ||
+ | Cadena de caracteres con la ubicación del archivo que será enviado a través del servicio. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String debugMode'''</big> | ||
+ | <br> | ||
+ | Flag para indicar a la dll que registre el log de debug en pruebas. | ||
+ | <br/> | ||
+ | |||
+ | <font color= "Red">'''@IMPORTANTE:'''</font> | ||
+ | |||
+ | Al emitir un documento electrónico con el parámetro Adjunto en “1” u “11” el email no se enviará al adquiriente hasta no consumir el método '''EnviarArchivo.''' | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | === Respuesta de método EnviarArchivo=== | ||
+ | Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult.txt con la siguiente estructura: | ||
+ | |||
+ | |||
+ | :01|codigo| mensaje|resultado | ||
+ | <br> | ||
+ | <includeonly>=</includeonly>== <font color="blue">Método EstadoDocumento </font>==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | Función que permite consultar el estado de un documento emitido previamente. | ||
+ | <br> | ||
+ | |||
+ | <big>''' Declaración '''</big> | ||
+ | <center> | ||
+ | <pre> INT EstadoDocumento (string URL, string tokenEmpresa, string tokenPassword, string documento, bool debugMode)</pre></center> | ||
+ | |||
+ | <big>''' String URLAdj'''</big> | ||
+ | <br> | ||
+ | *URL del servicio de carga de Adjuntos (Sin ?wsdl). | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String tokenEmpresa ''' </big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String tokenPassword'''</big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String ndocumento '''</big> | ||
+ | <br/> | ||
+ | Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento al cual se adjuntará el archivo). | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String debugMode'''</big> | ||
+ | <br> | ||
+ | Flag para indicar a la dll que registre el log de debug en pruebas. | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | === Respuesta método EstadoDocumento=== | ||
+ | Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura:Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult.txt con la siguiente estructura: | ||
+ | |||
+ | |||
+ | |||
+ | :01|codigo|estatusDocumento|ambiente|cadenaCufe|consecutivo|cufe|descripcionDocumento|descripcionEstatusDocumento|entregaMetodoDIAN | ||
+ | :|esValidoDIAN|estatusDocumento|fechaDocumento|mensaje|mensajeDocumento|poseeAdjuntos|poseeRepresentacionGrafica|resultado | ||
+ | :|tipoCufe|tipoDocumento|trackID|fechaAceptacionDIAN | ||
+ | |||
+ | :esValidoDian =1 True (Documento Aceptado) - esValidoDian = 0 False (Documento no Aceptado) | ||
+ | |||
+ | |||
+ | :01A|ambienteDIAN|codigo|comentario|cufe|descripcionEvento|emisorNumeroDocumento|emisorNumeroDocumentoDV|emisorRazonSocial | ||
+ | :|emisorTipoIdentificacion|fechaEmision|fechaRecepcion|hash|idPerfilDIAN|mensaje|nombreArchivoXML|nota|numeroDelEvento | ||
+ | :|receptorNumeroDocumento|receptorNumeroDocumentoDV|receptorRazonSocial|receptorTipoIdentificacion|resultado|tipoCufe| | ||
+ | :tipoEvento|versionUBL|xml | ||
+ | |||
+ | |||
+ | :01A1|codigoInterno1|codigoInterno2|nombre|valor | ||
+ | |||
+ | |||
+ | :01B|canalDeEntrega|email|entregaEstatus|entregaEstatusDescripcion|entregaFecha|fechaProgramada|mensajePersonalizado | ||
+ | :|nitProveedorReceptor|recepcionEmailComentario|recepcionEmailEstatus|recepcionEmailFecha|recepcionEmailIPAddress|telefono | ||
+ | |||
+ | |||
+ | :01C|reglasValidacionDIAN | ||
+ | |||
+ | |||
+ | <br/> | ||
+ | '''Nota:'''El string del QR se escribe en un archivo de texto llamado string_QR.txt | ||
+ | |||
+ | '''Nota:'''La dll también dispone del método EstadoDocumentoCustom, similar al anterior con la diferencia de que este método permite generar el archivo plano de resultado con un nombre diferente y en un directorio distinto al local mediante el parámetro NombreArchivo. Para más detalles ver código ejemplo suministrado en el SDK. | ||
+ | <br> | ||
+ | <br> | ||
+ | <includeonly>=</includeonly>== <font color="blue">Método FoliosRestantes </font>==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | Función que permite consultar la cantidad de folios disponibles | ||
+ | <br> | ||
+ | |||
+ | <big>''' Declaración '''</big> | ||
+ | <center> | ||
+ | <pre> INT FoliosRestantes (string URL, string tokenEmpresa, string tokenPassword, string otro, bool debugMode)</pre></center> | ||
+ | |||
+ | <big>''' String URLAdj'''</big> | ||
+ | <br> | ||
+ | *URL del servicio de carga de Adjuntos (Sin ?wsdl). | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String tokenEmpresa ''' </big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String tokenPassword'''</big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <bi>''' String otro '''</big> | ||
+ | <br/> | ||
+ | Actualmente en desuso, campo reservado para futuras versiones. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String debugMode'''</big> | ||
+ | <br> | ||
+ | Flag para indicar a la dll que registre el log de debug en pruebas. | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | === Respuesta método FoliosRestantes:=== | ||
+ | Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura: | ||
+ | |||
+ | |||
+ | :código|foliosRestantes|mensaje|resultados. | ||
+ | <br/> | ||
+ | <br> | ||
+ | <includeonly>=</includeonly>== <font color="blue">Método EnvioCorreoAdjuntos </font>==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | Función que permite reenviar el correo de notificación que se emite cuando se genera un documento electrónico con adjuntos | ||
+ | <br> | ||
+ | |||
+ | <big>''' Declaración '''</big> | ||
+ | <center> | ||
+ | <pre> INT EnvioCorreoAdjuntos (string URL, string tokenEmpresa, string tokenPassword, string documento, | ||
+ | string correo, string adjunto, bool debugMode)</pre></center> | ||
+ | |||
+ | <big>''' String URLAdj'''</big> | ||
+ | <br> | ||
+ | *URL del servicio de carga de Adjuntos (Sin ?wsdl). | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String tokenEmpresa ''' </big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String tokenPassword'''</big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String documento '''</big> | ||
+ | <br> | ||
+ | Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento que se quiere reenviar). | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String correo'''</big> | ||
+ | <br> | ||
+ | Correo al cual se dese enviar el XML (AttachedDocument) y la Representación Gráfica Estándar si aplica. | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String adjunto'''</big> | ||
+ | <br> | ||
+ | Carácter que establece si el documento será reenviado con adjuntos. Valores posibles: | ||
+ | * “0” Realiza el reenvió del correo sin adjuntos | ||
+ | * “1” Realiza el reenvió del correo con los adjuntos almacenados durante la emisión del documento. | ||
+ | |||
+ | <big>'''String debugMode'''</big> | ||
+ | <br> | ||
+ | Flag para indicar a la dll que registre el log de debug en pruebas. | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | === Respuesta método EnvioCorreoAdjuntos=== | ||
+ | Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura: | ||
+ | |||
+ | |||
+ | :código|mensaje|resultados. | ||
+ | <br/> | ||
+ | '''Nota:''La dll también dispone del método EnvioCorreo, similar al anterior con la diferencia de que este no contiene el parámetro adjunto. | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <includeonly>=</includeonly>== <font color="blue">Método DescargarXML </font>==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | Función que permite descargar el XML Fiscal de un documento emitido previamente (solo el documento electrónico Invoice, CreditNote y DebitNote). El archivo XML es creado en el directorio local de la aplicación. | ||
+ | <br> | ||
+ | |||
+ | <big>''' Declaración '''</big> | ||
+ | <center> | ||
+ | <pre> INT DescargarXML (string URL, string tokenEmpresa, string tokenPassword, string documento, bool debugMode))</pre></center> | ||
+ | |||
+ | <big>''' String URLAdj'''</big> | ||
+ | <br> | ||
+ | *URL del servicio de carga de Adjuntos (Sin ?wsdl). | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String tokenEmpresa ''' </big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String tokenPassword'''</big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String documento '''</big> | ||
+ | <br> | ||
+ | Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento que se quiere consultar). | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String debugMode'''</big> | ||
+ | <br> | ||
+ | Flag para indicar a la dll que registre el log de debug en pruebas. | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | === Respuesta método DescargarXML === | ||
+ | Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura: | ||
+ | |||
+ | |||
+ | código|mensaje|resultados. | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <includeonly>=</includeonly>== <font color="blue">Método DescargarPDF </font>==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | Función que permite descargar la Representación Gráfica Estándar de un documento emitido previamente. El archivo PDF es creado en el directorio local de la aplicación. | ||
+ | <br> | ||
+ | |||
+ | <big>''' Declaración '''</big> | ||
+ | <center> | ||
+ | <pre>INT DescargarPDF (string URL, string tokenEmpresa, string tokenPassword, string documento, bool debugMode)</pre></center> | ||
+ | |||
+ | <big>''' String URLAdj'''</big> | ||
+ | <br> | ||
+ | *URL del servicio de carga de Adjuntos (Sin ?wsdl). | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String tokenEmpresa ''' </big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String tokenPassword'''</big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String documento '''</big> | ||
+ | <br> | ||
+ | Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento que se quiere consultar). | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String debugMode'''</big> | ||
+ | <br> | ||
+ | Flag para indicar a la dll que registre el log de debug en pruebas. | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | === Respuesta método DescargarPDF === | ||
+ | Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura: | ||
+ | |||
+ | |||
+ | código|mensaje|resultados. | ||
+ | <br/> | ||
+ | |||
+ | <font color= "Red">'''@IMPORTANTE:'''</font> | ||
+ | |||
+ | 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). | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <includeonly>=</includeonly>== <font color="blue">Método GenerarContenedor </font>==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | Función que permite descargar el XML AttachedDocument de un documento emitido previamente (Este archivo contiene el XML de un documento electrónico (Invoice, CreditNote ó DebitNote) y todos los eventos (ApplicationResponse) generados hasta la fecha). El archivo XML es creado en el directorio local de la aplicación. | ||
+ | <br> | ||
+ | |||
+ | <big>''' Declaración '''</big> | ||
+ | <center> | ||
+ | <pre>INT GenerarContenedor (string URL, string tokenEmpresa, string tokenPassword, string documento, bool debugMode)</pre></center> | ||
+ | |||
+ | <big>''' String URLAdj'''</big> | ||
+ | <br> | ||
+ | *URL del servicio de carga de Adjuntos (Sin ?wsdl). | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String tokenEmpresa ''' </big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String tokenPassword'''</big> | ||
+ | <br/> | ||
+ | *Token asignado por la plataforma de TFHKA. | ||
+ | <br/> | ||
+ | |||
+ | <big>''' String documento '''</big> | ||
+ | <br> | ||
+ | Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento que se quiere consultar). | ||
+ | <br/> | ||
+ | |||
+ | <big>'''String debugMode'''</big> | ||
+ | <br> | ||
+ | Flag para indicar a la dll que registre el log de debug en pruebas. | ||
+ | <br/> | ||
+ | |||
+ | |||
+ | === Respuesta método GenerarContenedor === | ||
+ | Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura: | ||
+ | |||
+ | |||
+ | código|mensaje|Fecha|Hash|resultados. | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <includeonly>=</includeonly>== <font color="blue">Ejemplo Strings Método Enviar </font>==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | <center> | ||
+ | <pre> | ||
+ | * Url= http://demoemision21.thefactoryhka.com.co/ws/v1.0/Service.svc ' | ||
+ | * TokenEmp='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' | ||
+ | * TokenPas='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' | ||
+ | </pre> | ||
+ | </center> | ||
+ | <br> | ||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: datos_Cliente'''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * ID01="01|Cristche|1|Evardho|ParedesMarquina|746260|31|email@gmail.com|3185853106|SI|0812|CHEV DEV|Cristche Paredes|cliente importante|0|123123123|||||" | ||
+ | * ID01A = "01A|0|email1@thefactoryhka.com;email2@gmail.com|2019-07-31 13:01:01|Mensaje programadito||1235467|||||" | ||
+ | * ID01B = "01B|01|||||" | ||
+ | * ID01E = "01E|1|Cristche Paredes|746260|0|456456|FE1|31" | ||
+ | * ID01F = "01F|O-13|04|||||" | ||
+ | * ID01C = "01C|Fulano|Sutano|1|POXBOX01|Principal|Los Chaimas|Bogotá, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los :Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||" | ||
+ | * ID01D = "01D|Fulano|Sutano|1|POXBOX01|Principal|Los Chaimas|Bogotá, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los :Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||" | ||
+ | :datos_Cliente = ID01 + "%" + ID01A + "%" + ID01B + "%" + ID01E + "%" + ID01F + "%%" + ID01C + "%%" + ID01D | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: datos_factura'''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * datos_factura= " 02|01|CONSECUTIVO|RANGO-CAMPODESDE|2019-11-29 00:00:00|2019-10-29|COP|0.00|0.00|5980.00|7116.20|2||||0.00|10|0.00|5980.00|7116.20|0.00|1|" | ||
+ | * **datos_factura ="02|01|CONSECUTIVO|RANGO-CAMPODESDE|2019-11-29 00:00:00|2019-10-29|COP|0.00|0.00|5980.00|7116.20|2||||0.00|10|0.00|5980.00|7116.20|0.00|1|2" (Con el campo tipoSector) | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: anticAutorizado_CargDesc''''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * ID02A = "02A|2019-07-21|2019-07-21|12:12:12|1|instruccion|||||" (No es obligatorio) | ||
+ | * ID02A = "02A|" | ||
+ | * ID02B = "02B|" (No es obligatorio para nada) | ||
+ | * ID02B = "02B|" | ||
+ | * ID02C = "02C|11|descripcion del descuento|0|100.00|1980.00|5.00|1|||||" (No es obligatorio) | ||
+ | * ID02C = "02C|" | ||
+ | * anticAutorizado_CargDesc = ID02A + "%%" + ID02B + "%%" + ID02C | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: CP_DR''''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * ID02D = "02D||nota en codicion de pago|10|1|2019-07-31|1|1|100.00|50.00|150.00|2019-07-21|2019-07-31|10.00|90.00|111222333" (No es obligatorio) | ||
+ | * ID02D = "02D|" | ||
+ | * ID02E="02E|6|4|4191110db1f3c8060a4ce34e40c6ec6541ac1bd248264624bfe1b60fdf02aea7e15c5a49969cc08f498b938a9e3cd954|2019-07-29|2019-07-29|2019-07-29|PRUE21|CUFE-SHA384|Factura de Ventas|01|||||| || ¬02E1|descipcion documento referenciado" (Condicionado) | ||
+ | * ID02E="02E|5|4|4191110db1f3c8060a4ce34e40c6ec6541ac1bd248264624bfe1b60fdf02aea7e15c5a49969cc08f498b938a9e3cd954|2019-07-29|2019-07-29|2019-07-29|PRUE21|CUFE-SHA384|Factura de Ventas|01|||||Copago|100.00|900895784 (con los campos conceptoRecaudo,monto,numeroIdentificacion) | ||
+ | * ID02E = "02E|" | ||
+ | * CP_DR = ID02D + "%%" + ID02E | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: EntMerc'''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * ID02F = "02F|2019-06-27 11:32:30|2019-06-29 11:32:30|2019-07-01 11:32:30|2019-07-01 11:32:30|1|ABCD123|||||" | ||
+ | * ID02F1 = "02F1|mail@gmail.com|1|1|Fulanito Gonzales|Pedrito Perez|Mercancia delicada|800123456|2|QWERT|PRUE|123456789|3451269|31|Juan Lopez|40012365|1|13|||||" | ||
+ | * ID02F1A = "02F1A|01|||||" | ||
+ | * ID02F1B = "02F1B|ResponsableEntrega|Sutano|1|POXBOX01|Principal|Los Chaimas|BOGOTÁ, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||" | ||
+ | * ID02F1C = "02F1C|O-12|04|||||" | ||
+ | * ID02F1D = "02F1D|TransportadorDireccion|Sutano|1|POXBOX01|Principal|Los Chaimas|BOGOTÁ, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||" | ||
+ | * ID02F2 = "02F2|direccionDespacho|Sutano|1|POXBOX01|Principal|Los Chaimas|BOGOTÁ, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||" | ||
+ | * ID02F3 = "02F3|direccionEntrega|Sutano|1|POXBOX01|Principal|Los Chaimas|BOGOTÁ, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||%02F3A|4|74|41|4|N|O|" | ||
+ | * EntMerc = ID02F + "%%" + ID02F1 + "%%" + ID02F1A + "%%" + ID02F1B + "%%" + ID02F1C + "%%" + ID02F1D + "%%" + ID02F2 + "%%" + ID02F3 | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: ImpuestosFactura'''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * ID02G = "02G|1980|01||19.00|KGM|94|376.20|0.00|||||" | ||
+ | * ID02H ="02H|01|1136.20|||||0.00" | ||
+ | * **ID02H ="02H|01|1136.20||||||" (sin el campo redondeoAplicado) | ||
+ | * ImpuestosFactura = ID02G + "%%" + ID02H | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: MPOCTE'''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * ID02J = "02J|3356|0312|123QBCV|2019-01-01|10|1|Bancolombia|Referencia de pago 1|22|982467|||||" | ||
+ | * ID02K = "02K|987654|2019-04-29 00:00:00|1233456|321456|CUFE-SHA384|1|85b5cfa4-16af-48a0-9388-501e519ed659|||||" (No es obligatorio) | ||
+ | * ID02K = "02K|" | ||
+ | * ID02N = "02N|CFR|100.00|200311301|100.00|cliente|||||" (Condicionado) | ||
+ | * ID02N = "02N|" | ||
+ | * MPOCTE = ID02J + "%%" + ID02K + "%%" + ID02N | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: TC_TCA_IA'''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * ID02L = "02L|0000001.00|0000001.00|2019-01-01|123456|USD|COP|Division|000000.50|||||" (Condicionado) | ||
+ | * ID02L = "02L|" | ||
+ | * 'ID02M = "02M|0000001.00|0000001.00|2019-01-01|123456|USD|COP|Division|000000.50|||||" (No es obligatorio) | ||
+ | * ID02M = "02M|" | ||
+ | * 'ID02I = "02I|Informacion Adicional de Pruebita" (No es obligatorio) | ||
+ | * ID02I = "02I|" | ||
+ | * TC_TCA_IA = ID02L + "%%" + ID02M + "%%" + ID02I | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: Extras'''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * Extras = "04|||443|1|pedro picapiedra|1" | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: DetalleDeFactura'''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * ID03 = "03|1|1|94|1|||ABC123||Productico de prueba 1|primer producto para enviar al web service|999|||123||||||||0||nota en el producto01||2356.20|1980.00|1980.00|1|||||94||||||descripcion2|descripcion3||" (sin el campo idEsquema) | ||
+ | * ID03 = "03|1|1|94|1|||ABC123||Productico de prueba 1|primer producto para enviar al web service|999|||123||||||||0||nota en el producto01||2356.20|1980.00|1980.00|1|||||94||||||descripcion2|descripcion3|1" (con el campo idEsquema) | ||
+ | * 'ID03A = "03A|00|descuento comercial 123456789|0|0.00|0.00|0.00|1|||||"(Descuento en el detalle) | ||
+ | * ID03C = "03C|1980.00|01||19.00|KGM|94|376.20||||||" | ||
+ | * ID03D = "03D|01|376.20|||||0.00" | ||
+ | * ID03E = "03E|03|24350| |2500000|1|WSD " | ||
+ | * 'DetalleDeFactura = ID03 + "$$" + ID03A + "$$" + ID03C + "$$" + ID03D + "$$" + ID03E (con Descuento Detalle) | ||
+ | * DetalleDeFactura = ID03 + "$$" + ID03C + "$$" + ID03D + "$$" + ID03E | ||
+ | <br> | ||
+ | |||
+ | <big>'''GESTION DE STRINGS PARA PARAMETRO: SectorSalud'''</big> | ||
+ | <br> | ||
+ | <br/> | ||
+ | * ID06= "06|01|SS-CUFE|2" | ||
+ | * ID06A= "06A|Fulano|Sutano|1|POXBOX01|Principal|Los Chaimas|Bogotá, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||" | ||
+ | <br> | ||
+ | |||
+ | <big><center><font color="Green">**Los camposGenerales se encuentran numerados según el orden establecido en la resolución 2275.</font></center></big> | ||
+ | <br> | ||
+ | <pre>ID06B = "06B|1|CODIGO_PRESTADOR"+ "%" + "06B|2||" + "%" + "06B|3||" + "%" + "06B|4||" + "%" + "06B|5||"+ "%" + "06B|6||" + "%" + "06B|7||" + "%" + "06B|8||" + "%" + "06B|9|MODALIDAD_PAGO" + "%" + "06B|10|COBERTURA_PLAN_BENEFICIOS" + "%" + "06B|11||" + "%" + "06B|12||" + "%" + "06B|13||" + "%" + "06B|14|NUMERO_CONTRATO" + "%" + "06B|15|NUMERO_POLIZA" + "%" + "06B|16|COPAGO" + "%" + "06B|17|CUOTA_MODERADORA" + "%" + "06B|18||" + "%" + "06B|19|PAGOS_COMPARTIDOS"</pre> | ||
+ | <br> | ||
+ | |||
+ | <big><center><font color="Orange">*** Varios pacientes:</font></center></big> | ||
+ | <br/> | ||
+ | <pre>ID06B = "06B|1|CODIGO_PRESTADOR"+ "%" + "06B|2||" + "%" + "06B|3||" + "%" + "06B|4||" + "%" + "06B|5||"+ "%" + "06B|6||" + "%" + "06B|7||" + "%" + "06B|8||" + "%" + "06B|9|MODALIDAD_PAGO" + "%" + "06B|10|COBERTURA_PLAN_BENEFICIOS" + "%" + "06B|11||" + "%" + "06B|12||" + "%" + "06B|13||" + "%" + "06B|14|NUMERO_CONTRATO" + "%" + "06B|15|NUMERO_POLIZA" + "%" + "06B|16|COPAGO" + "%" + "06B|17|CUOTA_MODERADORA" + "%" + "06B|18||" + "%" + "06B|19|PAGOS_COMPARTIDOS"</pre> | ||
+ | <br/> | ||
+ | <pre>ID06B1 = "06B|1|CODIGO_PRESTADOR"+ "%" + "06B|2||" + "%" + "06B|3||" + "%" + "06B|4||" + "%" + "06B|5||"+ "%" + "06B|6||" + "%" + "06B|7||" + "%" + "06B|8||" + "%" + "06B|9|MODALIDAD_PAGO" + "%" + "06B|10|COBERTURA_PLAN_BENEFICIOS" + "%" + "06B|11||" + "%" + "06B|12||" + "%" + "06B|13||" + "%" + "06B|14|NUMERO_CONTRATO" + "%" + "06B|15|NUMERO_POLIZA" + "%" + "06B|16|COPAGO" + "%" + "06B|17|CUOTA_MODERADORA" + "%" + "06B|18||" + "%" + "06B|19|PAGOS_COMPARTIDOS"</pre> | ||
+ | <br/> | ||
+ | |||
+ | <big><center><font color="Orange">Pacientes= Concatenacion de todos los Pacientes separados por el caracter "¬"= ID06B + "¬" + ID06B1</font></center></big> | ||
+ | <br/> | ||
+ | <pre>Pacientes= ID06B + "¬" + ID06B1 | ||
+ | ID06C = "06C|||5170000|1|100.50|1" | ||
+ | SectorSalud= ID06 + "%" + ID06A + "%%" + Pacientes | ||
+ | </pre> | ||
+ | <br/> | ||
+ | <font color="Blue">Adjuntos</font>= "0" | ||
+ | <br/> | ||
+ | '''Enviar (url, tokenEmp, tokenPas, datos_Cliente, Factura_Global, Antic_Autorizado_CargDesc, CondPago_DocReferencia, Entrega_Mercancia, Impuestos_Factura, MedPago_OC_TermEntrega, TasaCamb_TasaCambAlt_InfAdic, Extras, Detalle_De_Factura, Adjuntos, SectorSalud, debugMode)''' | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <includeonly>=</includeonly>== <font color="blue">Ejemplo Strings Método EnviarArchivo</font>==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | <center> | ||
+ | <pre> | ||
+ | * Url= 'http://demoemision21.thefactoryhka.com.co/ws/adjuntos/Service.svc' | ||
+ | * TokenEmp='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' | ||
+ | * TokenPas='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' | ||
+ | </pre> | ||
+ | </center> | ||
+ | * Ndocumento = “PRUE1” | ||
+ | * Enviar = “1” | ||
+ | * Formato =”pdf” | ||
+ | * Nombre = “Adjunto” | ||
+ | * Tipo = “2” | ||
+ | * Email = “integracion_fel_co@thefactoryhka.com” | ||
+ | * Ruta = “C:\Adjunto.PDF” | ||
+ | <br> | ||
+ | |||
+ | <includeonly>=</includeonly>== <font color="Blue">Personalización del Correo</font> ==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | El arreglo “extras” también permite manejar algunas funcionalidades especiales de la plataforma, como la de correo electrónico personalizado mediante el uso de los campos extensibles 11, 13 y 14. Para obtener más detalles, referirse al '''[https://felcowiki.thefactoryhka.com.co/index.php/Caracteristicas_adicionales_-_Indice_Manual_Integraci%C3%B3n_Directa#Correo_electr.C3.B3nico_personalizado MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL. PREVIA)]''' sección ''PERSONALIZACIÓN DEL CORREO'' | ||
+ | <br> | ||
+ | <br> | ||
+ | <includeonly>=</includeonly>== <font color="Blue">Generación De Notas Con Y Sin Referencia a Documentos</font> ==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | En el anexo técnico V1.8 se plantea la emisión de notas de crédito y débito bajo los siguientes escenarios: | ||
+ | <br> | ||
+ | |||
+ | * Emisión de notas de Val. previa con referencia a facturas de Val. Previa | ||
+ | * Emisión de notas de Val. previa con referencia a facturas de Val. Posterior | ||
+ | * Emisión de notas de Val. previa sin referencia | ||
+ | |||
+ | Para ello se debe tener en cuenta la estructura de la clase documentosReferenciados y el campo tipoOperación para cada escenarios. Para obtener más detalles, referirse al '''[https://felcowiki.thefactoryhka.com.co/index.php/Caracteristicas_adicionales_-_Indice_Manual_Integraci%C3%B3n_Directa#GENERACI.C3.93N_DE_NOTAS_CON_Y_SIN_REFERENCIA_A_DOCUMENTO MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL. PREVIA)]]''' sección ''GENERACIÓN DE NOTAS CON Y SIN REFERENCIA A DOCUMENTOS'' donde se ejemplifica cada uno de estos casos. | ||
+ | <br> | ||
+ | <br> | ||
+ | <includeonly>=</includeonly>== <font color="Blue">Transmisión De Documentos De Contingencia Tipo 03</font> ==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | La transmisión de documentos de contingencia está sujeta a la estructura de la clase documentosReferenciados y el campo tipoDocumento. Este escenario junto con las condiciones en las cuales aplica y la respuesta obtenida por parte de la DIAN se especifican en el '''[https://felcowiki.thefactoryhka.com.co/index.php/Caracteristicas_adicionales_-_Indice_Manual_Integraci%C3%B3n_Directa#TRANSMISI.C3.93N_DE_DOCUMENTOS_DE_CONTINGENCIA_TIPO_03_.28ATRIBUIBLE_AL_EMISOR.29 MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL. PREVIA)]''' sección ''TRANSMISIÓN DE DOCUMENTOS DE CONTINGENCIA TIPO 03 (ATRIBUIBLE AL EMISOR)''. | ||
+ | <br> | ||
+ | <br> | ||
+ | <includeonly>=</includeonly>== <font color="Blue">Radicar Documentos Electrónicos En Plataformas De Recepción</font> ==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | El XML que se debe radicar en las plataformas de recepción es el que envía nuestro servicio en la notificación de correo llamado '''AttachedDocument''' (Contenedor de Documentos), la estructura de este documento tiene por objetivo contener en un único archivo XML un documento electrónico (Invoice, CreditNote ó DebitNote) y todos los eventos (ApplicationResponse) registrados hasta la fecha, este XML también puede ser descargado a través del método '''GenerarContenedor'''. | ||
+ | <br> | ||
+ | La estructura de este archivo se ejemplifica en en el '''[https://felcowiki.thefactoryhka.com.co/index.php/Caracteristicas_adicionales_-_Indice_Manual_Integraci%C3%B3n_Directa#Radicar_documentos_electr.C3.B3nicos_en_plataformas_de_recepci.C3.B3n MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL PREVIA)]''' sección ''RADICAR DOCUMENTOS ELECTRÓNICOS EN PLATAFORMAS DE RECEPCIÓN'' | ||
+ | <br> | ||
+ | <br> | ||
+ | <includeonly>=</includeonly>== <font color="Blue">Ambiente De Habilitación</font> ==<includeonly>=</includeonly> | ||
+ | <br> | ||
+ | El ambiente de pruebas liberado (ambiente demo) corresponde a un entorno de pruebas propio del proveedor tecnológico ('''The Factory HKA''') con el objetivo de que los desarrolladores y Casas de Software puedan realizar pruebas de los ajustes realizados a los ERP bajo el modelo de facturación con validación previa. Las pruebas realizadas en este ambiente NO serán enviadas al web service de habilitación de la DIAN. | ||
+ | |||
+ | <br> | ||
+ | <br> | ||
+ | <br> | ||
+ | <br> | ||
+ | |||
+ | <center>'''<big>[[Archivo:Copyright.png|100px|sinmarco|centro|Copyright]]<font color="Blue">THE FACTORY HKA COLOMBIA</font></big> | ||
+ | <br>Copyright © 2016 The Factory HKA. Todos los derechos reservados.</center> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <br> | ||
+ | |||
+ | |||
+ | {{clear}} | ||
+ | <!-- | ||
+ | --> | ||
+ | |||
+ | |||
+ | |||
+ | <br> |
Revisión actual del 21:11 8 abr 2024
Sumario
- 1 Objetivo
- 2 Alcance
- 3 Definiciones y Términos
- 4 Procedimiento
- 5 MÉTODO ENVIAR
- 5.1 Declaración
- 5.2 String URL
- 5.3 String tokenEmpresa
- 5.4 String tokenPassword
- 5.5 String datosCliente
- 5.6 String FacturaGlobalL
- 5.7 String AnticAutCargDesc
- 5.8 String CpDr
- 5.9 String EntMerc (Este indientificador no es obligatorio)
- 5.10 String ImpuestosFactura
- 5.11 String MpOcTe
- 5.12 String TcTcaIa
- 5.13 String DetalleDeFactura
- 5.14 String Extras
- 5.15 String SectorSalud
- 5.16 String Adjunto
- 5.17 String debugMode
- 5.18 Respuesta de método Enviar
- 6 Método EnviarArchivo
- 7 Método EstadoDocumento
- 8 Método FoliosRestantes
- 9 Método EnvioCorreoAdjuntos
- 10 Método DescargarXML
- 11 Método DescargarPDF
- 12 Método GenerarContenedor
- 13 Ejemplo Strings Método Enviar
- 14 Ejemplo Strings Método EnviarArchivo
- 15 Personalización del Correo
- 16 Generación De Notas Con Y Sin Referencia a Documentos
- 17 Transmisión De Documentos De Contingencia Tipo 03
- 18 Radicar Documentos Electrónicos En Plataformas De Recepción
- 19 Ambiente De Habilitación
Objetivo
El presente manual tiene como propósito dar a conocer los detalles de los cambios a nivel del consumo de la librería HKAFACT21 para validación previa respecto a la versión del modelo de facturación de validación posterior (HKAFACT).
Alcance
Nota: En el mismo se describen cada uno de los strings que constituyen el objeto factura. Para obtener mayor información sobre la obligatoriedad de los campos (requeridos/opcionales) ver MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL. PREVIA)
Definiciones y Términos
- C++: lenguaje de programación diseñado para extender al lenguaje de programación C con mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido, con la particularidad de poder redefinir los operadores, y de crear nuevos tipos que se comporten como tipos fundamentales.
- DLL: Biblioteca de enlace dinámico o más comúnmente DLL (sigla en inglés de dynamic-link library) es el término con el que se refiere a los archivos con código ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo.
- SDK: Un kit de desarrollo de software es un conjunto de herramientas de desarrollo de software que le permite al programador o desarrollador de software crear una aplicación informática para un sistema concreto.
- Servicio Web de Integración: Servicio Web de The Factory HKA Colombia SAS puesto a disposición a propietarios de software administrativos o de gestión para la generación de factura electrónica.
Procedimiento
- Creamos una nueva carpeta.
- Descomprimimos el contenido del SDK en la capeta previamente creada.
- Copiamos la librería hkafact21.dll.
- Pegamos la librería en la carpeta System32 de Windows.
- Finalmente, declaramos las distintas funciones a utilizar de la librería.
@IMPORTANTE:
- En el caso de que al final de la cadena (Identificador), el campo se encuentre vacío se debe agregar un pipe “|” al final.
- Si el identificador no es obligatorio, este pueden enviarse con el identificador seguido de un pipe (Ejemplo: ID02A = "02A|").
- Si los identificadores son repetibles puede concatenarse con el separador “% “seguido del identificador con los campos correspondientes a la cadena que desea repetir.
MÉTODO ENVIAR
Función que permite generar el documento electrónico.
Declaración
INT Enviar (string URL, string tokenEmpresa, string tokenPassword, string DatosCliente, string FacturaGlobal, string AnticAutCargDesc, string CpDr, string EntMerc, string ImpuestosFactura, string MpOcTe, string TcTcaIa, string Extras, string DetalleDeFactura, string Adjuntos, string SectorSalud, bool debugMode)
String URL
- URL del servicio de emisión.
String tokenEmpresa
- Token asignado por la plataforma de TFHKA.
String tokenPassword
- Token asignado por la plataforma de TFHKA.
String datosCliente
- Datos que componen la información del adquiriente.
Cliente_DatosGenerales
(20 Campos, 19 pipes “|”):
ID01=01|nombreRazonSocial|tipoPersona|segundoNombre|apellido|numeroDocumento|tipoIdentificacion |email|telefono|notificar|actividadEconomicaCIIU|nombreComercial|nombreContacto |nota|numeroIdentificacionDV |telefax|Extensible1.controlInterno1| Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Cliente_Destinatario
(11 Campos, 9 pipes “|”):
ID01A=01A|CanalDeEntrega|email|fechaProgramada|mensajePersonalizado|nitProveedorReceptor |telefono|Extensible1.controlInterno1|Extensible1.controlInterno2 |Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Cliente_DetallesTributarios
(6 Campos, 5 pipes “|”):
ID01B=01B|codigoImpuesto|Extensible1.controlInterno1|Extensible1.controlInterno2 |Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Cliente_InformacionLegal
(8 Campos, 7 pipes “|”):
ID01E=01E|codigoEstablecimiento|nombreRegistroRUT|numeroIdentificacion|numeroIdentificacionDV| numeroMatriculaMercantil|prefijoFacturacion|tipoIdentificacion
Cliente_ResponsabilidadesRut
(7 Campos, 6 pipes “|”):
ID01F=01F|obligaciones|regimen|Extensible1.controlInterno1|Extensible1.controlInterno2 |Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
DireccionCliente
(30 Campos, 29 pipes “|”):
ID01C=01C|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento| correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion|lenguaje |municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso|region|subDivision|ubicación |zonaPostal|Extensible1.controlInterno1|Extensible1.controlInterno2| Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
DireccionFiscalCliente
(30 Campos, 29 pipes “|”):
ID01D=01D|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento |correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion|lenguaje |municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso|region|subDivision|ubicación |zonaPostal|Extensible1.controlInterno1|Extensible1.controlInterno2 |Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Observaciones:
- Los identificadores 01A, 01B, 01F son repetibles
String FacturaGlobalL
Datos generales del objeto factura.
FacturaGlobal
(23 Campos, 22 pipes “|”):
datos_factura=02|tipoDocumento|consecutivoDocumento|rangoNumeracion|fechaEmision|fechaVencimiento|moneda |propina|totalDescuentos|totalSinImpuestos|totalMonto|cantidadDecimales|fechaFinPeriodoFacturacion |fechaInicioPeriodoFacturacion|fechaPagoImpuestos|redondeoAplicado|tipoOperacion| totalAnticipos|totalBaseImponible|totalBrutoConImpuesto|totalCargosAplicados |totalProductos|tipoSector
String AnticAutCargDesc
Anticipos, autorizaciones, Cargos y descuentos aplicados en el comprobante.
Anticipos
(11 Campos, 10 pipes “|”):
ID02A=02A|fechaDeRecibido|fechadePago|horaDePago|id|instrucciones|montoPagado| Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Autorizado
(15 Campos, 14 pipes “|”):
ID02B=02B|email|nombreComercial|nombreContacto|nota|numeroDocumento|numeroDocumentoDV |razonSocial|telefax|telefono|tipoIdentificacion|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
cargosDescuentos
(12 Campos, 11 pipes “|”):
ID02C=02C|codigo|descripcion|indicador|monto|montoBase|porcentaje|secuencia|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Observaciones:
- Los identificadores 02A, 02B son repetibles
String CpDr
Condiciones de pago y documentos referenciados para el comprobante.
CondicionPago
(20 Campos, 19 pipes “|”):
ID02D=02D|codigoEvento|comentario|duracionPeriodo|duracionPeriodoMedida|fechaVencimiento|identificador |medioPagoAsociado|monto|montoMulta|montoPenalidad|periodoDesde|periodoHasta|porcentajeDescuento |porcentajePago|referenciaAnticipo|Extensible1.controlInterno1| Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
DocumentosReferenciados
(18 Campos, 17 pipes “|”): Puedo no enviarse 02E1
ID02E=02E|codigoEstatusDocumento|codigoInterno|cufeDocReferenciado|fecha|fechaFinValidez|fechaInicioValidez |numeroDocumento|tipoCUFE|tipoDocumento|tipoDocumentoCodigo|Extensible1.controlInterno1| Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor|conceptoRecaudo| monto|numeroIdentificacion ¬02E1|descripción
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Observaciones:
- Los identificadores 02D, 02E son repetibles
String EntMerc (Este indientificador no es obligatorio)
Datos referentes a la entrega de la mercancía.Anticipos, autorizaciones, Cargos y descuentos aplicados en el comprobante.
entregaMercancia
ID02F=02F|fechaEfectivaSalida|fechaEstimada|fechaReal|fechaSolicitada|identificacionTransporte| matriculaTransporte|Extensible1.controlInterno1|Extensible1.controlInterno2| Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
datosTransportista
ID02F1=02F1|email|indicadordeAtencion|indicadordeCuidado|nombreContacto|nombreResponsableEntrega |nota|numeroIdentificacion|numeroIdentificacionDV|numeroMatriculaMercantil|prefijoFacturacion |telefax|telefono|tipoIdentificacion|transportadorNombre|transportadorNumeroDocumento |transportadorNumeroDocumentoDV|transportadorTipoIdentificacion|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
detallesTributariosTransportista
ID02F1A=02F1A|codigoImpuesto|Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre |Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
direccionTransportista
ID02F1B=02F1B|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento |correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion |lenguaje|municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso|region |subDivision|ubicación|zonaPostal|Extensible1.controlInterno1|Extensible1.controlInterno2 |Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
responsabilidadRUT
ID02F1C=02F1C|obligaciones|regimen|Extensible1.controlInterno1|Extensible1.controlInterno2 |Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
transportadorDireccion
ID02F1D=02F1D|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad |codigoDepartamento|correccionHusoHorario|departamento|departamentoOrg |direccion|distrito|habitacion|lenguaje|municipio|nombreEdificio|numeroEdificio |numeroParcela|pais|piso|region|subDivision|ubicación|zonaPostal|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
direccionDespacho
ID02F2=02F2|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad |codigoDepartamento|correccionHusoHorario|departamento|departamentoOrg |direccion|distrito|habitacion|lenguaje|municipio|nombreEdificio|numeroEdificio |numeroParcela|pais|piso|region|subDivision|ubicación|zonaPostal| Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
direccionEntrega
ID02F3=02F3aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad|codigoDepartamento |correccionHusoHorario|departamento|departamentoOrg|direccion|distrito|habitacion |lenguaje|municipio|nombreEdificio|numeroEdificio|numeroParcela|pais|piso |region|subDivision|ubicación|zonaPostal|Extensible1.controlInterno1| Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Si se envía:
EntMerc = ID02F%%ID02F1%%
Si no se desea envía:
EntMerc = ""
Observaciones:
- Los identificadores ID02F1A, 02F1B1, 02F1C, 02F1D1, 02F2A, 02F3A son repetibles
String ImpuestosFactura
Esta cadena contiene la información referente a los impuestos aplicados en el documento.
ImpuestosGenerales
(13 Campos, 12 pipes “|”):
ID02G=02G|baseImponibleTOTALImp|codigoTOTALImp|controlInterno|porcentajeTOTALImp |unidadMedida|unidadMedidaTributo|valorTOTALImp|valorTributoUnidad|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
ImpuestosTotales
(8 Campos, 7 pipes “|”):
ID02H=02H|codigoTOTALImp|montoTotal|Extensible1.controlInterno1|Extensible1.controlInterno2 |Extensible1.nombre|Extensible1.valor|redondeoAplicado
Nota: En caso de enviar el campo redondeoAplicado vacío se tomará por defecto 0.00
Nota: Si el campo redondeoAplicado se encuentra vacío debe enviar un pipe (|) al final de la cadena.
Obsercaciones:
- Los identificadores ID02G, ID02H son repetibles
String MpOcTe
Esta cadena contiene la información referente a Medios de pagos, Orden de compra y términos de entrega.
MediosPago
(15 Campos, 14 pipes “|”):
ID02J=02J|codigoBanco|codigoCanalPago|codigoReferencia|fechaDeVencimiento|medioPago|metodoDePago |nombreBanco|numeroDeReferencia|numeroDias|numeroTransferencia|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Orden_Compra
(12 Campos, 11 pipes “|”):
ID02K=02K|codigoCliente|fecha|numeroOrden|numeroPedido|tipoCUFE|tipoOrden |uuid|Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Terminos_Entrega
(10 Campos, 9 pipes “|”):
ID02N=02N|codigoCondicionEntrega|costoTransporte|identificacion|monto |responsableEntrega|Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
Observaciones:
- Los identificadores ID02J, ID02K son repetibles
String TcTcaIa
Esta cadena contiene la información referente a la tasa de cambio, tasa de cambio alternativa e información adicional.
TasaCambio
(13 Campos, 12 pipes “|”):
ID02L=02L|baseMonedaDestino|baseMonedaOrigen|fechaDeTasaDeCambio|indicadorDeTasa |monedaDestino|monedaOrigen|operadorCalculo|tasaDeCambio|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
TasaCambioAlternativa
(13 Campos, 12 pipes “|”):
ID02M=02M|baseMonedaDestino|baseMonedaOrigen|fechaDeTasaDeCambio|indicadorDeTasa |monedaDestino|monedaOrigen|operadorCalculo|tasaDeCambio|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
InformacionAdicional
(2 Campos, 1 pipes “|”):
ID02I=02I|Texto
Observaciones:
- Los identificadores ID02I son repetibles
String DetalleDeFactura
Esta cadena contiene la información referente a los items
DetalleDeFactura
(43 Campos, 42 pipes “|”):
ID03=03|cantidaPorEmpaque|CantidadReal|CantidadRealUnidadMedida|cantidadUnidades |codigoFabricante|codigoIdentificacionPais|codigoProducto|codigoTipoPrecio|descripcion |descripcionTecnica|estandarCodigo|estandarCodigoID|estandarCodigoIdentificador|estandarCodigoProducto |estandarOrganizacion|estandarSubcodigoProducto|mandatorioNumeroIdentificacion|mandatorioNumeroIdentificacionDV |mandatorioTipoIdentificacion|marca|modelo|muestraGratis|NombreFabricante|nota|precioReferencia |precioTotal|precioTotalSinImpuestos|PrecioVentaUnitario|secuencia|seriales|subCodigoFabricante |subcodigoProducto|tipoAIU|unidadMedida|informacionAdicional|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor|descripcion2|descripcion3| idEsquema
Nota: Si envía vacío el campo idEsquema se debe enviar un pipe (|) al final de la cadena
DF_CargosDescuentos
(12 Campos, 11 pipes “|”):
ID03A=03A|codigo|descripcion|indicador|monto|montoBase|porcentaje|secuencia |Extensible1.controlInterno1|Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
DF_ImpDet
(13 Campos, 12 pipes “|”):
ID03C=03C|baseImponibleTOTALImp|codigoTOTALImp|controlInterno|porcentajeTOTALImp |unidadMedida|unidadMedidaTributo|valorTOTALImp|valorTributoUnidad|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
Nota: Si Extensible1.valor se debe enviar un pipe (|) al final de la cadena
DF_ImpTot
(8 Campos, 7 pipes “|”):
ID03D=03D|codigoTOTALImp|montoTotal|Extensible1.controlInterno1|Extensible1.controlInterno2 |Extensible1.nombre|Extensible1.valor|redondeoAplicado
Nota: En caso de enviar el campo redondeoAplicado vacio se tomara por defecto 0.00
Nota: Si el campo redondeoAplicado se encuentra vacío debe enviar un pipe (|) al final de la cadena
Observaciones:
- Separación entre campos del ítem: $$
DF_InformacionAdicional
(7 Campos, 6 pipes “|”):
ID03E=03E|nombre|valor|código|cantidad|secuencia|unidadMedidaTransporte
Nota:Si el campo unidadMedidaTransporte se encuentra vacío debe enviar un pipe (|) al final de la cadena
Observaciones:
- Separación entre ítems: ¬(Ejemplo: item1¬item2)
String Extras
Esta cadena contiene los campos extras que se deseen agregar al objeto factura.
Observaciones:
- El string Extras es repetible.
String SectorSalud
Esta cadena contiene la información referente al sector salud:
sectorSalud
(4 Campos, 3 pipes “|”):
ID06=06|TipoIdentificacion|IdPersonalizacion|TipoEscenario
DireccionResidencia
(30 Campos, 29 pipes “|”):
ID06A=06A|aCuidadoDe|aLaAtenciónDe|bloque|buzon|calle|calleAdicional|ciudad |codigoDepartamento|correccionHusoHorario|departamento|departamentoOrg|direccion |distrito|habitacion|lenguaje|municipio|nombreEdificio|numeroEdificio|numeroParcela |pais|piso|region|subDivision|ubicación|zonaPostal|Extensible1.controlInterno1 |Extensible1.controlInterno2|Extensible1.nombre|Extensible1.valor
CamposGenerales
(3 Campos, 2 pipes “|”):
Esta cadena contiene la información referente a los Pacientes.
ID06B=06B|Nombre|Valor
Nota:Los camposGenerales se encuentran numerados según el orden establecido en la resolución. Para los campos que se envian vacios se debe finalizar la cadena con pipe (|) adicional.
- El string CamposGenerales es repetible.
Sextras
(7 Campos, 6 pipes “|”):
ID06C=06C|controlInterno1|controlInterno2|nombre|pdf|valor|xml
- El string Extras es repetible.
String Adjunto
Caracter que establece si el documento que se emite contendrá o no adjuntos. Valores posibles:
- “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 solo XML sin representación Gráfica estándar por The Factory HKA.
- “11” Admite archivos adjuntos. Se genera solo XML sin representación gráfica estándar por The Factory HKA.
String debugMode
Flag para indicar a la dll que registre el log de debug en pruebas.
Respuesta de método Enviar
Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult.txt con la siguiente estructura:
- 01|codigo|consecutivoDocumento|cufe|fechaRespuesta|hash|mensaje|resultado|tipoCufe|esValidoDian|nombre|fechaAceptacionDIAN
- esValidoDian =1 True (Documento Aceptado) - esValidoDian = 0 False (Documento no Aceptado)
- 01A|mensajeValidacion
- 01B|reglasValidacionDIAN
Nota:El string del QR se escribe en un archivo de texto llamado string_QR.txt
Nota:La dll también dispone del método EnviarCustom, similar al anterior con la diferencia de que este método permite generar el archivo plano de resultado con un nombre diferente y en un directorio distinto al local mediante el parámetro NombreArchivo. Para más detalles ver código ejemplo suministrado en el SDK.
Método EnviarArchivo
Función que permite adjuntar o enviar archivos (anexos) por email durante la emisión del documento electrónico. Este método se ejecuta después de consumir el método Enviar con el parámetro adjuntos en “1” o en “11”.
Declaración
INT EnviarArchivo (string URLAdj, string tokenEmpresa, string tokenPassword, string ndocumento, string enviar, string formato, string nombre, string tipo, string email, string ruta, bool debugMode).
String URLAdj
- URL del servicio de carga de Adjuntos (Sin ?wsdl).
String tokenEmpresa
- Token asignado por la plataforma de TFHKA.
String tokenPassword
- Token asignado por la plataforma de TFHKA.
String ndocumento
Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento al cual se adjuntará el archivo).
String enviar
Parámetro que indica la finalización de la carga de adjuntos. Posee dos valores:
- “0” Adjunta el archivo y lo asocia al documento electrónico sin enviar el email al Adquiriente.
- “1” Adjunta el archivo y lo asocia al documento electrónico y envía el email al Adquiriente.
String formato
Extension del archivo adjunto, formatos permitidos: png, bmp, jpg, pdf, doc, docx, xsl, xlsx, ppt, pptx.
String nombre
Nombre que tomará el archive adjunto.
String tipo
“1” Declaramos en la Clase Adjunto (Class.Adjunto) en Tipo "1" cuando queremos generar la representación gráfica obtenida por el ERP.
“2” Declaramos en la Clase Adjunto (Class.Adjunto) en Tipo "2" Cuando se van a enviar otros documentos adicionales a la factura, es decir, que estos documentos van a quedar en una cola sin que se haga ningún tipo de envío sin antes indicárselo a la plataforma. Para esto, el parámetro <enviar> se debe declarar en cero '0', para indicarle a nuestra plataforma que sincronice el adjunto pero sin enviarlo. Finalmente cuando se declare el último adjunto se debe declarar el parámetro <enviar> en "1", así nuestra plataforma entiende que es el último adjunto, por tanto envía este último documento más los anteriores que se encontraban en la cola.
String email
Correo al cual se dese enviar el XML (AttachedDocument), la Representación Gráfica y los anexos o adjuntos.
String ruta
Cadena de caracteres con la ubicación del archivo que será enviado a través del servicio.
String debugMode
Flag para indicar a la dll que registre el log de debug en pruebas.
@IMPORTANTE:
Al emitir un documento electrónico con el parámetro Adjunto en “1” u “11” el email no se enviará al adquiriente hasta no consumir el método EnviarArchivo.
Respuesta de método EnviarArchivo
Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult.txt con la siguiente estructura:
- 01|codigo| mensaje|resultado
Método EstadoDocumento
Función que permite consultar el estado de un documento emitido previamente.
Declaración
INT EstadoDocumento (string URL, string tokenEmpresa, string tokenPassword, string documento, bool debugMode)
String URLAdj
- URL del servicio de carga de Adjuntos (Sin ?wsdl).
String tokenEmpresa
- Token asignado por la plataforma de TFHKA.
String tokenPassword
- Token asignado por la plataforma de TFHKA.
String ndocumento
Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento al cual se adjuntará el archivo).
String debugMode
Flag para indicar a la dll que registre el log de debug en pruebas.
Respuesta método EstadoDocumento
Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura:Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult.txt con la siguiente estructura:
- 01|codigo|estatusDocumento|ambiente|cadenaCufe|consecutivo|cufe|descripcionDocumento|descripcionEstatusDocumento|entregaMetodoDIAN
- |esValidoDIAN|estatusDocumento|fechaDocumento|mensaje|mensajeDocumento|poseeAdjuntos|poseeRepresentacionGrafica|resultado
- |tipoCufe|tipoDocumento|trackID|fechaAceptacionDIAN
- esValidoDian =1 True (Documento Aceptado) - esValidoDian = 0 False (Documento no Aceptado)
- 01A|ambienteDIAN|codigo|comentario|cufe|descripcionEvento|emisorNumeroDocumento|emisorNumeroDocumentoDV|emisorRazonSocial
- |emisorTipoIdentificacion|fechaEmision|fechaRecepcion|hash|idPerfilDIAN|mensaje|nombreArchivoXML|nota|numeroDelEvento
- |receptorNumeroDocumento|receptorNumeroDocumentoDV|receptorRazonSocial|receptorTipoIdentificacion|resultado|tipoCufe|
- tipoEvento|versionUBL|xml
- 01A1|codigoInterno1|codigoInterno2|nombre|valor
- 01B|canalDeEntrega|email|entregaEstatus|entregaEstatusDescripcion|entregaFecha|fechaProgramada|mensajePersonalizado
- |nitProveedorReceptor|recepcionEmailComentario|recepcionEmailEstatus|recepcionEmailFecha|recepcionEmailIPAddress|telefono
- 01C|reglasValidacionDIAN
Nota:El string del QR se escribe en un archivo de texto llamado string_QR.txt
Nota:La dll también dispone del método EstadoDocumentoCustom, similar al anterior con la diferencia de que este método permite generar el archivo plano de resultado con un nombre diferente y en un directorio distinto al local mediante el parámetro NombreArchivo. Para más detalles ver código ejemplo suministrado en el SDK.
Método FoliosRestantes
Función que permite consultar la cantidad de folios disponibles
Declaración
INT FoliosRestantes (string URL, string tokenEmpresa, string tokenPassword, string otro, bool debugMode)
String URLAdj
- URL del servicio de carga de Adjuntos (Sin ?wsdl).
String tokenEmpresa
- Token asignado por la plataforma de TFHKA.
String tokenPassword
- Token asignado por la plataforma de TFHKA.
<bi> String otro
Actualmente en desuso, campo reservado para futuras versiones.
String debugMode
Flag para indicar a la dll que registre el log de debug en pruebas.
Respuesta método FoliosRestantes:
Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura:
- código|foliosRestantes|mensaje|resultados.
Método EnvioCorreoAdjuntos
Función que permite reenviar el correo de notificación que se emite cuando se genera un documento electrónico con adjuntos
Declaración
INT EnvioCorreoAdjuntos (string URL, string tokenEmpresa, string tokenPassword, string documento, string correo, string adjunto, bool debugMode)
String URLAdj
- URL del servicio de carga de Adjuntos (Sin ?wsdl).
String tokenEmpresa
- Token asignado por la plataforma de TFHKA.
String tokenPassword
- Token asignado por la plataforma de TFHKA.
String documento
Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento que se quiere reenviar).
String correo
Correo al cual se dese enviar el XML (AttachedDocument) y la Representación Gráfica Estándar si aplica.
String adjunto
Carácter que establece si el documento será reenviado con adjuntos. Valores posibles:
- “0” Realiza el reenvió del correo sin adjuntos
- “1” Realiza el reenvió del correo con los adjuntos almacenados durante la emisión del documento.
String debugMode
Flag para indicar a la dll que registre el log de debug en pruebas.
Respuesta método EnvioCorreoAdjuntos
Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura:
- código|mensaje|resultados.
'Nota:La dll también dispone del método EnvioCorreo, similar al anterior con la diferencia de que este no contiene el parámetro adjunto.
Método DescargarXML
Función que permite descargar el XML Fiscal de un documento emitido previamente (solo el documento electrónico Invoice, CreditNote y DebitNote). El archivo XML es creado en el directorio local de la aplicación.
Declaración
INT DescargarXML (string URL, string tokenEmpresa, string tokenPassword, string documento, bool debugMode))
String URLAdj
- URL del servicio de carga de Adjuntos (Sin ?wsdl).
String tokenEmpresa
- Token asignado por la plataforma de TFHKA.
String tokenPassword
- Token asignado por la plataforma de TFHKA.
String documento
Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento que se quiere consultar).
String debugMode
Flag para indicar a la dll que registre el log de debug en pruebas.
Respuesta método DescargarXML
Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura:
código|mensaje|resultados.
Método DescargarPDF
Función que permite descargar la Representación Gráfica Estándar de un documento emitido previamente. El archivo PDF es creado en el directorio local de la aplicación.
Declaración
INT DescargarPDF (string URL, string tokenEmpresa, string tokenPassword, string documento, bool debugMode)
String URLAdj
- URL del servicio de carga de Adjuntos (Sin ?wsdl).
String tokenEmpresa
- Token asignado por la plataforma de TFHKA.
String tokenPassword
- Token asignado por la plataforma de TFHKA.
String documento
Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento que se quiere consultar).
String debugMode
Flag para indicar a la dll que registre el log de debug en pruebas.
Respuesta método DescargarPDF
Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura:
código|mensaje|resultados.
@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 GenerarContenedor
Función que permite descargar el XML AttachedDocument de un documento emitido previamente (Este archivo contiene el XML de un documento electrónico (Invoice, CreditNote ó DebitNote) y todos los eventos (ApplicationResponse) generados hasta la fecha). El archivo XML es creado en el directorio local de la aplicación.
Declaración
INT GenerarContenedor (string URL, string tokenEmpresa, string tokenPassword, string documento, bool debugMode)
String URLAdj
- URL del servicio de carga de Adjuntos (Sin ?wsdl).
String tokenEmpresa
- Token asignado por la plataforma de TFHKA.
String tokenPassword
- Token asignado por la plataforma de TFHKA.
String documento
Prefijo y consecutivo del Documento electrónico concatenado sin separadores (Documento que se quiere consultar).
String debugMode
Flag para indicar a la dll que registre el log de debug en pruebas.
Respuesta método GenerarContenedor
Las respuestas se darán en un archivo de texto plano con nombre hkafact21fresult con la siguiente estructura:
código|mensaje|Fecha|Hash|resultados.
Ejemplo Strings Método Enviar
* Url= http://demoemision21.thefactoryhka.com.co/ws/v1.0/Service.svc ' * TokenEmp='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' * TokenPas='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
GESTION DE STRINGS PARA PARAMETRO: datos_Cliente
- ID01="01|Cristche|1|Evardho|ParedesMarquina|746260|31|email@gmail.com|3185853106|SI|0812|CHEV DEV|Cristche Paredes|cliente importante|0|123123123|||||"
- ID01A = "01A|0|email1@thefactoryhka.com;email2@gmail.com|2019-07-31 13:01:01|Mensaje programadito||1235467|||||"
- ID01B = "01B|01|||||"
- ID01E = "01E|1|Cristche Paredes|746260|0|456456|FE1|31"
- ID01F = "01F|O-13|04|||||"
- ID01C = "01C|Fulano|Sutano|1|POXBOX01|Principal|Los Chaimas|Bogotá, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los :Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||"
- ID01D = "01D|Fulano|Sutano|1|POXBOX01|Principal|Los Chaimas|Bogotá, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los :Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||"
- datos_Cliente = ID01 + "%" + ID01A + "%" + ID01B + "%" + ID01E + "%" + ID01F + "%%" + ID01C + "%%" + ID01D
GESTION DE STRINGS PARA PARAMETRO: datos_factura
- datos_factura= " 02|01|CONSECUTIVO|RANGO-CAMPODESDE|2019-11-29 00:00:00|2019-10-29|COP|0.00|0.00|5980.00|7116.20|2||||0.00|10|0.00|5980.00|7116.20|0.00|1|"
- **datos_factura ="02|01|CONSECUTIVO|RANGO-CAMPODESDE|2019-11-29 00:00:00|2019-10-29|COP|0.00|0.00|5980.00|7116.20|2||||0.00|10|0.00|5980.00|7116.20|0.00|1|2" (Con el campo tipoSector)
GESTION DE STRINGS PARA PARAMETRO: anticAutorizado_CargDesc'
- ID02A = "02A|2019-07-21|2019-07-21|12:12:12|1|instruccion|||||" (No es obligatorio)
- ID02A = "02A|"
- ID02B = "02B|" (No es obligatorio para nada)
- ID02B = "02B|"
- ID02C = "02C|11|descripcion del descuento|0|100.00|1980.00|5.00|1|||||" (No es obligatorio)
- ID02C = "02C|"
- anticAutorizado_CargDesc = ID02A + "%%" + ID02B + "%%" + ID02C
GESTION DE STRINGS PARA PARAMETRO: CP_DR'
- ID02D = "02D||nota en codicion de pago|10|1|2019-07-31|1|1|100.00|50.00|150.00|2019-07-21|2019-07-31|10.00|90.00|111222333" (No es obligatorio)
- ID02D = "02D|"
- ID02E="02E|6|4|4191110db1f3c8060a4ce34e40c6ec6541ac1bd248264624bfe1b60fdf02aea7e15c5a49969cc08f498b938a9e3cd954|2019-07-29|2019-07-29|2019-07-29|PRUE21|CUFE-SHA384|Factura de Ventas|01|||||| || ¬02E1|descipcion documento referenciado" (Condicionado)
- ID02E="02E|5|4|4191110db1f3c8060a4ce34e40c6ec6541ac1bd248264624bfe1b60fdf02aea7e15c5a49969cc08f498b938a9e3cd954|2019-07-29|2019-07-29|2019-07-29|PRUE21|CUFE-SHA384|Factura de Ventas|01|||||Copago|100.00|900895784 (con los campos conceptoRecaudo,monto,numeroIdentificacion)
- ID02E = "02E|"
- CP_DR = ID02D + "%%" + ID02E
GESTION DE STRINGS PARA PARAMETRO: EntMerc
- ID02F = "02F|2019-06-27 11:32:30|2019-06-29 11:32:30|2019-07-01 11:32:30|2019-07-01 11:32:30|1|ABCD123|||||"
- ID02F1 = "02F1|mail@gmail.com|1|1|Fulanito Gonzales|Pedrito Perez|Mercancia delicada|800123456|2|QWERT|PRUE|123456789|3451269|31|Juan Lopez|40012365|1|13|||||"
- ID02F1A = "02F1A|01|||||"
- ID02F1B = "02F1B|ResponsableEntrega|Sutano|1|POXBOX01|Principal|Los Chaimas|BOGOTÁ, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||"
- ID02F1C = "02F1C|O-12|04|||||"
- ID02F1D = "02F1D|TransportadorDireccion|Sutano|1|POXBOX01|Principal|Los Chaimas|BOGOTÁ, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||"
- ID02F2 = "02F2|direccionDespacho|Sutano|1|POXBOX01|Principal|Los Chaimas|BOGOTÁ, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||"
- ID02F3 = "02F3|direccionEntrega|Sutano|1|POXBOX01|Principal|Los Chaimas|BOGOTÁ, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||%02F3A|4|74|41|4|N|O|"
- EntMerc = ID02F + "%%" + ID02F1 + "%%" + ID02F1A + "%%" + ID02F1B + "%%" + ID02F1C + "%%" + ID02F1D + "%%" + ID02F2 + "%%" + ID02F3
GESTION DE STRINGS PARA PARAMETRO: ImpuestosFactura
- ID02G = "02G|1980|01||19.00|KGM|94|376.20|0.00|||||"
- ID02H ="02H|01|1136.20|||||0.00"
- **ID02H ="02H|01|1136.20||||||" (sin el campo redondeoAplicado)
- ImpuestosFactura = ID02G + "%%" + ID02H
GESTION DE STRINGS PARA PARAMETRO: MPOCTE
- ID02J = "02J|3356|0312|123QBCV|2019-01-01|10|1|Bancolombia|Referencia de pago 1|22|982467|||||"
- ID02K = "02K|987654|2019-04-29 00:00:00|1233456|321456|CUFE-SHA384|1|85b5cfa4-16af-48a0-9388-501e519ed659|||||" (No es obligatorio)
- ID02K = "02K|"
- ID02N = "02N|CFR|100.00|200311301|100.00|cliente|||||" (Condicionado)
- ID02N = "02N|"
- MPOCTE = ID02J + "%%" + ID02K + "%%" + ID02N
GESTION DE STRINGS PARA PARAMETRO: TC_TCA_IA
- ID02L = "02L|0000001.00|0000001.00|2019-01-01|123456|USD|COP|Division|000000.50|||||" (Condicionado)
- ID02L = "02L|"
- 'ID02M = "02M|0000001.00|0000001.00|2019-01-01|123456|USD|COP|Division|000000.50|||||" (No es obligatorio)
- ID02M = "02M|"
- 'ID02I = "02I|Informacion Adicional de Pruebita" (No es obligatorio)
- ID02I = "02I|"
- TC_TCA_IA = ID02L + "%%" + ID02M + "%%" + ID02I
GESTION DE STRINGS PARA PARAMETRO: Extras
- Extras = "04|||443|1|pedro picapiedra|1"
GESTION DE STRINGS PARA PARAMETRO: DetalleDeFactura
- ID03 = "03|1|1|94|1|||ABC123||Productico de prueba 1|primer producto para enviar al web service|999|||123||||||||0||nota en el producto01||2356.20|1980.00|1980.00|1|||||94||||||descripcion2|descripcion3||" (sin el campo idEsquema)
- ID03 = "03|1|1|94|1|||ABC123||Productico de prueba 1|primer producto para enviar al web service|999|||123||||||||0||nota en el producto01||2356.20|1980.00|1980.00|1|||||94||||||descripcion2|descripcion3|1" (con el campo idEsquema)
- 'ID03A = "03A|00|descuento comercial 123456789|0|0.00|0.00|0.00|1|||||"(Descuento en el detalle)
- ID03C = "03C|1980.00|01||19.00|KGM|94|376.20||||||"
- ID03D = "03D|01|376.20|||||0.00"
- ID03E = "03E|03|24350| |2500000|1|WSD "
- 'DetalleDeFactura = ID03 + "$$" + ID03A + "$$" + ID03C + "$$" + ID03D + "$$" + ID03E (con Descuento Detalle)
- DetalleDeFactura = ID03 + "$$" + ID03C + "$$" + ID03D + "$$" + ID03E
GESTION DE STRINGS PARA PARAMETRO: SectorSalud
- ID06= "06|01|SS-CUFE|2"
- ID06A= "06A|Fulano|Sutano|1|POXBOX01|Principal|Los Chaimas|Bogotá, D.C.|11|-66.01|Bogotá|Soporte|Kr #71D 76-15|Los Andes|Principal|es|11001|Chaima|16a|78|CO|2|sur|parcela||111061|||||"
ID06B = "06B|1|CODIGO_PRESTADOR"+ "%" + "06B|2||" + "%" + "06B|3||" + "%" + "06B|4||" + "%" + "06B|5||"+ "%" + "06B|6||" + "%" + "06B|7||" + "%" + "06B|8||" + "%" + "06B|9|MODALIDAD_PAGO" + "%" + "06B|10|COBERTURA_PLAN_BENEFICIOS" + "%" + "06B|11||" + "%" + "06B|12||" + "%" + "06B|13||" + "%" + "06B|14|NUMERO_CONTRATO" + "%" + "06B|15|NUMERO_POLIZA" + "%" + "06B|16|COPAGO" + "%" + "06B|17|CUOTA_MODERADORA" + "%" + "06B|18||" + "%" + "06B|19|PAGOS_COMPARTIDOS"
ID06B = "06B|1|CODIGO_PRESTADOR"+ "%" + "06B|2||" + "%" + "06B|3||" + "%" + "06B|4||" + "%" + "06B|5||"+ "%" + "06B|6||" + "%" + "06B|7||" + "%" + "06B|8||" + "%" + "06B|9|MODALIDAD_PAGO" + "%" + "06B|10|COBERTURA_PLAN_BENEFICIOS" + "%" + "06B|11||" + "%" + "06B|12||" + "%" + "06B|13||" + "%" + "06B|14|NUMERO_CONTRATO" + "%" + "06B|15|NUMERO_POLIZA" + "%" + "06B|16|COPAGO" + "%" + "06B|17|CUOTA_MODERADORA" + "%" + "06B|18||" + "%" + "06B|19|PAGOS_COMPARTIDOS"
ID06B1 = "06B|1|CODIGO_PRESTADOR"+ "%" + "06B|2||" + "%" + "06B|3||" + "%" + "06B|4||" + "%" + "06B|5||"+ "%" + "06B|6||" + "%" + "06B|7||" + "%" + "06B|8||" + "%" + "06B|9|MODALIDAD_PAGO" + "%" + "06B|10|COBERTURA_PLAN_BENEFICIOS" + "%" + "06B|11||" + "%" + "06B|12||" + "%" + "06B|13||" + "%" + "06B|14|NUMERO_CONTRATO" + "%" + "06B|15|NUMERO_POLIZA" + "%" + "06B|16|COPAGO" + "%" + "06B|17|CUOTA_MODERADORA" + "%" + "06B|18||" + "%" + "06B|19|PAGOS_COMPARTIDOS"
Pacientes= ID06B + "¬" + ID06B1 ID06C = "06C|||5170000|1|100.50|1" SectorSalud= ID06 + "%" + ID06A + "%%" + Pacientes
Adjuntos= "0"
Enviar (url, tokenEmp, tokenPas, datos_Cliente, Factura_Global, Antic_Autorizado_CargDesc, CondPago_DocReferencia, Entrega_Mercancia, Impuestos_Factura, MedPago_OC_TermEntrega, TasaCamb_TasaCambAlt_InfAdic, Extras, Detalle_De_Factura, Adjuntos, SectorSalud, debugMode)
Ejemplo Strings Método EnviarArchivo
* Url= 'http://demoemision21.thefactoryhka.com.co/ws/adjuntos/Service.svc' * TokenEmp='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' * TokenPas='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
- Ndocumento = “PRUE1”
- Enviar = “1”
- Formato =”pdf”
- Nombre = “Adjunto”
- Tipo = “2”
- Email = “integracion_fel_co@thefactoryhka.com”
- Ruta = “C:\Adjunto.PDF”
Personalización del Correo
El arreglo “extras” también permite manejar algunas funcionalidades especiales de la plataforma, como la de correo electrónico personalizado mediante el uso de los campos extensibles 11, 13 y 14. Para obtener más detalles, referirse al MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL. PREVIA) sección PERSONALIZACIÓN DEL CORREO
Generación De Notas Con Y Sin Referencia a Documentos
En el anexo técnico V1.8 se plantea la emisión de notas de crédito y débito bajo los siguientes escenarios:
- Emisión de notas de Val. previa con referencia a facturas de Val. Previa
- Emisión de notas de Val. previa con referencia a facturas de Val. Posterior
- Emisión de notas de Val. previa sin referencia
Para ello se debe tener en cuenta la estructura de la clase documentosReferenciados y el campo tipoOperación para cada escenarios. Para obtener más detalles, referirse al MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL. PREVIA)] sección GENERACIÓN DE NOTAS CON Y SIN REFERENCIA A DOCUMENTOS donde se ejemplifica cada uno de estos casos.
Transmisión De Documentos De Contingencia Tipo 03
La transmisión de documentos de contingencia está sujeta a la estructura de la clase documentosReferenciados y el campo tipoDocumento. Este escenario junto con las condiciones en las cuales aplica y la respuesta obtenida por parte de la DIAN se especifican en el MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL. PREVIA) sección TRANSMISIÓN DE DOCUMENTOS DE CONTINGENCIA TIPO 03 (ATRIBUIBLE AL EMISOR).
Radicar Documentos Electrónicos En Plataformas De Recepción
El XML que se debe radicar en las plataformas de recepción es el que envía nuestro servicio en la notificación de correo llamado AttachedDocument (Contenedor de Documentos), la estructura de este documento tiene por objetivo contener en un único archivo XML un documento electrónico (Invoice, CreditNote ó DebitNote) y todos los eventos (ApplicationResponse) registrados hasta la fecha, este XML también puede ser descargado a través del método GenerarContenedor.
La estructura de este archivo se ejemplifica en en el MANUAL DE INTEGRACION DIRECTA (EMISIÓN - VAL PREVIA) sección RADICAR DOCUMENTOS ELECTRÓNICOS EN PLATAFORMAS DE RECEPCIÓN
Ambiente De Habilitación
El ambiente de pruebas liberado (ambiente demo) corresponde a un entorno de pruebas propio del proveedor tecnológico (The Factory HKA) con el objetivo de que los desarrolladores y Casas de Software puedan realizar pruebas de los ajustes realizados a los ERP bajo el modelo de facturación con validación previa. Las pruebas realizadas en este ambiente NO serán enviadas al web service de habilitación de la DIAN.
Copyright © 2016 The Factory HKA. Todos los derechos reservados.