Facturacion Electronica Costa Rica

4,685 views
Skip to first unread message

Interak

unread,
Nov 16, 2017, 9:57:25 PM11/16/17
to Comunidad de Visual Foxpro en Español
Buen día a todos.

Consulta en especial para los intengrantes del grupo en Costa Rica. Como va el tema de factura electrónica? Ya lograron desarrollar en sus sistemas de Visual Fox las facturas electrónicas? He intentado averiguar desde hace varios días sobre estos temas pero me es dificil encontrar información valiosa y entender como hago o en donde para comprobar que los documentos generados por mi sistema son correctos y aprobados por Hacienda y que los formatos están bien? Esas y mas consultas, como ven estoy un poco perdido en este tema. Quién pueda guiarme un poco se lo agradezco.
Saludos...

Geovanny Quirós Castillo

unread,
Nov 17, 2017, 8:58:11 AM11/17/17
to publice...@googlegroups.com
Buenos días,
Puede empezar por ahí.
Saludos,

Jose Carlos Aguilar

unread,
Nov 17, 2017, 9:11:49 AM11/17/17
to Comunidad de Visual Foxpro en Español

Interak

unread,
Nov 17, 2017, 2:35:42 PM11/17/17
to Comunidad de Visual Foxpro en Español
Gracias por responder.

Yo el día de hoy llamé para informarme y me dieron una dirección correo electrónico para evacuar las dudas. Conforme vayan respondiendo y aclarando cada punto lo iré posteando aquí para los que estén interesados.

Aprovechando, hay alguno en el grupo que haya logrado implementar la factura electrónica en Costa Rica con un sistema desarrollado con el zorro?

Saludos... 

Hernan Serrano

unread,
Dec 23, 2017, 9:12:35 AM12/23/17
to publice...@googlegroups.com
Hasta ahora lo que tengo es este codigo. 

Lo que pasa es que con lo que me enviaron de hacienda me da que el error que no hay autorizacion.
Tal vez alguno de ustedes pueda ayudar y lo compartimos si encontramos la solucion

*Autenticación y Autorización
*De acuerdo a la documentación referida previamente el primer paso para conectarse a la plataforma es obtener un Open ID Connect (OIDC.) Token que funciona sobre el estándar de OAuth 2.0.

*Para ello, en ATV. se consigna que la dirección del IDP. a emplear en el entorno de pruebas es:


*Inicialmente se debe definir cuál es el URI. del IDP., el CLIENT ID, el usuario (que corresponde a la identificación del contribuyente) y su credencial.
CLEAR

lcMETHOD = "POST"
IDP_CLIENT_ID = "api-stag"
pwd           = ""&&'miClave'


lcPARAM1 = "grant_type" 
lcDATA1  = "password"


lcPARAM2 = "username"
lcDATA2  = '""'


lcPARAM3 = "password"
lcDATA3  = '""'

lcPARAM4 = "client_id"
lcDATA4  = "api-stag"


=USE_RESTFUL(lcURL, lcMETHOD, lcPARAM1, lcDATA1, lcPARAM2, lcDATA2, lcPARAM3, lcDATA3, lcPARAM4, lcDATA4)

return
  
  Function USE_RESTFUL(cURL, cMETHOD, cPARAM1, cDATA1, cPARAM2, cDATA2, cPARAM3, cDATA3, cPARAM4, cDATA4)
LOCAL lOk, oHTTP, cDATA, cResponse

TRY
DO CASE
CASE cMETHOD = 'POST'
cSep = '&'
CASE cMETHOD = 'GET'
cSep = ','
ENDCASE

cDATA=cPARAM1+'='+TRANSFORM(cDATA1)+cSep
cDATA=cDATA+cPARAM2+'='+TRANSFORM(cDATA2)+cSep
cDATA=cDATA+cPARAM3+'='+TRANSFORM(cDATA3)+cSep
cDATA=cDATA+cPARAM4+'='+TRANSFORM(cDATA4)
_cliptext = cDATA
*SET STEP ON 

oHTTP = CREATEOBJECT('Msxml2.ServerXMLHTTP.6.0')
oHTTP.OPEN(cMETHOD, cURL, .F.)
oHTTP.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded')
* oHTTP.setRequestHeader ('Content-Type','application/json')
oHTTP.SEND(cDATA)
lOk = .T.
CATCH TO loErr
cResponse = '{ "Error:" '+ TRANSFORM(loErr.ErrorNo) + loErr.MESSAGE+'}'
jsonstring = cResponse
ENDTRY
IF lOk
IF oHTTP.STATUS = 200
cResponse = oHTTP.responseText
jsonstring = LEFT(cResponse,AT('}'+CHR(13),cResponse))
ELSE
?oHTTP.STATUS
cResponse = oHTTP.responseText
* jsonstring = '{"Error": "No se logró la conexión con el Web Service.'+CHR(13)+cResponse+'"}'
jsonstring = cResponse
lOk = .F.
ENDIF
ENDIF

oHTTP = NULL

MESSAGEBOX(jsonstring)

RETURN lOk
  
  
  
  

--
Tico Support S. A.
Tel. (506)8772-6170

Geovanni Solís Perez

unread,
Dec 23, 2017, 6:21:50 PM12/23/17
to Comunidad de Visual Foxpro en Español
Compañero, yo tambien estoy detras de lo de hacienda, me parece que lo mas sencillo es conectar los ERP hechos en Visual Fox a plataformas de terceros.  Eso estoy tratando de hacer yo.

Saludos.

Geovanni Solis
(506)8358-4009

Hernan Serrano

unread,
Dec 23, 2017, 8:24:27 PM12/23/17
to publice...@googlegroups.com
Seguire intentanto.
Si doy con la respuesta la publico. NO lo duden

Hernan Serrano

unread,
Jan 15, 2018, 8:28:15 AM1/15/18
to publice...@googlegroups.com
Imágenes integradas 1
Estimados compañeros.

Ya logre loguearme en el Servicio web de tributacion con codigo puro de VFP.

Nada mas necesito depurar un poco el codigo. Y lo estare compartiendo.


Necesito que algunos de ustedes vayan creando las estructuras de los XLM que se necesitan que eso no es tan dificil en VFOX y obviamente que se comprometan a compartir el codigo.

Necesito que me apoyen para poder llevar a cabo este proyecto. Del cual todos nos vamos a beneficiar.

ATTE
Hernan Serrano M.

Hernan Serrano

unread,
Jan 16, 2018, 4:52:51 PM1/16/18
to publice...@googlegroups.com
Estimados amigos, Continuo con el progreso en este proyectos.

Despues de lidiar con el tema de la Autenticación y Autorizacion. 

Estoy en el Armado de los XML.

Esta parte es critica. Pues consta de:
1. Creación del documento. (Según especificaciones de Hacienda)
2. Su encriptación para ser enviado.
3. Firmado del documento para que sea aceptado.

Logrado lo anterior el proyecto estara avanzado casi completamente. Y es alli, en donde me permitire compartirlo.

Ha sido un trabajo arduo, por que solo he tenido las noches para llevarlo a cabo. Pues si no trabajo, no como. Pero esto no es queja.

Todo lo que cuesta al final, tiene su recompensa. Y para mi es la satisfacción de haber ayudado y devolver un poco lo que me han ayudado a mi.

ATTE

HErnan Serrano M.


El 15 de enero de 2018, 7:27, Hernan Serrano <hernan.serr...@gmail.com> escribió:
Imágenes integradas 1
Estimados compañeros.

Ya logre loguearme en el Servicio web de tributacion con codigo puro de VFP.

Nada mas necesito depurar un poco el codigo. Y lo estare compartiendo.


Necesito que algunos de ustedes vayan creando las estructuras de los XLM que se necesitan que eso no es tan dificil en VFOX y obviamente que se comprometan a compartir el codigo.

Necesito que me apoyen para poder llevar a cabo este proyecto. Del cual todos nos vamos a beneficiar.

ATTE
Hernan Serrano M.

El 23 de diciembre de 2017, 19:24, Hernan Serrano <hernan.serrano.morales@gmail.com> escribió:
Seguire intentanto.
Si doy con la respuesta la publico. NO lo duden

El 23 de diciembre de 2017, 17:21, Geovanni Solís Perez <solis...@gmail.com> escribió:
Compañero, yo tambien estoy detras de lo de hacienda, me parece que lo mas sencillo es conectar los ERP hechos en Visual Fox a plataformas de terceros.  Eso estoy tratando de hacer yo.

Saludos.

Geovanni Solis



--
Tico Support S. A.
Tel. (506)8772-6170



--
Tico Support S. A.
Tel. (506)8772-6170

Carlos Alfaro

unread,
Jan 23, 2018, 10:48:36 AM1/23/18
to Comunidad de Visual Foxpro en Español

    Buenos días Hernán, ya pudiste lograr pegarte del api y hacer la segunda face de la validación ? yo ya tengo el XML y tengo como firmar el documento pero estoy pegado en el API, hago la primera instancia, conecta, me trae el token y no logro reconectar, no logro convertir en objeto el json que viene en el response para extraer el valor del access token y mandarlo de vuelta en la segunda instancia de la API que es en la que envío mis XML ya firmados.


El martes, 16 de enero de 2018, 15:52:51 (UTC-6), Hernan Serrano escribió:
Estimados amigos, Continuo con el progreso en este proyectos.

Despues de lidiar con el tema de la Autenticación y Autorizacion. 

Estoy en el Armado de los XML.

Esta parte es critica. Pues consta de:
1. Creación del documento. (Según especificaciones de Hacienda)
2. Su encriptación para ser enviado.
3. Firmado del documento para que sea aceptado.

Logrado lo anterior el proyecto estara avanzado casi completamente. Y es alli, en donde me permitire compartirlo.

Ha sido un trabajo arduo, por que solo he tenido las noches para llevarlo a cabo. Pues si no trabajo, no como. Pero esto no es queja.

Todo lo que cuesta al final, tiene su recompensa. Y para mi es la satisfacción de haber ayudado y devolver un poco lo que me han ayudado a mi.

ATTE

HErnan Serrano M.

El 15 de enero de 2018, 7:27, Hernan Serrano <hernan.serr...@gmail.com> escribió:
Imágenes integradas 1
Estimados compañeros.

Ya logre loguearme en el Servicio web de tributacion con codigo puro de VFP.

Nada mas necesito depurar un poco el codigo. Y lo estare compartiendo.


Necesito que algunos de ustedes vayan creando las estructuras de los XLM que se necesitan que eso no es tan dificil en VFOX y obviamente que se comprometan a compartir el codigo.

Necesito que me apoyen para poder llevar a cabo este proyecto. Del cual todos nos vamos a beneficiar.

ATTE
Hernan Serrano M.

El 23 de diciembre de 2017, 19:24, Hernan Serrano <hernan.serr...@gmail.com> escribió:
Seguire intentanto.
Si doy con la respuesta la publico. NO lo duden

El 23 de diciembre de 2017, 17:21, Geovanni Solís Perez <solis...@gmail.com> escribió:
Compañero, yo tambien estoy detras de lo de hacienda, me parece que lo mas sencillo es conectar los ERP hechos en Visual Fox a plataformas de terceros.  Eso estoy tratando de hacer yo.

Saludos.

Geovanni Solis



--
Tico Support S. A.
Tel. (506)8772-6170



--
Tico Support S. A.
Tel. (506)8772-6170

Hernan Serrano

unread,
Jan 23, 2018, 8:23:37 PM1/23/18
to publice...@googlegroups.com
Estoy en la construccion del XML.
En este se debe tener cuidado por que si no esta bien estructurado. Causara errores.
Apenas tenga algo se los comunico.

Hernan Serrano

unread,
Jan 24, 2018, 10:00:45 AM1/24/18
to publice...@googlegroups.com
Compañeros.
El XSD que publique. Genera el XML.
La mejor forma de obtener el XML, es con visual studio.
Hay varios conversores online, pero son malos.

Ahora, el programa que les publique solamente lo tienen que modiicar para utilizar el XML y listo.

<?xml version="1.0" encoding="utf-8"?>
  <Clave>Clave1</Clave>
  <NumeroConsecutivo>NumeroConsecutivo1</NumeroConsecutivo>
  <FechaEmision>1900-01-01T01:01:01-06:00</FechaEmision>
  <Emisor>
    <Nombre>Nombre1</Nombre>
    <Identificacion>
      <Tipo>01</Tipo>
      <Numero>Numero1</Numero>
    </Identificacion>
    <NombreComercial>NombreComercial1</NombreComercial>
    <Ubicacion>
      <Provincia>1</Provincia>
      <Canton>C1</Canton>
      <Distrito>D1</Distrito>
      <Barrio>B1</Barrio>
      <OtrasSenas>OtrasSenas1</OtrasSenas>
    </Ubicacion>
    <Telefono xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
    <Fax xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
    <CorreoElectronico>CorreoElectronico1</CorreoElectronico>
  </Emisor>
  <Receptor>
    <Nombre>Nombre1</Nombre>
    <Identificacion>
      <Tipo>01</Tipo>
      <Numero>Numero1</Numero>
    </Identificacion>
    <IdentificacionExtranjero>IdentificacionExtra1</IdentificacionExtranjero>
    <NombreComercial>NombreComercial1</NombreComercial>
    <Ubicacion>
      <Provincia>1</Provincia>
      <Canton>C1</Canton>
      <Distrito>D1</Distrito>
      <Barrio>B1</Barrio>
      <OtrasSenas>OtrasSenas1</OtrasSenas>
    </Ubicacion>
    <Telefono>
      <CodigoPais>1</CodigoPais>
      <NumTelefono>1</NumTelefono>
    </Telefono>
    <Fax>
      <CodigoPais>1</CodigoPais>
      <NumTelefono>1</NumTelefono>
    </Fax>
    <CorreoElectronico>CorreoElectronico1</CorreoElectronico>
  </Receptor>
  <CondicionVenta>01</CondicionVenta>
  <PlazoCredito>PlazoCred1</PlazoCredito>
  <MedioPago>01</MedioPago>
  <MedioPago>02</MedioPago>
  <MedioPago>03</MedioPago>
  <DetalleServicio>
    <LineaDetalle>
      <NumeroLinea>1</NumeroLinea>
      <Codigo>
        <Tipo>01</Tipo>
        <Codigo>Codigo1</Codigo>
      </Codigo>
      <Codigo>
        <Tipo>02</Tipo>
        <Codigo>Codigo2</Codigo>
      </Codigo>
      <Codigo>
        <Tipo>03</Tipo>
        <Codigo>Codigo3</Codigo>
      </Codigo>
      <Cantidad>1</Cantidad>
      <UnidadMedida>Sp</UnidadMedida>
      <UnidadMedidaComercial>UnidadMedidaComerci1</UnidadMedidaComercial>
      <Detalle>Detalle1</Detalle>
      <PrecioUnitario>0</PrecioUnitario>
      <MontoTotal>0</MontoTotal>
      <MontoDescuento>0</MontoDescuento>
      <NaturalezaDescuento>NaturalezaDescuento1</NaturalezaDescuento>
      <SubTotal>0</SubTotal>
      <Impuesto>
        <Codigo>01</Codigo>
        <Tarifa>1</Tarifa>
        <Monto>0</Monto>
        <Exoneracion>
          <TipoDocumento>01</TipoDocumento>
          <NumeroDocumento>NumeroDocumento1</NumeroDocumento>
          <NombreInstitucion>NombreInstitucion1</NombreInstitucion>
          <FechaEmision>1900-01-01T01:01:01-06:00</FechaEmision>
          <MontoImpuesto>0</MontoImpuesto>
          <PorcentajeCompra>1</PorcentajeCompra>
        </Exoneracion>
      </Impuesto>
      <Impuesto>
        <Codigo>02</Codigo>
        <Tarifa>-99.99</Tarifa>
        <Monto>-10000000000000</Monto>
        <Exoneracion>
          <TipoDocumento>02</TipoDocumento>
          <NumeroDocumento>NumeroDocumento2</NumeroDocumento>
          <NombreInstitucion>NombreInstitucion2</NombreInstitucion>
          <FechaEmision>0001-01-01T00:00:00-06:00</FechaEmision>
          <MontoImpuesto>-10000000000000</MontoImpuesto>
          <PorcentajeCompra>-999</PorcentajeCompra>
        </Exoneracion>
      </Impuesto>
      <Impuesto>
        <Codigo>03</Codigo>
        <Tarifa>99.99</Tarifa>
        <Monto>10000000000000</Monto>
        <Exoneracion>
          <TipoDocumento>03</TipoDocumento>
          <NumeroDocumento>NumeroDocumento3</NumeroDocumento>
          <NombreInstitucion>NombreInstitucion3</NombreInstitucion>
          <FechaEmision>9999-12-31T23:59:59.9999999-06:00</FechaEmision>
          <MontoImpuesto>10000000000000</MontoImpuesto>
          <PorcentajeCompra>999</PorcentajeCompra>
        </Exoneracion>
      </Impuesto>
      <MontoTotalLinea>0</MontoTotalLinea>
    </LineaDetalle>
    <LineaDetalle>
      <NumeroLinea>79228162514264337593543950335</NumeroLinea>
      <Codigo>
        <Tipo>04</Tipo>
        <Codigo>Codigo4</Codigo>
      </Codigo>
      <Codigo>
        <Tipo>99</Tipo>
        <Codigo>Codigo5</Codigo>
      </Codigo>
      <Codigo>
        <Tipo>01</Tipo>
        <Codigo>Codigo6</Codigo>
      </Codigo>
      <Cantidad>-10000000000000</Cantidad>
      <UnidadMedida>m</UnidadMedida>
      <UnidadMedidaComercial>UnidadMedidaComerci2</UnidadMedidaComercial>
      <Detalle>Detalle2</Detalle>
      <PrecioUnitario>-10000000000000</PrecioUnitario>
      <MontoTotal>-10000000000000</MontoTotal>
      <MontoDescuento>-10000000000000</MontoDescuento>
      <NaturalezaDescuento>NaturalezaDescuento2</NaturalezaDescuento>
      <SubTotal>-10000000000000</SubTotal>
      <Impuesto>
        <Codigo>04</Codigo>
        <Tarifa>0.99</Tarifa>
        <Monto>-0.0000000000001</Monto>
        <Exoneracion>
          <TipoDocumento>04</TipoDocumento>
          <NumeroDocumento>NumeroDocumento4</NumeroDocumento>
          <NombreInstitucion>NombreInstitucion4</NombreInstitucion>
          <FechaEmision>1899-11-30T01:01:01-06:00</FechaEmision>
          <MontoImpuesto>-0.0000000000001</MontoImpuesto>
          <PorcentajeCompra>0</PorcentajeCompra>
        </Exoneracion>
      </Impuesto>
      <Impuesto>
        <Codigo>05</Codigo>
        <Tarifa>1.01</Tarifa>
        <Monto>0.0000000000001</Monto>
        <Exoneracion>
          <TipoDocumento>05</TipoDocumento>
          <NumeroDocumento>NumeroDocumento5</NumeroDocumento>
          <NombreInstitucion>NombreInstitucion5</NombreInstitucion>
          <FechaEmision>1900-02-02T01:01:01-06:00</FechaEmision>
          <MontoImpuesto>0.0000000000001</MontoImpuesto>
          <PorcentajeCompra>2</PorcentajeCompra>
        </Exoneracion>
      </Impuesto>
      <Impuesto>
        <Codigo>06</Codigo>
        <Tarifa>-99.98</Tarifa>
        <Monto>-9999999999999.9999999999999</Monto>
        <Exoneracion>
          <TipoDocumento>99</TipoDocumento>
          <NumeroDocumento>NumeroDocumento6</NumeroDocumento>
          <NombreInstitucion>NombreInstitucion6</NombreInstitucion>
          <FechaEmision>0001-02-02T00:00:00-06:00</FechaEmision>
          <MontoImpuesto>-9999999999999.9999999999999</MontoImpuesto>
          <PorcentajeCompra>-998</PorcentajeCompra>
        </Exoneracion>
      </Impuesto>
      <MontoTotalLinea>-10000000000000</MontoTotalLinea>
    </LineaDetalle>
    <LineaDetalle>
      <NumeroLinea>2</NumeroLinea>
      <Codigo>
        <Tipo>02</Tipo>
        <Codigo>Codigo7</Codigo>
      </Codigo>
      <Codigo>
        <Tipo>03</Tipo>
        <Codigo>Codigo8</Codigo>
      </Codigo>
      <Codigo>
        <Tipo>04</Tipo>
        <Codigo>Codigo9</Codigo>
      </Codigo>
      <Cantidad>10000000000000</Cantidad>
      <UnidadMedida>kg</UnidadMedida>
      <UnidadMedidaComercial>UnidadMedidaComerci3</UnidadMedidaComercial>
      <Detalle>Detalle3</Detalle>
      <PrecioUnitario>10000000000000</PrecioUnitario>
      <MontoTotal>10000000000000</MontoTotal>
      <MontoDescuento>10000000000000</MontoDescuento>
      <NaturalezaDescuento>NaturalezaDescuento3</NaturalezaDescuento>
      <SubTotal>10000000000000</SubTotal>
      <Impuesto>
        <Codigo>07</Codigo>
        <Tarifa>99.98</Tarifa>
        <Monto>9999999999999.9999999999999</Monto>
        <Exoneracion>
          <TipoDocumento>01</TipoDocumento>
          <NumeroDocumento>NumeroDocumento7</NumeroDocumento>
          <NombreInstitucion>NombreInstitucion7</NombreInstitucion>
          <FechaEmision>9999-11-29T23:59:59.9999999-06:00</FechaEmision>
          <MontoImpuesto>9999999999999.9999999999999</MontoImpuesto>
          <PorcentajeCompra>998</PorcentajeCompra>
        </Exoneracion>
      </Impuesto>
      <Impuesto>
        <Codigo>08</Codigo>
        <Tarifa>0.98</Tarifa>
        <Monto>-0.0000000000002</Monto>
        <Exoneracion>
          <TipoDocumento>02</TipoDocumento>
          <NumeroDocumento>NumeroDocumento8</NumeroDocumento>
          <NombreInstitucion>NombreInstitucion8</NombreInstitucion>
          <FechaEmision>1899-10-29T01:01:01-06:00</FechaEmision>
          <MontoImpuesto>-0.0000000000002</MontoImpuesto>
          <PorcentajeCompra>-1</PorcentajeCompra>
        </Exoneracion>
      </Impuesto>
      <Impuesto>
        <Codigo>09</Codigo>
        <Tarifa>1.02</Tarifa>
        <Monto>0.0000000000002</Monto>
        <Exoneracion>
          <TipoDocumento>03</TipoDocumento>
          <NumeroDocumento>NumeroDocumento9</NumeroDocumento>
          <NombreInstitucion>NombreInstitucion9</NombreInstitucion>
          <FechaEmision>1900-03-06T01:01:01-06:00</FechaEmision>
          <MontoImpuesto>0.0000000000002</MontoImpuesto>
          <PorcentajeCompra>3</PorcentajeCompra>
        </Exoneracion>
      </Impuesto>
      <MontoTotalLinea>10000000000000</MontoTotalLinea>
    </LineaDetalle>
  </DetalleServicio>
  <ResumenFactura>
    <CodigoMoneda>AED</CodigoMoneda>
    <TipoCambio>0</TipoCambio>
    <TotalServGravados>0</TotalServGravados>
    <TotalServExentos>0</TotalServExentos>
    <TotalMercanciasGravadas>0</TotalMercanciasGravadas>
    <TotalMercanciasExentas>0</TotalMercanciasExentas>
    <TotalGravado>0</TotalGravado>
    <TotalExento>0</TotalExento>
    <TotalVenta>0</TotalVenta>
    <TotalDescuentos>0</TotalDescuentos>
    <TotalVentaNeta>0</TotalVentaNeta>
    <TotalImpuesto>0</TotalImpuesto>
    <TotalComprobante>0</TotalComprobante>
  </ResumenFactura>
  <InformacionReferencia>
    <TipoDoc>01</TipoDoc>
    <Numero>Numero1</Numero>
    <FechaEmision>1900-01-01T01:01:01-06:00</FechaEmision>
    <Codigo>01</Codigo>
    <Razon>Razon1</Razon>
  </InformacionReferencia>
  <InformacionReferencia>
    <TipoDoc>02</TipoDoc>
    <Numero>Numero2</Numero>
    <FechaEmision>0001-01-01T00:00:00-06:00</FechaEmision>
    <Codigo>02</Codigo>
    <Razon>Razon2</Razon>
  </InformacionReferencia>
  <InformacionReferencia>
    <TipoDoc>03</TipoDoc>
    <Numero>Numero3</Numero>
    <FechaEmision>9999-12-31T23:59:59.9999999-06:00</FechaEmision>
    <Codigo>03</Codigo>
    <Razon>Razon3</Razon>
  </InformacionReferencia>
  <Normativa>
    <NumeroResolucion>NumeroResolu1</NumeroResolucion>
    <FechaResolucion>FechaResolucion1</FechaResolucion>
  </Normativa>
  <Otros>
    <OtroTexto codigo="codigo1">OtroTexto1</OtroTexto>
    <OtroTexto codigo="codigo2">OtroTexto2</OtroTexto>
    <OtroTexto codigo="codigo3">OtroTexto3</OtroTexto>
    <OtroContenido codigo="codigo1">
      <any_element xmlns="otherNS">anyType</any_element>
    </OtroContenido>
    <OtroContenido codigo="codigo2">
      <any_element xmlns="otherNS">anyType</any_element>
    </OtroContenido>
    <OtroContenido codigo="codigo3">
      <any_element xmlns="otherNS">anyType</any_element>
    </OtroContenido>
  </Otros>
  <Signature Id="ID1" xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo Id="ID2">
      <CanonicalizationMethod Algorithm="http://uri1">text</CanonicalizationMethod>
      <SignatureMethod Algorithm="http://uri1">text<HMACOutputLength>1</HMACOutputLength></SignatureMethod>
      <Reference Id="ID3" URI="http://uri1" Type="http://uri1">
        <Transforms>
          <Transform Algorithm="http://uri1">text<any_element xmlns="otherNS">anyType</any_element><XPath>XPath1</XPath><any_element xmlns="otherNS">anyType</any_element></Transform>
          <Transform Algorithm="http://uri2">text<any_element xmlns="otherNS">anyType</any_element><XPath>XPath2</XPath><any_element xmlns="otherNS">anyType</any_element></Transform>
          <Transform Algorithm="http://uri3">text<any_element xmlns="otherNS">anyType</any_element><XPath>XPath3</XPath><any_element xmlns="otherNS">anyType</any_element></Transform>
        </Transforms>
        <DigestMethod Algorithm="http://uri1">text</DigestMethod>
        <DigestValue>AAECAwQFBgcICQoLDA0ODw==</DigestValue>
      </Reference>
      <Reference Id="ID4" URI="http://uri2" Type="http://uri2">
        <Transforms>
          <Transform Algorithm="http://uri4">text<any_element xmlns="otherNS">anyType</any_element><XPath>XPath4</XPath><any_element xmlns="otherNS">anyType</any_element></Transform>
          <Transform Algorithm="http://uri5">text<any_element xmlns="otherNS">anyType</any_element><XPath>XPath5</XPath><any_element xmlns="otherNS">anyType</any_element></Transform>
          <Transform Algorithm="http://uri6">text<any_element xmlns="otherNS">anyType</any_element><XPath>XPath6</XPath><any_element xmlns="otherNS">anyType</any_element></Transform>
        </Transforms>
        <DigestMethod Algorithm="http://uri2">text</DigestMethod>
        <DigestValue>AAECAwQFBgcICQoLDA0ODw==</DigestValue>
      </Reference>
      <Reference Id="ID5" URI="http://uri3" Type="http://uri3">
        <Transforms>
          <Transform Algorithm="http://uri7">text<any_element xmlns="otherNS">anyType</any_element><XPath>XPath7</XPath><any_element xmlns="otherNS">anyType</any_element></Transform>
          <Transform Algorithm="http://uri8">text<any_element xmlns="otherNS">anyType</any_element><XPath>XPath8</XPath><any_element xmlns="otherNS">anyType</any_element></Transform>
          <Transform Algorithm="http://uri9">text<any_element xmlns="otherNS">anyType</any_element><XPath>XPath9</XPath><any_element xmlns="otherNS">anyType</any_element></Transform>
        </Transforms>
        <DigestMethod Algorithm="http://uri3">text</DigestMethod>
        <DigestValue>AAECAwQFBgcICQoLDA0ODw==</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue Id="ID6">AAECAwQFBgcICQoLDA0ODw==</SignatureValue>
    <KeyInfo Id="ID7">text<KeyName>KeyName1</KeyName><KeyValue>text<DSAKeyValue><P>AAECAwQFBgcICQoLDA0ODw==</P><Q>AAECAwQFBgcICQoLDA0ODw==</Q><G>AAECAwQFBgcICQoLDA0ODw==</G><Y>AAECAwQFBgcICQoLDA0ODw==</Y><J>AAECAwQFBgcICQoLDA0ODw==</J><Seed>AAECAwQFBgcICQoLDA0ODw==</Seed><PgenCounter>AAECAwQFBgcICQoLDA0ODw==</PgenCounter></DSAKeyValue></KeyValue><RetrievalMethod URI="http://uri1" Type="http://uri1" /></KeyInfo>
    <Object Id="ID8" MimeType="MimeType1" Encoding="http://uri1">text<any_element xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica">anyType</any_element><any_element xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica">anyType</any_element><any_element xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica">anyType</any_element></Object>
    <Object Id="ID9" MimeType="MimeType2" Encoding="http://uri2">text<any_element xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica">anyType</any_element><any_element xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica">anyType</any_element><any_element xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica">anyType</any_element></Object>
    <Object Id="ID10" MimeType="MimeType3" Encoding="http://uri3">text<any_element xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica">anyType</any_element><any_element xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica">anyType</any_element><any_element xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica">anyType</any_element></Object>
  </Signature>
</FacturaElectronica>
    …
Ese es el xml generado con Visual Studio. Es el de la factura.
Compañeros. Ya consequi un proyecto funcional para la firma del XML. Esta probado, creo que la biblioteca que anda por ahi. No es funcional.
 Este es el link.
Para bajar el proyecto esta en c sharp

Greivin Guevara

unread,
Jan 25, 2018, 10:03:41 PM1/25/18
to Comunidad de Visual Foxpro en Español
Hola, alguno ha tenido problemas con el envio del xml? nos estan rechazando el xml pero tengo entendido que en la respuesta nos indican la razon pero no se esta siendo asi. Muchas gracias cualquier ayuda que nos pudieran brindar

El jueves, 16 de noviembre de 2017, 20:57:25 (UTC-6), Interak escribió:

Hernan Serrano

unread,
Jan 26, 2018, 9:17:36 PM1/26/18
to publice...@googlegroups.com
Se supone que se recibe un JSON, con la respuesta.

Ya lo vieron.

Jocelyn Roman

unread,
Jan 26, 2018, 11:08:42 PM1/26/18
to Comunidad de Visual Foxpro en Español

A nosotros solo nos sale esa respuesta, y no el porque fue rechazada.

Hernan Serrano

unread,
Jan 27, 2018, 7:26:14 AM1/27/18
to publice...@googlegroups.com
tienen que enviar los datos de conexcion a hacienda. Para que ellos les indiquen por que los rechaza.

Hernan Serrano

unread,
Jan 27, 2018, 7:27:04 AM1/27/18
to publice...@googlegroups.com
Pueden postear el codigo que utilizan para enviar el json.

Jocelyn Roman

unread,
Jan 27, 2018, 5:41:14 PM1/27/18
to Comunidad de Visual Foxpro en Español
Enviarlos a donde? A un correo?

Hernan Serrano

unread,
Jan 27, 2018, 6:44:26 PM1/27/18
to publice...@googlegroups.com
Es solo para revisar tal vez juntos encontramos el problema

Hernan Serrano

unread,
Jan 27, 2018, 6:45:40 PM1/27/18
to publice...@googlegroups.com
O tal vez solo como configuran el envio al service web de hacienda. Yo tambien estoy haciendo pruebas, Y segun cambio el codigo me da uno u otro error.

Hernan Serrano

unread,
Jan 28, 2018, 9:30:27 PM1/28/18
to publice...@googlegroups.com
Si hacen preguntasi y pretenden que se les contesto. Lo obvio es que nos den detalles, por ejemplo los codigos que utilizan para envio. el xml, tipo de firma. Si no van confiar en nosotros que estamos en esto. Mejor no nos pregunten. Como vamos a analizar que puede ser si no sabemos como lo estan haciendo.

Gracias pero por lo menos yo. Ya no me interesa ayudarles. Tengo mis propio problemas que resolver con mi propio codigo. Como para estar preocupandome por otros. Solo para este hilo es esto que estoy diciendo. Estoy en otros hilos, en donde la gente si comprende que para ayudarles tienen que darnos datos.

Gracias, y me disculpan si estoy siendo prepotente.

El 27 de enero de 2018, 17:45, Hernan Serrano <hernan.serr...@gmail.com> escribió:
O tal vez solo como configuran el envio al service web de hacienda. Yo tambien estoy haciendo pruebas, Y segun cambio el codigo me da uno u otro error.

Hernan Serrano

unread,
Jan 28, 2018, 9:31:21 PM1/28/18
to publice...@googlegroups.com
Carlos, estoy con el envio tambien. Apenas resuelva esto ten por seguro que lo posteo.

El 23 de enero de 2018, 9:48, Carlos Alfaro <carlos....@gmail.com> escribió:

Hernan Serrano

unread,
Jan 28, 2018, 10:48:21 PM1/28/18
to publice...@googlegroups.com

Compañeros, ya logre el envio a Tributacion.
Excepto que no me devuelve error. (Creo que es aceptacion.)
Apenas depure el codigo lo comparto.

ATTE
Hernan

Hernan Serrano

unread,
Jan 29, 2018, 8:28:14 AM1/29/18
to publice...@googlegroups.com
El JSON, devuelto trae el mensaje. En este caso rechazado. Pero ahora hay que revisar para ver por que no lo esta aceptando. Tarea para hoy.

El 28 de enero de 2018, 21:48, Hernan Serrano <hernan.serr...@gmail.com> escribió:

Compañeros, ya logre el envio a Tributacion.
Excepto que no me devuelve error. (Creo que es aceptacion.)
Apenas depure el codigo lo comparto.

ATTE
Hernan

Ronny Solano

unread,
Jan 29, 2018, 12:14:30 PM1/29/18
to publice...@googlegroups.com
Saludos Hernan he estado dandole seguimiento a tus correos, estoy empezando con esto de la Facturación Electrónica para mi aplicación, la gente de Delloite tiene una plataforma que ayuda a depurar los errores ya que segun me comentaron Tributación no da mucha inormación al respecto, si tienes alguna duda creo que me puedo apoyar en ellos en estos temas, me escribes a ronny...@hotmail.com si necesitas algun apoyo en temas de investigación y lo compartimos al foro.

Saludos!

Ronny S.

El 29 de enero de 2018, 7:28, Hernan Serrano <hernan.serr...@gmail.com> escribió:
El JSON, devuelto trae el mensaje. En este caso rechazado. Pero ahora hay que revisar para ver por que no lo esta aceptando. Tarea para hoy.
Message has been deleted

Gustavo A. Mora Rivera

unread,
Jan 30, 2018, 11:47:41 AM1/30/18
to publice...@googlegroups.com
asi es,,,   el interes de hacienda no es ayudar a los desarrolladores para hacer que sus sistemas funcionen, sino ayudar a sus amigotes para obligar a usar terceros...



2018-01-30 10:05 GMT-06:00 Gregorik Domador <gregori...@gmail.com>:
Saludos a todos, por aca me estoy integrando al grupo y los puedo apoyar con la resolución de dudas, ya yo logre realizar toda la facturación electrónica para Costa Rica enteramente en visual foxpro y usando openssl para calcular los digest de la firma, no les puedo entregar codigo fuente por razones laborales, sin embargo ya el codigo fuente que podia entregar se lo di al amigo hernan y vi que integro parte de el en la solución que publicó.
Les queda todavia un camino tortuoso, yo estuve mas 2 meses lidiando con esto y mi principal problema fue la la firma digital, lo cual es una pesadilla hacerla con foxpro, solo en la firma estuve casi mes y medio ya que Hacienda no ayuda para nada, ni se molesten en solicitar ayuda la documentación esta desactualizada y no responden a los correos o los responden de mala gana.
De manera rápida los ayuda con el error de "rechazado" que estan teniendo ahora mismo, les informo que el error es por la firma digital, no importa lo que envien a hacienda simepre les va a responder "firma no válida", hasta tanto no logren hacer la firma de manera correcta no van a poder pasar de ahi, cuando ya hagan la firma válida y hacienda se las acepte es cuando apenas van a poder ver errores del XML como tal. Para poder ver el mensaje de error decodificar el base 64 que viene en el campo respuesta-xml del json, al decodificarlo obtienen el xml de respuesta de hacienda donde les dice el motivo por el cual fue rechazado, por ahora siempre van a ver "firma no válida" y tampoco les va a decir porque no es valida la firma, tienen que hacerla correctamente sin ayuda de ningun tipo por parte de hacienda.

Hernan Serrano

unread,
Jan 30, 2018, 1:15:36 PM1/30/18
to publice...@googlegroups.com
Gracias, Gregorik.

Tu ayuda a sido super valiosa. De hecho te comento que estoy trabajando la firma tambien con SSL. Estoy en el proceso de deducción de los campos que se van a requerir
Message has been deleted

Hernan Serrano

unread,
Jan 30, 2018, 8:35:25 PM1/30/18
to publice...@googlegroups.com
Una pregunta Gregorik.
En orden realizan ustedes los siguiente: Firma del xml, construccion del xml, cifrado base 64, pasar a binario, codificado utf8.

Si tuvieras pseudo codigo mejor.

El 30 de enero de 2018, 14:47, Gregorik Domador <gregori...@gmail.com> escribió:
Tenemos modulo de clase en php y foxpro para elaborar la firma electrónica digital XAdES-EPES para Costa Rica, que es la parte más difícil. Si estan interesados, podemos negociar. Ambas clases no requieren ningun tipo de libreria externa, estan echas 100% en PHP y FoxPro, la del foxpro solo requiere el archivo openssl.exe para calcular los digest de la firma.
Message has been deleted

Hernan Serrano

unread,
Jan 31, 2018, 8:27:57 AM1/31/18
to publice...@googlegroups.com
Gracias compañero.

Por alli tenia esas dudas. Pero creo que estaba mas o menos correcto como lo habia ordenado.

;me parece que tengo el problema en la firma. Es una biblioteca de pruebas que nos dio uno de los foreros.

Sigo trabajando, tu ayuda ha sido grande.
Gracias.

El 31 de enero de 2018, 6:38, Gregorik Domador <gregori...@gmail.com> escribió:
El orden de los pasos serian:
1- Construccion del XML original.
2- Construccion de la Firma, ojo con la canonicalización es muy tediosa, sobre todo con la herencia de los espacios de nombre de los nodos a los que se les calcula digest. Ojo tambien con los saltos de linea e indentación, es preferible hacerla todo el texto junto sin saltos de linea ni indentación.
3- Inserción de la firma dentro del XML original, va al final, justo antes del cierre del nodo facturacionelectronica.
4-Conversión de todo el XML con firma a Base 64, olvidense de la parte de pasar a binario, el string de vfp ya es una array de bytes, solo tienen que convertir a base64 la variable que contiene el string del XML.
5-Construcción del JSON de recepcion, incluyendo el base64 en el nodo comprobanteXml.
6-Envio del JSon a Hacienda.
7-Recepcion de la Respuesta de Hacienda.
Message has been deleted

Jose Carlos Aguilar

unread,
Jan 31, 2018, 11:05:08 AM1/31/18
to Comunidad de Visual Foxpro en Español
Toda la razón amigo, Si quieres desarrollarlo en fox, hay que leer bastante teoria sobre el firmado XADES-EPES, los calculos que hay que hacer, todo eso se puede hacer con puro openssl, pero sino dominas canonizacion, namespace sera dura la tarea, yo la firma la he hecho aparte de C#, java y php, me  es facil porque he entendido esos conceptos. Te recomendaria que integres la libreria que les pase en c# esta se basa en dos librerias que el mismo hacienda ha distribuido y lo que hago es es consumo de esa libreria. Ya cuando tengas toda la solucion y dispongas de tiempo la hagas en VFP puro, yo para serte franco no he optado por fox, porque en una libreria en net puedo poner otras funciones adicionales que son más fáciles de hacerlas alli. No tengo restricciones como Gregorik en cuanto al Framework ya que los clientes que me han pedido generalmente ya viene incluido.
Tal vez mas adelante cuando disponga de tiempo lo haga en fox.
 SAludos

El miércoles, 31 de enero de 2018, 9:16:20 (UTC-5), Gregorik Domador escribió:
Si, el elefante blanco de todo este proceso es la firma, en mi caso yo la hice enteramente en foxpro, pero me ayude con la libreria, aplicando un analisis en reversa de una firma válida generada con dicha libreria pude deducir los pasos que tenia que realizar en foxpro para generar mi firma igual a esa, tuve que hacer todos los pasos de forma manual, canonicalización, calculo de digests, manejo del certificado, etc, si usan libreria es mucho mas facil, yo no quize usar libreria para no tener que incluir dependencias de .net en nuestros instaladores ya que nuestro software debe ser de facil instalacion para el cliente tipo "hagalo usted mismo" y tener que estar lidiando con el .net framework, que si esta instalado, que si no esta, que si es la version correcta, etc, no es factible para nosotros.

Jose Carlos Aguilar

unread,
Jan 31, 2018, 11:07:54 AM1/31/18
to Comunidad de Visual Foxpro en Español
Me olvide decir que la Solución en PHP puro la compartí en el grupo CRlibre, supongo que ellos ya se encargarán de publicarlo

Sebastian K

unread,
Jan 31, 2018, 9:31:02 PM1/31/18
to Comunidad de Visual Foxpro en Español
Hola a todos,

encontré ese grupo por pura casualidad. No sé nada de Foxpro, pero similar a algunos que postearon aquí, estoy en proceso de desarrollar una aplicación en PHP puro.

Ya pasé por el orden que Gregorik mencionó y pude verificar el código en PHP y el archivo resultante en XML con varias facturas (o más bien archivos XML) que tengo de referencia de alguna gente que ya está emitiendo facturas electrónicas. Inclusive verifiqué exitosamente mis XML con la gente de ETSI que marcan parte de los estándares que implementó Hacienda.

Estoy casi seguro que mi archivo XML como tal está bien. Pero estoy pegado en la transmisión de toda la información a Hacienda. Logro acceder al API, puedo enviar el JSON a Hacienda en el formato que ellos piden, .......... Pero la respuesta siempre es la misma: "La firma del comprobante electrónico no es válida". Sospecho que el XML es comprometido en el momento de convertirlo a JSON o transferido a Hacienda, pero ya no sé. Sí creo que el mensaje no necesariamente significa que la firma es incorrecta.Pero como ustedes ya dijeron: el soporte es nulo!

Con gusto puedo compartir lo que tengo hasta el momento; son un par de archivos en php bastante sencillos porque estoy en proceso de prueba - nada más.

Saludos



On Wednesday, January 31, 2018 at 6:38:20 AM UTC-6, Gregorik Domador wrote:
El orden de los pasos serian:
1- Construccion del XML original.
2- Construccion de la Firma, ojo con la canonicalización es muy tediosa, sobre todo con la herencia de los espacios de nombre de los nodos a los que se les calcula digest. Ojo tambien con los saltos de linea e indentación, es preferible hacerla todo el texto junto sin saltos de linea ni indentación.
3- Inserción de la firma dentro del XML original, va al final, justo antes del cierre del nodo facturacionelectronica.
4-Conversión de todo el XML con firma a Base 64, olvidense de la parte de pasar a binario, el string de vfp ya es una array de bytes, solo tienen que convertir a base64 la variable que contiene el string del XML.
5-Construcción del JSON de recepcion, incluyendo el base64 en el nodo comprobanteXml.
6-Envio del JSon a Hacienda.
7-Recepcion de la Respuesta de Hacienda.


El martes, 30 de enero de 2018, 21:35:25 (UTC-4), Hernan Serrano escribió:

Sebastian K

unread,
Jan 31, 2018, 9:34:45 PM1/31/18
to Comunidad de Visual Foxpro en Español
Hola Ronny,

la plataforma de Delloite no es publica, verdad? Como para por lo menos saber que usted en el camino correcto y para descartar dudas.

Gracias


On Monday, January 29, 2018 at 11:14:30 AM UTC-6, Ronny Solano wrote:
Saludos Hernan he estado dandole seguimiento a tus correos, estoy empezando con esto de la Facturación Electrónica para mi aplicación, la gente de Delloite tiene una plataforma que ayuda a depurar los errores ya que segun me comentaron Tributación no da mucha inormación al respecto, si tienes alguna duda creo que me puedo apoyar en ellos en estos temas, me escribes a ronny...@hotmail.com si necesitas algun apoyo en temas de investigación y lo compartimos al foro.

Saludos!

Ronny S.
El 29 de enero de 2018, 7:28, Hernan Serrano <hernan.serr...@gmail.com> escribió:
El JSON, devuelto trae el mensaje. En este caso rechazado. Pero ahora hay que revisar para ver por que no lo esta aceptando. Tarea para hoy.

Sebastian K

unread,
Jan 31, 2018, 9:42:45 PM1/31/18
to Comunidad de Visual Foxpro en Español
Confirmado - verifiqué el XML con todo y firmas en esa página (gracias crlibre :-) ):

https://www.buergerkarte.at/signature-verification/fileUploadAction.action

Quiere decir que tiene que estar o un problema en la transmisión de la información o del lado de Hacienda.

Saludos

Hernan Serrano

unread,
Jan 31, 2018, 10:35:44 PM1/31/18
to publice...@googlegroups.com
Gracias compañeros. Todo esto ayuda.

Carlos Miguel FARIAS

unread,
Feb 1, 2018, 6:40:09 AM2/1/18
to Grupo Fox
Disculpen, este el foro de Fox, si va a desarrollar en PHP, debería remitirse a un foro de PHP, o al menos tener la gentileza de indicar que este es un OT
Message has been deleted

Hernan Serrano

unread,
Feb 1, 2018, 8:38:48 AM2/1/18
to publice...@googlegroups.com
Domador. Estos son los datos que envio yo a hacienda.
json enviado
{
  "clave": "50631011800011449021200100001010000024804100009999",
  "fecha": "2018-01-31T21:58:11-0600",
  "emisor": {
"tipoIdentificacion": "01",
"numeroIdentificacion": "114490212"
},
  "receptor": {
    "tipoIdentificacion": "01",
    "numeroIdentificacion": "204280319"
},
"comprobanteXml":"77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxGYWN0dXJhRWxlY3Ryb25pY2EgeG1sbnM9Imh0dHBzOi8vdHJpYnVuZXQuaGFjaWVuZGEuZ28uY3IvZG9jcy9lc3F1ZW1hcy8yMDE3L3Y0LjIvZmFjdHVyYUVsZWN0cm9uaWNhIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4NCiAgPENsYXZlPjUwNjMxMDExODAwMDExNDQ5MDIxMjAwMTAwMDAxMDEwMDAwMDI0ODA0MTAwMDA5OTk5PC9DbGF2ZT4NCiAgPE51bWVyb0NvbnNlY3V0aXZvPjAwMTAwMDAxMDEwMDAwMDI0ODA0PC9OdW1lcm9Db25zZWN1dGl2bz4NCiAgPEZlY2hhRW1pc2lvbj4yMDE4LTAxLTMxIDIxOjU4OjA2PC9GZWNoYUVtaXNpb24+DQogIDxFbWlzb3I+DQogICAgPE5vbWJyZT5UT1JSRVMgQUJBUkNBIE1JTEVOQSBNQVJJQTwvTm9tYnJlPg0KICAgIDxJZGVudGlmaWNhY2lvbj4NCiAgICAgIDxUaXBvPjAxPC9UaXBvPg0KICAgICAgPE51bWVybz4xMTQ0OTAyMTI8L051bWVybz4NCiAgICA8L0lkZW50aWZpY2FjaW9uPg0KICAgIDxOb21icmVDb21lcmNpYWw+VE9SUkVTIEFCQVJDQSBNSUxFTkEgTUFSSUE8L05vbWJyZUNvbWVyY2lhbD4NCiAgICA8VWJpY2FjaW9uPg0KICAgICAgPFByb3ZpbmNpYT4wMjwvUHJvdmluY2lhPg0KICAgICAgPENhbnRvbj4wMTwvQ2FudG9uPg0KICAgICAgPERpc3RyaXRvPjAxPC9EaXN0cml0bz4NCiAgICAgIDxCYXJyaW8+QUxBSlVFTEEgQ0VOVFJPPC9CYXJyaW8+DQogICAgICA8T3RyYXNTZW5hcz5DT1NUQURPIE5PUlRFIERFTCBNRVJDQURPPC9PdHJhc1NlbmFzPg0KICAgIDwvVWJpY2FjaW9uPg0KICAgIDxUZWxlZm9ubz4NCiAgICAgIDxDb2RpZ29QYWlzPjUwNjwvQ29kaWdvUGFpcz4NCiAgICAgIDxOdW1UZWxlZm9ubz4yNDQwLTU0NjA8L051bVRlbGVmb25vPg0KICAgIDwvVGVsZWZvbm8+DQogICAgPEZheD4NCiAgICAgIDxDb2RpZ29QYWlzPjUwNjwvQ29kaWdvUGFpcz4NCiAgICAgIDxOdW1UZWxlZm9ubz4yNDQwLTU0NjE8L051bVRlbGVmb25vPg0KICAgIDwvRmF4Pg0KICAgIDxDb3JyZW9FbGVjdHJvbmljbz5pbmZvQHRpY29zZm90Y3IuY29tPC9Db3JyZW9FbGVjdHJvbmljbz4NCiAgPC9FbWlzb3I+DQogIDxSZWNlcHRvcj4NCiAgICA8Tm9tYnJlPkhFUk5BTiBTRVJSQU5PIE1PUkFMRVM8L05vbWJyZT4NCiAgICA8SWRlbnRpZmljYWNpb24+DQogICAgICA8VGlwbz4wMTwvVGlwbz4NCiAgICAgIDxOdW1lcm8+MjA0MjgwMzE5PC9OdW1lcm8+DQogICAgPC9JZGVudGlmaWNhY2lvbj4NCiAgICA8SWRlbnRpZmljYWNpb25FeHRyYW5qZXJvPjwvSWRlbnRpZmljYWNpb25FeHRyYW5qZXJvPg0KICAgIDxOb21icmVDb21lcmNpYWw+SEVSTkFOIFNFUlJBTk8gTU9SQUxFUzwvTm9tYnJlQ29tZXJjaWFsPg0KICAgIDxVYmljYWNpb24+DQogICAgICA8UHJvdmluY2lhPkFMQUpVRUxBPC9Qcm92aW5jaWE+DQogICAgICA8Q2FudG9uPkRFU0FNUEFSQURPUzwvQ2FudG9uPg0KICAgICAgPERpc3RyaXRvPkNFTlRSTzwvRGlzdHJpdG8+DQogICAgICA8QmFycmlvPkJBUlJJTzwvQmFycmlvPg0KICAgICAgPE90cmFzU2VuYXM+QUxBSlVFTEEsREVTQU1QQVJBRE9TLERFU0FNUEFSQURPUzwvT3RyYXNTZW5hcz4NCiAgICA8L1ViaWNhY2lvbj4NCiAgICA8VGVsZWZvbm8+DQogICAgICA8Q29kaWdvUGFpcz41MDY8L0NvZGlnb1BhaXM+DQogICAgICA8TnVtVGVsZWZvbm8+ODgxOS00MzY5PC9OdW1UZWxlZm9ubz4NCiAgICA8L1RlbGVmb25vPg0KICAgIDxGYXg+DQogICAgICA8Q29kaWdvUGFpcz48L0NvZGlnb1BhaXM+DQogICAgICA8TnVtVGVsZWZvbm8+MTwvTnVtVGVsZWZvbm8+DQogICAgPC9GYXg+DQogICAgPENvcnJlb0VsZWN0cm9uaWNvPmhzZXJyYW5vQGNvc3RhcnJpY2Vuc2UuY3I8L0NvcnJlb0VsZWN0cm9uaWNvPg0KICA8L1JlY2VwdG9yPiAgDQogIDxDb25kaWNpb25WZW50YT4wMTwvQ29uZGljaW9uVmVudGE+DQogIDxQbGF6b0NyZWRpdG8+MDwvUGxhem9DcmVkaXRvPg0KICA8TWVkaW9QYWdvPjAxPC9NZWRpb1BhZ28+DQogIDxEZXRhbGxlU2VydmljaW8+DQogICAgPExpbmVhRGV0YWxsZT4NCiAgICAgIDxOdW1lcm9MaW5lYT4xPC9OdW1lcm9MaW5lYT4NCiAgICAgIDxDb2RpZ28+DQogICAgICAgIDxUaXBvPjA0PC9UaXBvPg0KICAgICAgICA8Q29kaWdvPkNPRC0wMDAxPC9Db2RpZ28+DQogICAgICA8L0NvZGlnbz4NCiAgICAgIDxDYW50aWRhZD4xPC9DYW50aWRhZD4NCiAgICAgIDxVbmlkYWRNZWRpZGE+VU5JPC9VbmlkYWRNZWRpZGE+DQogICAgICA8VW5pZGFkTWVkaWRhQ29tZXJjaWFsPlVOSTwvVW5pZGFkTWVkaWRhQ29tZXJjaWFsPg0KICAgICAgPERldGFsbGU+QVJUSUNVTE8gREUgUFJVRUJBIDE8L0RldGFsbGU+DQogICAgICA8UHJlY2lvVW5pdGFyaW8+MjUwMC4wMDwvUHJlY2lvVW5pdGFyaW8+DQogICAgICA8TW9udG9Ub3RhbD4yNTAwLjAwPC9Nb250b1RvdGFsPg0KICAgICAgPE1vbnRvRGVzY3VlbnRvPjA8L01vbnRvRGVzY3VlbnRvPg0KICAgICAgPE5hdHVyYWxlemFEZXNjdWVudG8+PC9OYXR1cmFsZXphRGVzY3VlbnRvPg0KICAgICAgPFN1YlRvdGFsPjI1MDAuMDA8L1N1YlRvdGFsPg0KICAgICAgPEltcHVlc3RvPg0KICAgICAgICA8Q29kaWdvPjAxPC9Db2RpZ28+DQogICAgICAgIDxUYXJpZmE+MTM8L1RhcmlmYT4NCiAgICAgICAgPE1vbnRvPjI5NS4wMDwvTW9udG8+DQogICAgICA8L0ltcHVlc3RvPg0KICAgICAgPE1vbnRvVG90YWxMaW5lYT4yNzk1LjAwPC9Nb250b1RvdGFsTGluZWE+DQogICAgPC9MaW5lYURldGFsbGU+DQogIDwvRGV0YWxsZVNlcnZpY2lvPg0KICA8UmVzdW1lbkZhY3R1cmE+DQogICAgPENvZGlnb01vbmVkYT5DUkM8L0NvZGlnb01vbmVkYT4NCiAgICA8VGlwb0NhbWJpbz41NjUuMzI8L1RpcG9DYW1iaW8+DQogICAgPFRvdGFsU2VydkdyYXZhZG9zPjA8L1RvdGFsU2VydkdyYXZhZG9zPg0KICAgIDxUb3RhbFNlcnZFeGVudG9zPjA8L1RvdGFsU2VydkV4ZW50b3M+DQogICAgPFRvdGFsTWVyY2FuY2lhc0dyYXZhZGFzPjI1MDAuMDA8L1RvdGFsTWVyY2FuY2lhc0dyYXZhZGFzPg0KICAgIDxUb3RhbE1lcmNhbmNpYXNFeGVudGFzPjA8L1RvdGFsTWVyY2FuY2lhc0V4ZW50YXM+DQogICAgPFRvdGFsR3JhdmFkbz4yNTAwLjAwPC9Ub3RhbEdyYXZhZG8+DQogICAgPFRvdGFsRXhlbnRvPjI1MDAuMDA8L1RvdGFsRXhlbnRvPg0KICAgIDxUb3RhbFZlbnRhPjI3OTUuMDA8L1RvdGFsVmVudGE+DQogICAgPFRvdGFsRGVzY3VlbnRvcz4wPC9Ub3RhbERlc2N1ZW50b3M+DQogICAgPFRvdGFsVmVudGFOZXRhPjI4MjUuMDA8L1RvdGFsVmVudGFOZXRhPg0KICAgIDxUb3RhbEltcHVlc3RvPjI5NS4wMDwvVG90YWxJbXB1ZXN0bz4NCiAgICA8VG90YWxDb21wcm9iYW50ZT4yODI1LjAwPC9Ub3RhbENvbXByb2JhbnRlPg0KICA8L1Jlc3VtZW5GYWN0dXJhPg0KICA8SW5mb3JtYWNpb25SZWZlcmVuY2lhPg0KICAgIDxUaXBvRG9jPjwvVGlwb0RvYz4NCiAgICA8TnVtZXJvPjwvTnVtZXJvPg0KICAgIDxGZWNoYUVtaXNpb24+PC9GZWNoYUVtaXNpb24+DQogICAgPENvZGlnbz48L0NvZGlnbz4NCiAgICA8UmF6b24+PC9SYXpvbj4NCiAgPC9JbmZvcm1hY2lvblJlZmVyZW5jaWE+DQogIDxOb3JtYXRpdmE+DQogICAgPE51bWVyb1Jlc29sdWNpb24+REdULVItNDgtMjAxNjwvTnVtZXJvUmVzb2x1Y2lvbj4NCiAgICA8RmVjaGFSZXNvbHVjaW9uPjIwLTAyLTIwMTcgMTM6MjI6MjI8L0ZlY2hhUmVzb2x1Y2lvbj4NCiAgPC9Ob3JtYXRpdmE+DQogIDxPdHJvcz4NCiAgICA8T3Ryb1RleHRvIGNvZGlnbz0iY29kaWdvMSI+PC9PdHJvVGV4dG8+DQogIDwvT3Ryb3M+DQo8ZHM6U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBJZD0iU2lnbmF0dXJlLTQwZWQyYmE1LTRhNGMtNDM3MC1hZjRkLWJhMzVmMzExYWVjZCI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy14bWwtYzE0bi0yMDAxMDMxNSIgLz48ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIgLz48ZHM6UmVmZXJlbmNlIElkPSJSZWZlcmVuY2UtZTg0MzZlOTYtNjk5Mi00Njc2LWJjNTItNDQxODFmZDMyZDlmIiBVUkk9IiI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIiAvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2IiAvPjxkczpEaWdlc3RWYWx1ZT56eFpkenFmMmtLVzQzTWh0WGRUYVNCY1ZvejRNZmFSSkYxNWhVT0pYZmdBPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBJZD0iUmVmZXJlbmNlS2V5SW5mbyIgVVJJPSIjS2V5SW5mb0lkLVNpZ25hdHVyZS00MGVkMmJhNS00YTRjLTQzNzAtYWY0ZC1iYTM1ZjMxMWFlY2QiPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiIC8+PGRzOkRpZ2VzdFZhbHVlPmhUZjhtSDlSUVpuTXA1WWxmdUpFcEMwSVhjNkdHYnB3WXVqajZ1NVhwYlk9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48ZHM6UmVmZXJlbmNlIFR5cGU9Imh0dHA6Ly91cmkuZXRzaS5vcmcvMDE5MDMjU2lnbmVkUHJvcGVydGllcyIgVVJJPSIjU2lnbmVkUHJvcGVydGllcy1TaWduYXR1cmUtNDBlZDJiYTUtNGE0Yy00MzcwLWFmNGQtYmEzNWYzMTFhZWNkIj48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2IiAvPjxkczpEaWdlc3RWYWx1ZT5yY0xRZHRIcHFDdWNOMmtaNkwzODBrWThmNkEyWXZrcnQxNnYyZ1luMWpzPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PC9kczpTaWduZWRJbmZvPjxkczpTaWduYXR1cmVWYWx1ZSBJZD0iU2lnbmF0dXJlVmFsdWUtNDBlZDJiYTUtNGE0Yy00MzcwLWFmNGQtYmEzNWYzMTFhZWNkIj5mekoxeU50RXVCRW10dis2RWJucHAyZlpKTFJxSUlnYXZnRnBLTE53dE54RCtKcGFBWHJTQ3JlUWY5UWxnbEpTL3hZY3QxclpOdXBJMjJhNUhxTnYrUWhTRjNRQ2JGSnh3SjdrOExxbUZCeU05RDVXZVJwbXBtUkxXdGM0aUJpZGdja0xxT3puMDAyN1cwT2Z6V3QyQnB1UzVZenRkb3F0RE9vZHFRMXJST1BXZmNEWGlyeUZ0a3FvdTdNU0F5SU14cWpWWFN2MlM1VlF1YzZ1ZlRnbnhrUjNyU01aR28zUzEyZExHdFpURXJFZVBVSnRZVTBnRTJFN0ZZV1ZzS2U0cng5RCsyZXFOemJaOWM2S2p3UjNVb0xYRUVqeXNEcVVDQ2ZEZXA5dTVIUHFjdEdMWStIN2pXTGFTamdvSzIySFQxTmdqd3BHaks5dGxnREdua29wb0E9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9IktleUluZm9JZC1TaWduYXR1cmUtNDBlZDJiYTUtNGE0Yy00MzcwLWFmNGQtYmEzNWYzMTFhZWNkIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlGV3pDQ0EwT2dBd0lCQWdJR0FXRVVMTmRCTUEwR0NTcUdTSWIzRFFFQkN3VUFNR3d4Q3pBSkJnTlZCQVlUQWtOU01Ta3dKd1lEVlFRS0RDQk5TVTVKVTFSRlVrbFBJRVJGSUVoQlEwbEZUa1JCSUMwZ1UwRk9SRUpQV0RFTU1Bb0dBMVVFQ3d3RFJFZFVNU1F3SWdZRFZRUUREQnREUVNCUVJWSlRUMDVCSUVaSlUwbERRU0F0SUZOQlRrUkNUMWd3SGhjTk1UZ3dNVEl3TVRVeU5UTTRXaGNOTWpBd01USXdNVFV5TlRNNFdqQ0JvekVaTUJjR0ExVUVCUk1RUTFCR0xUQXhMVEUwTkRrdE1ESXhNakVXTUJRR0ExVUVCQXdOVkU5U1VrVlRJRUZDUVZKRFFURVZNQk1HQTFVRUtnd01UVWxNUlU1QklFMUJVa2xCTVFzd0NRWURWUVFHRXdKRFVqRVhNQlVHQTFVRUNnd09VRVZTVTA5T1FTQkdTVk5KUTBFeEREQUtCZ05WQkFzTUEwTlFSakVqTUNFR0ExVUVBd3dhVFVsTVJVNUJJRTFCVWtsQklGUlBVbEpGVXlCQlFrRlNRMEV3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRRGErRHlkaGJ0MXRaeFpGdm1oTVBjL0duMWd5V1UwV0p4ZlBkaWdidXd1S2RZdlRHK0k3RnFtU3RMNkF6R0YvS2tNaEJhT0FBOUZBazZ3cS82ZHhUK2FjM0c1c011RWF1K1oyMW5uVHQ5d1MyLytIVFBFOW8zZkt6WEc0ZjBrYlQ4bWdya2ZnTXJ2V1FFeStPWHhiUWVOVEdrMnBXYWhxcm5NTEovSFRwcVluVXNGMFZEMGZ6WGdYN3pQUVRwT1kxSkpjM0czMlFTd1ljS3RJelRaWU1OUk1STnp2VjYzZ2tyMEVjb2VnL29XOUZiaGYwVDNoWWYxRGU4dU9LRnFmQ0dRSjJmb1RuUVhRTytmR1lPdiszRWZFcUYrcE4wMWlsbUdxam5KRERweWxYU3lHQWdvR3c5TDZ0SmZrVUo1TzByT21hMHo4T2JWd094ZTNKRXp0K1hOQWdNQkFBR2pnY293Z2Njd0h3WURWUjBqQkJnd0ZvQVVSaVBTUkUrL1Yxa2g1TCtUMVRDYmxVemo5NGN3SFFZRFZSME9CQllFRkh0K1J2cmY4c1pqbVgrRFlSa2FVek1QVnppK01Bc0dBMVVkRHdRRUF3SUd3REFUQmdOVkhTVUVEREFLQmdnckJnRUZCUWNEQkRCakJnZ3JCZ0VGQlFjQkFRUlhNRlV3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEJ6T2k4dmNHdHBMbU52YlhCeWIySmhiblJsYzJWc1pXTjBjbTl1YVdOdmN5NW5ieTVqY2k5emRHRm5MMmx1ZEdWeWJXVmthV0YwWlMxd1ppMXdaVzB1WTNKME1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQTVzRWJGWm43NTVvRHlJNytLNnd6dE02WWlnTWUyNmJDa3lBODJSd214MTZsQU4zZk11TXVwYzdHbVpwMGFRdUppTmZydkRzU0dJSUkvcHlJbWI3TE0vYmw3M0dkRjF1UHJ6KzJ6dEUxS3dQTWFvZm1JZjFNRzl5Vjg0eTBwNXJkcktzR3pYL3dLT1ducDVTbGo5YnV4S2R1c1lvZ05jdW0vOURIR0pZYi96TEdaVHlXWDVsTlhTb3JUTXE2TTF2V0hMays3NDB2R0dqaU4xN3QrK1VCNjR1OGtEMkRnd3ZHYnkrTW1PaWx0Q1JXMGlxVDIrZndHRnloNnBISmRCcE5VMEVMNHZVZTIzWVRLanVPRi9ZcHlPKzg1eEQyYWtuTWlBTTltVGdqWExHcEZ1MlFsTm9mbGJsT29laXRqWjFGUEYxSG5HMUxPZmlpNWRyM2tpNTdRUXhacTVhRlM3REFvR3JTVDV4amt1U00ycHUwU1lQNElHdkNQb2RWSXNqWDRKd01KVFBFMkwwWG5uZWlYNFFxZEFzUllVMUUrc3owR3J4Zkw0bFFBQXIwMEY3a01BMzkrMCtkY1IyNC9YNCt3RWUzZDArVXZNTCtwbXVNU09PZDRGUEc4TFBSbWdtUlFhQXFqUlZqMXFGY0wvQzlteXNROXgyUnE1QnBaZC9wMjNZeUZEbEVxRll6VWkxOUtnaU1qdEhCb3AwaFlZenNGMGpMV3FCc3NVNFpwUGdBcXBDb21QV0Q2b3RxNU5BNTQwWDBza2V3dWl5Zmh1cG9sdmJ6Y09Yczh5bjRrWjFzNk1JS0JvaW8zTGROTG9vSVI1ZGdPZm5FRi9FWGNWemJPYlZrT1pVckd0R1NJaTV1cFk1OVhCSEdDWG9EQlczQlV0eHZuclpEcXlRPT08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjxkczpLZXlWYWx1ZT48ZHM6UlNBS2V5VmFsdWU+PGRzOk1vZHVsdXM+MnZnOG5ZVzdkYldjV1JiNW9URDNQeHA5WU1sbE5GaWNYejNZb0c3c0xpbldMMHh2aU94YXBrclMrZ014aGZ5cERJUVdqZ0FQUlFKT3NLdituY1UvbW5OeHViRExoR3J2bWR0WjUwN2ZjRXR2L2gwenhQYU4zeXMxeHVIOUpHMC9Kb0s1SDRESzcxa0JNdmpsOFcwSGpVeHBOcVZtb2FxNXpDeWZ4MDZhbUoxTEJkRlE5SDgxNEYrOHowRTZUbU5TU1hOeHQ5a0VzR0hDclNNMDJXRERVVEVUYzcxZXQ0Sks5QkhLSG9QNkZ2Ulc0WDlFOTRXSDlRM3ZMamloYW53aGtDZG42RTUwRjBEdm54bURyL3R4SHhLaGZxVGROWXBaaHFvNXlRdzZjcFYwc2hnSUtCc1BTK3JTWDVGQ2VUdEt6cG10TS9EbTFjRHNYdHlSTTdmbHpRPT08L2RzOk1vZHVsdXM+PGRzOkV4cG9uZW50PkFRQUI8L2RzOkV4cG9uZW50PjwvZHM6UlNBS2V5VmFsdWU+PC9kczpLZXlWYWx1ZT48L2RzOktleUluZm8+PGRzOk9iamVjdCBJZD0iWGFkZXNPYmplY3RJZC05MTU3MDc2NC03ZTQ0LTQzNTctOTBjMS1mZTZlNWVmZDZkYmEiPjx4YWRlczpRdWFsaWZ5aW5nUHJvcGVydGllcyB4bWxuczp4YWRlcz0iaHR0cDovL3VyaS5ldHNpLm9yZy8wMTkwMy92MS4zLjIjIiBJZD0iUXVhbGlmeWluZ1Byb3BlcnRpZXMtMTJjMTlhODMtZDhkNC00M2JkLTkyZWUtMWE1Y2Y4N2FjZDI1IiBUYXJnZXQ9IiNTaWduYXR1cmUtNDBlZDJiYTUtNGE0Yy00MzcwLWFmNGQtYmEzNWYzMTFhZWNkIj48eGFkZXM6U2lnbmVkUHJvcGVydGllcyBJZD0iU2lnbmVkUHJvcGVydGllcy1TaWduYXR1cmUtNDBlZDJiYTUtNGE0Yy00MzcwLWFmNGQtYmEzNWYzMTFhZWNkIj48eGFkZXM6U2lnbmVkU2lnbmF0dXJlUHJvcGVydGllcz48eGFkZXM6U2lnbmluZ1RpbWU+MjAxOC0wMS0zMVQyMTo1ODowOC0wNjowMDwveGFkZXM6U2lnbmluZ1RpbWU+PHhhZGVzOlNpZ25pbmdDZXJ0aWZpY2F0ZT48eGFkZXM6Q2VydD48eGFkZXM6Q2VydERpZ2VzdD48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2IiAvPjxkczpEaWdlc3RWYWx1ZT5aTWE4UVBpM2NxNGJSS2FWWDQrM1NIWjNZYVBDTGZwTmhjMGVNWVRwK3ZvPTwvZHM6RGlnZXN0VmFsdWU+PC94YWRlczpDZXJ0RGlnZXN0Pjx4YWRlczpJc3N1ZXJTZXJpYWw+PGRzOlg1MDlJc3N1ZXJOYW1lPkNOPUNBIFBFUlNPTkEgRklTSUNBIC0gU0FOREJPWCwgT1U9REdULCBPPU1JTklTVEVSSU8gREUgSEFDSUVOREEgLSBTQU5EQk9YLCBDPUNSPC9kczpYNTA5SXNzdWVyTmFtZT48ZHM6WDUwOVNlcmlhbE51bWJlcj4xNTE2NDYxOTM4NDk3PC9kczpYNTA5U2VyaWFsTnVtYmVyPjwveGFkZXM6SXNzdWVyU2VyaWFsPjwveGFkZXM6Q2VydD48L3hhZGVzOlNpZ25pbmdDZXJ0aWZpY2F0ZT48eGFkZXM6U2lnbmF0dXJlUG9saWN5SWRlbnRpZmllcj48eGFkZXM6U2lnbmF0dXJlUG9saWN5SWQ+PHhhZGVzOlNpZ1BvbGljeUlkPjx4YWRlczpJZGVudGlmaWVyPmh0dHBzOi8vdHJpYnVuZXQuaGFjaWVuZGEuZ28uY3IvZG9jcy9lc3F1ZW1hcy8yMDE2L3Y0L1Jlc29sdWNpb24lMjBDb21wcm9iYW50ZXMlMjBFbGVjdHJvbmljb3MlMjAlMjBER1QtUi00OC0yMDE2LnBkZjwveGFkZXM6SWRlbnRpZmllcj48eGFkZXM6RGVzY3JpcHRpb24gLz48L3hhZGVzOlNpZ1BvbGljeUlkPjx4YWRlczpTaWdQb2xpY3lIYXNoPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIgLz48ZHM6RGlnZXN0VmFsdWU+VjhsVlZOR0RDUGVuNlZFTFJEMUphOEhBUkZrPTwvZHM6RGlnZXN0VmFsdWU+PC94YWRlczpTaWdQb2xpY3lIYXNoPjwveGFkZXM6U2lnbmF0dXJlUG9saWN5SWQ+PC94YWRlczpTaWduYXR1cmVQb2xpY3lJZGVudGlmaWVyPjwveGFkZXM6U2lnbmVkU2lnbmF0dXJlUHJvcGVydGllcz48eGFkZXM6U2lnbmVkRGF0YU9iamVjdFByb3BlcnRpZXM+PHhhZGVzOkRhdGFPYmplY3RGb3JtYXQgT2JqZWN0UmVmZXJlbmNlPSIjUmVmZXJlbmNlLWU4NDM2ZTk2LTY5OTItNDY3Ni1iYzUyLTQ0MTgxZmQzMmQ5ZiI+PHhhZGVzOk1pbWVUeXBlPnRleHQveG1sPC94YWRlczpNaW1lVHlwZT48eGFkZXM6RW5jb2Rpbmc+VVRGLTg8L3hhZGVzOkVuY29kaW5nPjwveGFkZXM6RGF0YU9iamVjdEZvcm1hdD48L3hhZGVzOlNpZ25lZERhdGFPYmplY3RQcm9wZXJ0aWVzPjwveGFkZXM6U2lnbmVkUHJvcGVydGllcz48L3hhZGVzOlF1YWxpZnlpbmdQcm9wZXJ0aWVzPjwvZHM6T2JqZWN0PjwvZHM6U2lnbmF0dXJlPjwvRmFjdHVyYUVsZWN0cm9uaWNhPg=="
}

JSON DE RESPUESTA:
{
  "clave" : "50631011800011449021200100001010000024804100009999",
  "fecha" : "2018-01-31T20:02:09-06:00",
  "ind-estado" : "rechazado"
}


El 1 de febrero de 2018, 7:01, Gregorik Domador <gregori...@gmail.com> escribió:
Saludos Sebastian, si me envias el JSON con el Base64 incrustado (tal como lo envias a hacienda) yo te lo puedo revisar y brindarte alguna ayuda.
Si hacienda te responde "Firma No Valida" hermano creame que es problema con la firma, si hubiese un problema con la transmision te da el error de ·Bad Request", yo lidie con esto casi 2 meses.

Geovanni Solís Perez

unread,
Feb 1, 2018, 9:54:02 AM2/1/18
to Comunidad de Visual Foxpro en Español
Carlos, buenos días, ese Json de respuesta es una hilera, en buena teoria deberías meterlo en una variable, me gustaria saber en que punto estas con esto? talvez te podamos ayudar.

Saludos

Geovanni Solis.

--
Tico Support S. A.
Tel. (506)8772-6170



--
Tico Support S. A.
Tel. (506)8772-6170
Message has been deleted
Message has been deleted

Sebastian K

unread,
Feb 1, 2018, 12:18:22 PM2/1/18
to Comunidad de Visual Foxpro en Español
Gracias - me serviría un montón!

Adjunto el archivo con el JSON.

Y sí - probablemente tiene razón con lo de la firma. Seguro falta camino, pero ojalá no dos meses  ;-)

Saludos,
Sebastian



On Thursday, February 1, 2018 at 7:01:18 AM UTC-6, Gregorik Domador wrote:
Saludos Sebastian, si me envias el JSON con el Base64 incrustado (tal como lo envias a hacienda) yo te lo puedo revisar y brindarte alguna ayuda.
Si hacienda te responde "Firma No Valida" hermano creame que es problema con la firma, si hubiese un problema con la transmision te da el error de ·Bad Request", yo lidie con esto casi 2 meses.

El miércoles, 31 de enero de 2018, 22:42:45 (UTC-4), Sebastian K escribió:
json.txt

roberto

unread,
Feb 1, 2018, 12:33:27 PM2/1/18
to Comunidad de Visual Foxpro en Español
Buenos días Sebastían.
Pues te digo una cosa, hemos estado llevando palo hace días con todo este asunto de la Factura Electrónica. Hasta tenemos un grupo de  WhatsApp en Costa Rica, incluso se ha unido gente que programa en C#, porque todos estamos en lo mismo, con problemas y lo mas indignante es que Hacienda no brinda nada de soporte, pero aquí vamos y gracias por tus aportes también, cualquier tipo de ayuda es bienvenida..

Al final de cuentas muchachos si hay que ir a hacienda, yo me apunto a ir sin problema.

En cuanto a Carlos Farias, Don Carlos con todo respeto, no se si se ha dado cuenta que mucha gente por acá está tratando de resolver este problema y entiendo que el Foro es de Fox, pero creo que la gente tiene el derecho de hacer sus consultas y prestar la ayuda. Yo en ocasiones he hecho consultas de Oracle que es en lo que programo también y ha existido  gente que me ha ayudado. Creo que no hay necesidad de ser un poquito grosero con la gente, máxime si el tema que se está tratando uno no  está ayudando en nada. La verdad no se si es tico o no. Pero en la vida indistintamente de donde se esté, el ayudar a las personas no cae mal.

Sigamos adelante chicos a ver si se saca esta tarea.

Que tengan un buen día.

PD/No voy a discutir sobre lo escrito, es una observación nada mas.



El jueves, 16 de noviembre de 2017, 20:57:25 (UTC-6), Interak escribió:
Buen día a todos.

Consulta en especial para los intengrantes del grupo en Costa Rica. Como va el tema de factura electrónica? Ya lograron desarrollar en sus sistemas de Visual Fox las facturas electrónicas? He intentado averiguar desde hace varios días sobre estos temas pero me es dificil encontrar información valiosa y entender como hago o en donde para comprobar que los documentos generados por mi sistema son correctos y aprobados por Hacienda y que los formatos están bien? Esas y mas consultas, como ven estoy un poco perdido en este tema. Quién pueda guiarme un poco se lo agradezco.
Saludos...
Message has been deleted

Hernan Serrano

unread,
Feb 1, 2018, 1:18:25 PM2/1/18
to publice...@googlegroups.com
Gregorik, gracias por tu apoyo.

Ya tengo una luz, estaba revisando y revisando. Pero con lo que me has dicho, creo que voy a avanzar bastante.

Te comento los resultados.

Gracias de verdad compañero.

El 1 de febrero de 2018, 9:44, Gregorik Domador <gregori...@gmail.com> escribió:
Otra cosa, me acabo de dar cuenta que tu base 64 esta mal construido, los caracteres "77u/" que estan al principio no van, debe empezar siempre con PD9..., pero esto es una caracteristica de foxpro, supongo que usaste strconv(), a mi tampoco me daba asi, y lo resolvi usando una funcion de la api de windows para convertir el base64.

Declare Integer CryptBinaryToString In Crypt32 String @pbBinary, Long cbBinary, Long dwFlags, String @pszString, Long @pcchString

Ronny Solano

unread,
Feb 1, 2018, 3:21:40 PM2/1/18
to publice...@googlegroups.com
Saludos Sebastian, disculpa que te responda hasta hora, pero no habia podido ver los mensajes.  Acabo de escribirle a la persona que nos ayuda en  Delotte, apenas tenga respuesta, lo comunico por aca.

Saludos!

Eduardo Venegas

unread,
Feb 1, 2018, 5:17:30 PM2/1/18
to publice...@googlegroups.com
Usando el link que comparten, que significa la casilla roja?
Imágenes integradas 1

Jose Carlos Aguilar

unread,
Feb 1, 2018, 5:21:00 PM2/1/18
to Comunidad de Visual Foxpro en Español
En la firma no esta incluida la cadena de certificacion, en el caso de de costa rica no es necesario incluir esos certificados CA y sobordinada.
Saludos

Eduardo Venegas

unread,
Feb 1, 2018, 5:29:38 PM2/1/18
to publice...@googlegroups.com

Muchas gracias José,


Tengo una consulta, sucede que a la hora de realizar la conexión con hacienda envío como comprobanteXML lo siguiente:

Primer linea del adjuno PruebasFirma.txt

 

Pero todos los resultados que recibo son rechazados.


 

Y el error que me indica es el siguiente:

Segunda linea del adjuno PruebasFirma.txt 


No sé si lo estoy firmando mal, o a la hora de convertir el xml en base64 falla, les ha pasado?



 Adjunto un documento firmado.


PruebasFirma.txt
FacturaFirmado00100001010030000201.xml

Hernan Serrano

unread,
Feb 1, 2018, 5:50:54 PM2/1/18
to publice...@googlegroups.com
Gracias Jose Carlos, la verdad que nos has ayudado bastante.

Sinceramente muchos de nosotros sin la ayuda de ustedes estuvieramos perdidos.

Hernan Serrano

unread,
Feb 2, 2018, 2:52:11 PM2/2/18
to publice...@googlegroups.com
Gregorik, te voy enviar el xml, y el json para que me los revises. Ya hice las correcciones que me comentastes.

Gracias de antemano.

ATTE.
HErnan Serrano M.

PD:Por casualidad no tienes por alli, un XML, de los que ya hacienda te ha validado, para comparar con los mios y corregir errores.

El 1 de febrero de 2018, 11:55, Gregorik Domador <gregori...@gmail.com> escribió:
Saludos Sebastian, mira, la firma que esta realizando no es correcta, te esta pasando lo mismo que me pasó a mi, que trate de hacer la firma tal como esta en la documentación de hacienda y resulta que esa firma no sirve, yo perdi un mes probando con ese formato de firma y nunca iba a llegar porque esta mala, haz la firma como la que publicó Hernan, solo con que corrije el detalle del base64, la firma de Hernan si es correcta, cuando las compares las dos te vas a dar cuenta de las grandes diferencias entre ambas, esta gente de hacienda de verdad que dan pena ajena en tener una documentación oficial de algo que no funciona.

Hernan Serrano

unread,
Feb 2, 2018, 11:53:00 PM2/2/18
to publice...@googlegroups.com
Gregorik, este es el JSON, que envio a Hacienda y siempre me sale rechazado. Te adjunto el XML. Para ver si le encuentras por que me lo rechaza.
{
  "clave": "50602021800011449021200100001010000025001100009999",
  "fecha": "2018-02-02T22:49:41-0600",
  "emisor": {
"tipoIdentificacion": "01",
"numeroIdentificacion": "114490212"
},
  "receptor": {
    "tipoIdentificacion": "01",
    "numeroIdentificacion": "204280319"
},
"comprobanteXml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPEZhY3R1cmFFbGVjdHJvbmljYSB4bWxucz0iaHR0cHM6Ly90cmlidW5ldC5oYWNpZW5kYS5nby5jci9kb2NzL2VzcXVlbWFzLzIwMTcvdjQuMi9mYWN0dXJhRWxlY3Ryb25pY2EiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPgo8Q2xhdmU+NTA2MDIwMjE4MDAwMTE0NDkwMjEyMDAxMDAwMDEwMTAwMDAwMjUwMDExMDAwMDk5OTk8L0NsYXZlPgo8TnVtZXJvQ29uc2VjdXRpdm8+MDAxMDAwMDEwMTAwMDAwMjUwMDE8L051bWVyb0NvbnNlY3V0aXZvPgo8RmVjaGFFbWlzaW9uPjIwMTgtMDItMDJUMjI6NDk6NDA8L0ZlY2hhRW1pc2lvbj4KPEVtaXNvcj4KPE5vbWJyZT5UT1JSRVMgQUJBUkNBIE1JTEVOQSBNQVJJQTwvTm9tYnJlPgo8SWRlbnRpZmljYWNpb24+CjxUaXBvPjAxPC9UaXBvPgo8TnVtZXJvPjExNDQ5MDIxMjwvTnVtZXJvPgo8L0lkZW50aWZpY2FjaW9uPgo8Tm9tYnJlQ29tZXJjaWFsPlRPUlJFUyBBQkFSQ0EgTUlMRU5BIE1BUklBPC9Ob21icmVDb21lcmNpYWw+CjxVYmljYWNpb24+CjxQcm92aW5jaWE+MDI8L1Byb3ZpbmNpYT4KPENhbnRvbj4wMTwvQ2FudG9uPgo8RGlzdHJpdG8+MDE8L0Rpc3RyaXRvPgo8QmFycmlvPkFMQUpVRUxBIENFTlRSTzwvQmFycmlvPgo8T3RyYXNTZW5hcz5DT1NUQURPIE5PUlRFIERFTCBNRVJDQURPPC9PdHJhc1NlbmFzPgo8L1ViaWNhY2lvbj4KPFRlbGVmb25vPgo8Q29kaWdvUGFpcz41MDY8L0NvZGlnb1BhaXM+CjxOdW1UZWxlZm9ubz4yNDQwNTQ2MDwvTnVtVGVsZWZvbm8+CjwvVGVsZWZvbm8+CjxGYXg+CjxDb2RpZ29QYWlzPjUwNjwvQ29kaWdvUGFpcz4KPE51bVRlbGVmb25vPjI0NDA1NDYxPC9OdW1UZWxlZm9ubz4KPC9GYXg+CjxDb3JyZW9FbGVjdHJvbmljbz5pbmZvQHRpY29zZm90Y3IuY29tPC9Db3JyZW9FbGVjdHJvbmljbz4KPC9FbWlzb3I+CjxSZWNlcHRvcj4KPE5vbWJyZT5IRVJOQU4gU0VSUkFOTyBNT1JBTEVTPC9Ob21icmU+CjxJZGVudGlmaWNhY2lvbj4KPFRpcG8+MDE8L1RpcG8+CjxOdW1lcm8+MjA0MjgwMzE5PC9OdW1lcm8+CjwvSWRlbnRpZmljYWNpb24+CjxJZGVudGlmaWNhY2lvbkV4dHJhbmplcm8+PC9JZGVudGlmaWNhY2lvbkV4dHJhbmplcm8+CjxOb21icmVDb21lcmNpYWw+SEVSTkFOIFNFUlJBTk8gTU9SQUxFUzwvTm9tYnJlQ29tZXJjaWFsPgo8VWJpY2FjaW9uPgo8UHJvdmluY2lhPjAyPC9Qcm92aW5jaWE+CjxDYW50b24+MDE8L0NhbnRvbj4KPERpc3RyaXRvPjAxPC9EaXN0cml0bz4KPEJhcnJpbz5CQVJSSU88L0JhcnJpbz4KPE90cmFzU2VuYXM+QUxBSlVFTEEsREVTQU1QQVJBRE9TLERFU0FNUEFSQURPUzwvT3RyYXNTZW5hcz4KPC9VYmljYWNpb24+CjxUZWxlZm9ubz4KPENvZGlnb1BhaXM+NTA2PC9Db2RpZ29QYWlzPgo8TnVtVGVsZWZvbm8+ODgxOTQzNjk8L051bVRlbGVmb25vPgo8L1RlbGVmb25vPgo8RmF4Pgo8Q29kaWdvUGFpcz48L0NvZGlnb1BhaXM+CjxOdW1UZWxlZm9ubz4xPC9OdW1UZWxlZm9ubz4KPC9GYXg+CjxDb3JyZW9FbGVjdHJvbmljbz5oc2VycmFub0Bjb3N0YXJyaWNlbnNlLmNyPC9Db3JyZW9FbGVjdHJvbmljbz4KPC9SZWNlcHRvcj4gIAo8Q29uZGljaW9uVmVudGE+MDE8L0NvbmRpY2lvblZlbnRhPgo8UGxhem9DcmVkaXRvPjA8L1BsYXpvQ3JlZGl0bz4KPE1lZGlvUGFnbz4wMTwvTWVkaW9QYWdvPgo8RGV0YWxsZVNlcnZpY2lvPgo8TGluZWFEZXRhbGxlPgo8TnVtZXJvTGluZWE+MTwvTnVtZXJvTGluZWE+CjxDb2RpZ28+CjxUaXBvPjA0PC9UaXBvPgo8Q29kaWdvPkNPRC0wMDAxPC9Db2RpZ28+CjwvQ29kaWdvPgo8Q2FudGlkYWQ+MTwvQ2FudGlkYWQ+CjxVbmlkYWRNZWRpZGE+VU5JPC9VbmlkYWRNZWRpZGE+CjxVbmlkYWRNZWRpZGFDb21lcmNpYWw+VU5JPC9VbmlkYWRNZWRpZGFDb21lcmNpYWw+CjxEZXRhbGxlPkFSVElDVUxPIERFIFBSVUVCQSAxPC9EZXRhbGxlPgo8UHJlY2lvVW5pdGFyaW8+MjUwMC4wMDwvUHJlY2lvVW5pdGFyaW8+CjxNb250b1RvdGFsPjI1MDAuMDA8L01vbnRvVG90YWw+CjxNb250b0Rlc2N1ZW50bz4wPC9Nb250b0Rlc2N1ZW50bz4KPE5hdHVyYWxlemFEZXNjdWVudG8+PC9OYXR1cmFsZXphRGVzY3VlbnRvPgo8U3ViVG90YWw+MjUwMC4wMDwvU3ViVG90YWw+CjxJbXB1ZXN0bz4KPENvZGlnbz4wMTwvQ29kaWdvPgo8VGFyaWZhPjEzPC9UYXJpZmE+CjxNb250bz4yOTUuMDA8L01vbnRvPgo8L0ltcHVlc3RvPgo8TW9udG9Ub3RhbExpbmVhPjI3OTUuMDA8L01vbnRvVG90YWxMaW5lYT4KPC9MaW5lYURldGFsbGU+CjwvRGV0YWxsZVNlcnZpY2lvPgo8UmVzdW1lbkZhY3R1cmE+CjxDb2RpZ29Nb25lZGE+Q1JDPC9Db2RpZ29Nb25lZGE+CjxUaXBvQ2FtYmlvPjU2NS4zMjwvVGlwb0NhbWJpbz4KPFRvdGFsU2VydkdyYXZhZG9zPjA8L1RvdGFsU2VydkdyYXZhZG9zPgo8VG90YWxTZXJ2RXhlbnRvcz4wPC9Ub3RhbFNlcnZFeGVudG9zPgo8VG90YWxNZXJjYW5jaWFzR3JhdmFkYXM+MjUwMC4wMDwvVG90YWxNZXJjYW5jaWFzR3JhdmFkYXM+CjxUb3RhbE1lcmNhbmNpYXNFeGVudGFzPjA8L1RvdGFsTWVyY2FuY2lhc0V4ZW50YXM+CjxUb3RhbEdyYXZhZG8+MjUwMC4wMDwvVG90YWxHcmF2YWRvPgo8VG90YWxFeGVudG8+MjUwMC4wMDwvVG90YWxFeGVudG8+CjxUb3RhbFZlbnRhPjI3OTUuMDA8L1RvdGFsVmVudGE+CjxUb3RhbERlc2N1ZW50b3M+MDwvVG90YWxEZXNjdWVudG9zPgo8VG90YWxWZW50YU5ldGE+MjgyNS4wMDwvVG90YWxWZW50YU5ldGE+CjxUb3RhbEltcHVlc3RvPjI5NS4wMDwvVG90YWxJbXB1ZXN0bz4KPFRvdGFsQ29tcHJvYmFudGU+MjgyNS4wMDwvVG90YWxDb21wcm9iYW50ZT4KPC9SZXN1bWVuRmFjdHVyYT4KPEluZm9ybWFjaW9uUmVmZXJlbmNpYT4KPFRpcG9Eb2M+PC9UaXBvRG9jPgo8TnVtZXJvPjwvTnVtZXJvPgo8RmVjaGFFbWlzaW9uPjwvRmVjaGFFbWlzaW9uPgo8Q29kaWdvPjwvQ29kaWdvPgo8UmF6b24+PC9SYXpvbj4KPC9JbmZvcm1hY2lvblJlZmVyZW5jaWE+CjxOb3JtYXRpdmE+CjxOdW1lcm9SZXNvbHVjaW9uPkRHVC1SLTQ4LTIwMTY8L051bWVyb1Jlc29sdWNpb24+CjxGZWNoYVJlc29sdWNpb24+MjAtMDItMjAxNyAxMzoyMjoyMjwvRmVjaGFSZXNvbHVjaW9uPgo8L05vcm1hdGl2YT4KPE90cm9zPgo8T3Ryb1RleHRvIGNvZGlnbz0iY29kaWdvMSI+PC9PdHJvVGV4dG8+CjwvT3Ryb3M+CjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIElkPSJTaWduYXR1cmUtMmZlMzgxOWYtNjhkOS00N2I3LWExMWItMmY5YmVlMTViZWEzIj48ZHM6U2lnbmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1IiAvPjxkczpTaWduYXR1cmVNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNyc2Etc2hhMjU2IiAvPjxkczpSZWZlcmVuY2UgSWQ9IlJlZmVyZW5jZS1kNDJhN2ZhOC1lYzk4LTRjMzktOWY1Ny03MDA0YmJhZjM5NjIiIFVSST0iIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiIC8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiIC8+PGRzOkRpZ2VzdFZhbHVlPnZRblZwdGJuUnB3azNnbzBrRm8rbm1XMTNzaUk5SEhLb2ErWlVVaWhDTHc9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48ZHM6UmVmZXJlbmNlIElkPSJSZWZlcmVuY2VLZXlJbmZvIiBVUkk9IiNLZXlJbmZvSWQtU2lnbmF0dXJlLTJmZTM4MTlmLTY4ZDktNDdiNy1hMTFiLTJmOWJlZTE1YmVhMyI+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIgLz48ZHM6RGlnZXN0VmFsdWU+Q2pKUmdKZ0hpT2dGMXIvWnUxZnFwdjNqbEF2WHdUeExwVEFWUmhBZERxMD08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjxkczpSZWZlcmVuY2UgVHlwZT0iaHR0cDovL3VyaS5ldHNpLm9yZy8wMTkwMyNTaWduZWRQcm9wZXJ0aWVzIiBVUkk9IiNTaWduZWRQcm9wZXJ0aWVzLVNpZ25hdHVyZS0yZmUzODE5Zi02OGQ5LTQ3YjctYTExYi0yZjliZWUxNWJlYTMiPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiIC8+PGRzOkRpZ2VzdFZhbHVlPitXMWpBWGRMVkM0cGNsanYzZENrd1dBV01NcGh2U1RDTTlJMUhUUUhoQms9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25lZEluZm8+PGRzOlNpZ25hdHVyZVZhbHVlIElkPSJTaWduYXR1cmVWYWx1ZS0yZmUzODE5Zi02OGQ5LTQ3YjctYTExYi0yZjliZWUxNWJlYTMiPm1CVHJodWhqb2lEY2dURnNQbnpodUFkN3pLdW1td1htYmY3cnE3anZMVjZKQ1hab1dmT0ZEUkNpYTlBTGxmK1IvYWd5Uk1jaVB3T0xUc09wUytFZ25kQWlaT3F2cEZhM2pGWGpNSXdpRDNBamxRUjcvaTlzc0R4K3pnenk1N2hSSnJCTFJiSTNwM1JrellYSDdjMXBZc2RJVytDd3Fob20wQVJtK3hoYW5BQWRZUld4ajhhcEVLaHNVYmdaenJIdG0xUnJVQkZyQ2JJODZkRm5mMHRyVUFWa2dBNVZWV3c3eThNR1k5amdQQWJ2cHI2SkxlaWdTUUFFSStmbmJTRUJaQktvQVMvZjQxNTExNFBhUUlQWGR4Sm9QSW9QanRSNExzOWloUE1Lc1hycWxPM3g0SUYrK284ZitWKzRkU3pUT1VNd01XeDBFV2N0Vlhpa1RBd252dz09PC9kczpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5mbyBJZD0iS2V5SW5mb0lkLVNpZ25hdHVyZS0yZmUzODE5Zi02OGQ5LTQ3YjctYTExYi0yZjliZWUxNWJlYTMiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZXekNDQTBPZ0F3SUJBZ0lHQVdFVUxOZEJNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1Hd3hDekFKQmdOVkJBWVRBa05TTVNrd0p3WURWUVFLRENCTlNVNUpVMVJGVWtsUElFUkZJRWhCUTBsRlRrUkJJQzBnVTBGT1JFSlBXREVNTUFvR0ExVUVDd3dEUkVkVU1TUXdJZ1lEVlFRRERCdERRU0JRUlZKVFQwNUJJRVpKVTBsRFFTQXRJRk5CVGtSQ1QxZ3dIaGNOTVRnd01USXdNVFV5TlRNNFdoY05NakF3TVRJd01UVXlOVE00V2pDQm96RVpNQmNHQTFVRUJSTVFRMUJHTFRBeExURTBORGt0TURJeE1qRVdNQlFHQTFVRUJBd05WRTlTVWtWVElFRkNRVkpEUVRFVk1CTUdBMVVFS2d3TVRVbE1SVTVCSUUxQlVrbEJNUXN3Q1FZRFZRUUdFd0pEVWpFWE1CVUdBMVVFQ2d3T1VFVlNVMDlPUVNCR1NWTkpRMEV4RERBS0JnTlZCQXNNQTBOUVJqRWpNQ0VHQTFVRUF3d2FUVWxNUlU1QklFMUJVa2xCSUZSUFVsSkZVeUJCUWtGU1EwRXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEYStEeWRoYnQxdFp4WkZ2bWhNUGMvR24xZ3lXVTBXSnhmUGRpZ2J1d3VLZFl2VEcrSTdGcW1TdEw2QXpHRi9La01oQmFPQUE5RkFrNndxLzZkeFQrYWMzRzVzTXVFYXUrWjIxbm5UdDl3UzIvK0hUUEU5bzNmS3pYRzRmMGtiVDhtZ3JrZmdNcnZXUUV5K09YeGJRZU5UR2sycFdhaHFybk1MSi9IVHBxWW5Vc0YwVkQwZnpYZ1g3elBRVHBPWTFKSmMzRzMyUVN3WWNLdEl6VFpZTU5STVJOenZWNjNna3IwRWNvZWcvb1c5RmJoZjBUM2hZZjFEZTh1T0tGcWZDR1FKMmZvVG5RWFFPK2ZHWU92KzNFZkVxRitwTjAxaWxtR3FqbkpERHB5bFhTeUdBZ29HdzlMNnRKZmtVSjVPMHJPbWEwejhPYlZ3T3hlM0pFenQrWE5BZ01CQUFHamdjb3dnY2N3SHdZRFZSMGpCQmd3Rm9BVVJpUFNSRSsvVjFraDVMK1QxVENibFV6ajk0Y3dIUVlEVlIwT0JCWUVGSHQrUnZyZjhzWmptWCtEWVJrYVV6TVBWemkrTUFzR0ExVWREd1FFQXdJR3dEQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RCREJqQmdnckJnRUZCUWNCQVFSWE1GVXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQnpPaTh2Y0d0cExtTnZiWEJ5YjJKaGJuUmxjMlZzWldOMGNtOXVhV052Y3k1bmJ5NWpjaTl6ZEdGbkwybHVkR1Z5YldWa2FXRjBaUzF3Wmkxd1pXMHVZM0owTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFBNXNFYkZabjc1NW9EeUk3K0s2d3p0TTZZaWdNZTI2YkNreUE4MlJ3bXgxNmxBTjNmTXVNdXBjN0dtWnAwYVF1SmlOZnJ2RHNTR0lJSS9weUltYjdMTS9ibDczR2RGMXVQcnorMnp0RTFLd1BNYW9mbUlmMU1HOXlWODR5MHA1cmRyS3NHelgvd0tPV25wNVNsajlidXhLZHVzWW9nTmN1bS85REhHSlliL3pMR1pUeVdYNWxOWFNvclRNcTZNMXZXSExrKzc0MHZHR2ppTjE3dCsrVUI2NHU4a0QyRGd3dkdieStNbU9pbHRDUlcwaXFUMitmd0dGeWg2cEhKZEJwTlUwRUw0dlVlMjNZVEtqdU9GL1lweU8rODV4RDJha25NaUFNOW1UZ2pYTEdwRnUyUWxOb2ZsYmxPb2VpdGpaMUZQRjFIbkcxTE9maWk1ZHIza2k1N1FReFpxNWFGUzdEQW9HclNUNXhqa3VTTTJwdTBTWVA0SUd2Q1BvZFZJc2pYNEp3TUpUUEUyTDBYbm5laVg0UXFkQXNSWVUxRStzejBHcnhmTDRsUUFBcjAwRjdrTUEzOSswK2RjUjI0L1g0K3dFZTNkMCtVdk1MK3BtdU1TT09kNEZQRzhMUFJtZ21SUWFBcWpSVmoxcUZjTC9DOW15c1E5eDJScTVCcFpkL3AyM1l5RkRsRXFGWXpVaTE5S2dpTWp0SEJvcDBoWVl6c0YwakxXcUJzc1U0WnBQZ0FxcENvbVBXRDZvdHE1TkE1NDBYMHNrZXd1aXlmaHVwb2x2YnpjT1hzOHluNGtaMXM2TUlLQm9pbzNMZE5Mb29JUjVkZ09mbkVGL0VYY1Z6Yk9iVmtPWlVyR3RHU0lpNXVwWTU5WEJIR0NYb0RCVzNCVXR4dm5yWkRxeVE9PTwvZHM6WDUwOUNlcnRpZmljYXRlPjwvZHM6WDUwOURhdGE+PGRzOktleVZhbHVlPjxkczpSU0FLZXlWYWx1ZT48ZHM6TW9kdWx1cz4ydmc4bllXN2RiV2NXUmI1b1REM1B4cDlZTWxsTkZpY1h6M1lvRzdzTGluV0wweHZpT3hhcGtyUytnTXhoZnlwRElRV2pnQVBSUUpPc0t2K25jVS9tbk54dWJETGhHcnZtZHRaNTA3ZmNFdHYvaDB6eFBhTjN5czF4dUg5SkcwL0pvSzVINERLNzFrQk12amw4VzBIalV4cE5xVm1vYXE1ekN5ZngwNmFtSjFMQmRGUTlIODE0Ris4ejBFNlRtTlNTWE54dDlrRXNHSENyU00wMldERFVURVRjNzFldDRKSzlCSEtIb1A2RnZSVzRYOUU5NFdIOVEzdkxqaWhhbndoa0NkbjZFNTBGMER2bnhtRHIvdHhIeEtoZnFUZE5ZcFpocW81eVF3NmNwVjBzaGdJS0JzUFMrclNYNUZDZVR0S3pwbXRNL0RtMWNEc1h0eVJNN2ZselE9PTwvZHM6TW9kdWx1cz48ZHM6RXhwb25lbnQ+QVFBQjwvZHM6RXhwb25lbnQ+PC9kczpSU0FLZXlWYWx1ZT48L2RzOktleVZhbHVlPjwvZHM6S2V5SW5mbz48ZHM6T2JqZWN0IElkPSJYYWRlc09iamVjdElkLWUxMjdkNGI5LWJhNGUtNDZlMC05ZmVmLTRhOGFiNzI2ZGRiNSI+PHhhZGVzOlF1YWxpZnlpbmdQcm9wZXJ0aWVzIHhtbG5zOnhhZGVzPSJodHRwOi8vdXJpLmV0c2kub3JnLzAxOTAzL3YxLjMuMiMiIElkPSJRdWFsaWZ5aW5nUHJvcGVydGllcy1iOWY1ZGMxZC1lMTczLTQ0M2EtOTFkMy1iNWIyMDhiN2JhMmQiIFRhcmdldD0iI1NpZ25hdHVyZS0yZmUzODE5Zi02OGQ5LTQ3YjctYTExYi0yZjliZWUxNWJlYTMiPjx4YWRlczpTaWduZWRQcm9wZXJ0aWVzIElkPSJTaWduZWRQcm9wZXJ0aWVzLVNpZ25hdHVyZS0yZmUzODE5Zi02OGQ5LTQ3YjctYTExYi0yZjliZWUxNWJlYTMiPjx4YWRlczpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjx4YWRlczpTaWduaW5nVGltZT4yMDE4LTAyLTAyVDIyOjQ5OjQwLTA2OjAwPC94YWRlczpTaWduaW5nVGltZT48eGFkZXM6U2lnbmluZ0NlcnRpZmljYXRlPjx4YWRlczpDZXJ0Pjx4YWRlczpDZXJ0RGlnZXN0PjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiIC8+PGRzOkRpZ2VzdFZhbHVlPlpNYThRUGkzY3E0YlJLYVZYNCszU0haM1lhUENMZnBOaGMwZU1ZVHArdm89PC9kczpEaWdlc3RWYWx1ZT48L3hhZGVzOkNlcnREaWdlc3Q+PHhhZGVzOklzc3VlclNlcmlhbD48ZHM6WDUwOUlzc3Vlck5hbWU+Q049Q0EgUEVSU09OQSBGSVNJQ0EgLSBTQU5EQk9YLCBPVT1ER1QsIE89TUlOSVNURVJJTyBERSBIQUNJRU5EQSAtIFNBTkRCT1gsIEM9Q1I8L2RzOlg1MDlJc3N1ZXJOYW1lPjxkczpYNTA5U2VyaWFsTnVtYmVyPjE1MTY0NjE5Mzg0OTc8L2RzOlg1MDlTZXJpYWxOdW1iZXI+PC94YWRlczpJc3N1ZXJTZXJpYWw+PC94YWRlczpDZXJ0PjwveGFkZXM6U2lnbmluZ0NlcnRpZmljYXRlPjx4YWRlczpTaWduYXR1cmVQb2xpY3lJZGVudGlmaWVyPjx4YWRlczpTaWduYXR1cmVQb2xpY3lJZD48eGFkZXM6U2lnUG9saWN5SWQ+PHhhZGVzOklkZW50aWZpZXI+aHR0cHM6Ly90cmlidW5ldC5oYWNpZW5kYS5nby5jci9kb2NzL2VzcXVlbWFzLzIwMTYvdjQvUmVzb2x1Y2lvbiUyMENvbXByb2JhbnRlcyUyMEVsZWN0cm9uaWNvcyUyMCUyMERHVC1SLTQ4LTIwMTYucGRmPC94YWRlczpJZGVudGlmaWVyPjx4YWRlczpEZXNjcmlwdGlvbiAvPjwveGFkZXM6U2lnUG9saWN5SWQ+PHhhZGVzOlNpZ1BvbGljeUhhc2g+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIiAvPjxkczpEaWdlc3RWYWx1ZT5WOGxWVk5HRENQZW42VkVMUkQxSmE4SEFSRms9PC9kczpEaWdlc3RWYWx1ZT48L3hhZGVzOlNpZ1BvbGljeUhhc2g+PC94YWRlczpTaWduYXR1cmVQb2xpY3lJZD48L3hhZGVzOlNpZ25hdHVyZVBvbGljeUlkZW50aWZpZXI+PC94YWRlczpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjx4YWRlczpTaWduZWREYXRhT2JqZWN0UHJvcGVydGllcz48eGFkZXM6RGF0YU9iamVjdEZvcm1hdCBPYmplY3RSZWZlcmVuY2U9IiNSZWZlcmVuY2UtZDQyYTdmYTgtZWM5OC00YzM5LTlmNTctNzAwNGJiYWYzOTYyIj48eGFkZXM6TWltZVR5cGU+dGV4dC94bWw8L3hhZGVzOk1pbWVUeXBlPjx4YWRlczpFbmNvZGluZz5VVEYtODwveGFkZXM6RW5jb2Rpbmc+PC94YWRlczpEYXRhT2JqZWN0Rm9ybWF0PjwveGFkZXM6U2lnbmVkRGF0YU9iamVjdFByb3BlcnRpZXM+PC94YWRlczpTaWduZWRQcm9wZXJ0aWVzPjwveGFkZXM6UXVhbGlmeWluZ1Byb3BlcnRpZXM+PC9kczpPYmplY3Q+PC9kczpTaWduYXR1cmU+PC9GYWN0dXJhRWxlY3Ryb25pY2E+"
}

facturacr.xml

Hernan Serrano

unread,
Feb 3, 2018, 8:43:54 AM2/3/18
to publice...@googlegroups.com
Imágenes integradas 1


Logrado compañeros. 
Tico Support S. A.
Tel. (506)8819-4369

Jocelyn Roman

unread,
Feb 5, 2018, 10:05:37 PM2/5/18
to Comunidad de Visual Foxpro en Español
Buenas Eduardo,

Ya logro que hacienda le acepte los Xml. En mi caso, solo me rechazan los comprobantes por "Firma invalida". Pero he comparado con otros documentos y considero que no tiene ningún error.

Le agradecería cualquier ayuda que me puedan brindar.

Ricardo Vargas

unread,
Feb 6, 2018, 4:46:51 PM2/6/18
to Comunidad de Visual Foxpro en Español
Buenas tardes Hernan!

Mi nombre es Ricardo Vargas, en la empresa donde trabajo me pidieron investigar sobre la implementación de la factura digital para poder conectar el sistema de ellos con el de Hacinda. Acabo de encontrarme este grupo buscando información sobre porqué es que Hacienda devuelve "rechazado" como respuesta.

Revisando el historial veo que tuvo el mismo problema que yo tengo:

{
    "clave": "50606021800011235031100100001010000000044112344321",
    "fecha": "2018-02-06T14:23:48-06:00",
    "ind-estado": "rechazado",
    "respuesta-xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPE1lbnNhamVIYWNpZW5kYSB..." (la hilera completa está en el archivo adjunto: Prueba.txt).
}

Cómo solucionó el problema de su lado? al final fue por un asunto del componente de la firma o fue por el formato del XML original ?


Muchas gracias por todo y saludos!

--
Ricardo V.
FacturaElectronica.xml
Prueba.txt

Hernan Serrano

unread,
Feb 6, 2018, 8:11:34 PM2/6/18
to publice...@googlegroups.com
Ya usted tiene la respuesta de hacienda. Ahora le toca trabajar. Para corregir los errores.

Hernan Serrano

unread,
Feb 6, 2018, 8:13:17 PM2/6/18
to publice...@googlegroups.com
en el xml

Hernan Serrano

unread,
Feb 6, 2018, 8:41:21 PM2/6/18
to publice...@googlegroups.com
Oigo ofertas para asesorias, en la revision de los errores.



2018-02-06 19:13 GMT-06:00 Hernan Serrano <hernan.serr...@gmail.com>:
en el xml

Carlos Álvarez

unread,
Feb 7, 2018, 7:49:06 AM2/7/18
to Comunidad de Visual Foxpro en Español
Solo decodifique respuesta-xml que le envía Hacienda, allí vienen los mensajes de porqué fue rechazado el archivo. Copie y pegue el contenido de respuesta-xml en https://www.base64decode.org/ y verá los mensajes de error.

Ricardo Vargas

unread,
Feb 7, 2018, 8:17:19 AM2/7/18
to publice...@googlegroups.com
Muchísimas gracias Carlos!!

Me acaba de ayudar muchísimo, ya puedo ver el mensaje de error!

Saludos!!

--
Ricardo V.
Message has been deleted

Geovanni Solís Perez

unread,
Feb 7, 2018, 1:11:24 PM2/7/18
to Comunidad de Visual Foxpro en Español
Saludos compañeros, que bueno que Hernan ya logró la comunicación, ahora bien, que tienen pensado sobre los puntos J K L del articulo 19 que dicen lo siguiente:

j. El sistema de emisión de comprobantes electrónicos debe tener una opción de consulta para uso de la Administración Tributaria, disponible sin demora injustificada, preferiblemente en línea a los datos, copia o descarga en un archivo electrónico de la información consultada y que permita la búsqueda selectiva con al menos los siguientes criterios, los cuales se pueden consultar de manera individual o por rangos:
i. Número de cédula.
ii. Número de factura, tiquete, nota de crédito, nota de débito y mensajes de confirmación.
iii. Medio de pago.
iv. Condiciones de la venta.
v. Fecha de emisión.
vi. Montos.
vii. Tipos de impuestos.
viii. Confirmaciones de aceptación o rechazo por parte de la Dirección General de Tributacion.
ix. Confirmaciones de aceptación o rechazo por parte del obligado tributario
x. Acuse de recibo del documento electrónico.

k. Contar con una interface o facilidad que permita recibir y cargar en forma automatizada los comprobantes electrónicos que emitan sus proveedores, así como emitir la respectiva confirmación de aceptación o rechazo de tales comprobantes.

l. Administrar la información transaccional bajo un esquema de base de datos, que garantice la conservación, integridad, seguridad y accesibilidad de la información de conformidad con lo dispuesto en el artículo 11 de la presente resolución.


Lo anterior porque Facturación Electrónica no se centra solamente en el envío del la factura.  En cuanto al punto J, debemos de hacer algo web para que hacienda consulte?

Saludos.


Geovanni Solis.




Geovanni Solís Perez

unread,
Feb 7, 2018, 1:38:07 PM2/7/18
to Comunidad de Visual Foxpro en Español
Saludos Gregorik, yo estalle el avispero inicialmente con otro tema de este foro, que dice AYUDA, Facturación Electronica en Costa Rica. Envio de JSON., ahi es donde don Hernan ha compartido el código de la creación del XML incluso un programa,   no se, porque no he revisado,  si está completo ya que he estado en otras cosas,  Me parece bien solicitar a Don Hernan, que es el que más la ha pulsiado en este tema y este foro recogiendo información de todos, que él, desinteresadamente, nos guíe un poco al respecto si tenemos dudas al respecto. Yo te agradezco mucho la guia que publicaste arriba con los 7 pasos para generar todo esto, de verdad, gracias, eso va a ser una guía muy importante para mi. Yo no le he entrado de lleno a hacer el envío directo pues como he dicho varias veces, nos hemos comunicado directamente con un tercero, mediante una aplicación en C# hacia ese tercero, código que estoy dispuesto a compartir si alguien le interesa,   pero como tambien he dicho, me interesa hacer el envío directamente.  Me interesa lo de la clase de la firma, pero lo que mas me interesa es que como grupo de Foxeros nos apoyemos porque si se da algún cambio en el futuro puede que clases ya trabajando dejen de ser útiles, seamos un grupo de puertas abiertas. 

Saludos.

Geovanni Solis.


El miércoles, 7 de febrero de 2018, 12:07:38 (UTC-6), Gregorik Domador escribió:
Les recuerdo que tengo lista una clase en foxpro que realiza la firma y otra en PHP puro, ya ayude hasta donde pude, de aqui para adelante podemos negociar, ya que veo que por parte de algunos el foro se va encaminando hacia alla despues de empezar solicitando todos ayuda gratuita.

Geovanni Solís Perez

unread,
Feb 7, 2018, 1:55:48 PM2/7/18
to Comunidad de Visual Foxpro en Español
Que bueno don Hernan, seria interesante compartieras que te falto o que impedia que se lograra la respuesta de hacienda.

Saludos

Geovanni Solis.
Message has been deleted

Hernan Serrano

unread,
Feb 8, 2018, 8:39:14 AM2/8/18
to publice...@googlegroups.com
Compañero, Yo ya obtuve ese status. Hacienda ya me acepto documentos. Por alli en otro hilo. Publique el resultado.

Gracias compañero. Sin su ayuda no hubiera sido posible.


El 8 de febrero de 2018, 6:35, Gregorik Domador <gregori...@gmail.com> escribió:
Ojo, que todavia falta, no veo por ningun lado que alguien haya obtenido un estatus de "aceptado" con su respectiva respuesta firmada por hacienda, lo cual es el estatus final del proceso.

Carlos Álvarez

unread,
Feb 9, 2018, 6:19:10 PM2/9/18
to Comunidad de Visual Foxpro en Español
Saludos! Será posible Don Hernan, que nos comparta un XML firmado y aceptado, para efectos de comparación. Gracias de antemano por su valiosa ayuda.

Hernan Serrano

unread,
Feb 10, 2018, 12:31:21 PM2/10/18
to publice...@googlegroups.com
Con gusto. Adjunto

<?xml version="1.0" encoding="utf-8"?>
<Clave>50610021800310119247800100001010000000013111244635</Clave>
<NumeroConsecutivo>00100001010000000013</NumeroConsecutivo>
<FechaEmision>2018-02-10T10: 36:55+06:00</FechaEmision>
<Emisor>
<Nombre>Gonzalez Servicios Compartidos S.A.</Nombre>
<Identificacion>
<Tipo>02</Tipo>
<Numero>3101192478</Numero>
</Identificacion>
<NombreComercial>Gonzalez Servicios Compartidos S.A.</NombreComercial>
<Ubicacion>
<Provincia>1</Provincia>
<Canton>18</Canton>
<Distrito>01</Distrito>
<Barrio>19</Barrio>
<OtrasSenas>Frente a MaxiPali, San Francisco de Dos Rios
</OtrasSenas>
</Ubicacion>
<Telefono>
<CodigoPais>506</CodigoPais>
<NumTelefono>22509112</NumTelefono>
</Telefono>
<Fax>
<CodigoPais>506</CodigoPais>
<NumTelefono>22505584</NumTelefono>
</Fax>
<CorreoElectronico>contab...@fantasyrooms.com</CorreoElectronico>
</Emisor>
<Receptor>
<Nombre>HOTEL LOS MOCHILEROS S.A.</Nombre>
<Identificacion>
<Tipo>02</Tipo>
<Numero>3</Numero>
</Identificacion>
<NombreComercial>MOTEL VENUS</NombreComercial>
<Ubicacion>
<Provincia>1</Provincia>
<Canton>01</Canton>
<Distrito>06</Distrito>
<OtrasSenas>San Francisco de Dos Rios</OtrasSenas>
</Ubicacion>
</Receptor>
<CondicionVenta>01</CondicionVenta>
<MedioPago>01</MedioPago>
<DetalleServicio>
<LineaDetalle>
<NumeroLinea>1</NumeroLinea>
<Codigo>
<Tipo>01</Tipo>
<Codigo>01</Codigo>
</Codigo>
<Cantidad>1.0000</Cantidad>
<UnidadMedida>Sp</UnidadMedida>
<Detalle>aaa</Detalle>
<PrecioUnitario>1.00000</PrecioUnitario>
<MontoTotal>1.00000</MontoTotal>
<SubTotal>1.00000</SubTotal>
<MontoTotalLinea>1.00000</MontoTotalLinea>
</LineaDetalle>
</DetalleServicio>
<ResumenFactura>
<TotalServExentos>1.00000</TotalServExentos>
<TotalExento>1.00000</TotalExento>
<TotalVenta>1.00000</TotalVenta>
<TotalVentaNeta>1.00000</TotalVentaNeta>
<TotalComprobante>1.00000</TotalComprobante>
</ResumenFactura>
<Normativa>
<NumeroResolucion>DGT-R-48-2016</NumeroResolucion>
<FechaResolucion>07-10-2016 08:00:00</FechaResolucion></FacturaElectronica>

Hernan Serrano

unread,
Feb 10, 2018, 2:41:32 PM2/10/18
to publice...@googlegroups.com
adjunto xml. verificado por hacienda

<?xml version="1.0" encoding="utf-8"?>
<Clave>50610021800011449021200100001010000025019100009999</Clave>
<NumeroConsecutivo>00100001010000025019</NumeroConsecutivo>
<FechaEmision>2018-02-10T10:55:01</FechaEmision>
<Emisor>
<Nombre>TORRES ABARCA MILENA MARIA</Nombre>
<Identificacion>
<Tipo>01</Tipo>
<Numero>114490212</Numero>
</Identificacion>
<NombreComercial>TORRES ABARCA MILENA MARIA</NombreComercial>
<Ubicacion>
<Provincia>1</Provincia>
<Canton>01</Canton>
<Distrito>03</Distrito>
<Barrio>12</Barrio>
<OtrasSenas>COSTADO NORTE DEL MERCADO</OtrasSenas>
</Ubicacion>
<Telefono>
<CodigoPais>506</CodigoPais>
<NumTelefono>24405460</NumTelefono>
</Telefono>
<Fax>
<CodigoPais>506</CodigoPais>
<NumTelefono>24405461</NumTelefono>
</Fax>
<CorreoElectronico>in...@ticosfotcr.com</CorreoElectronico>
</Emisor>
<Receptor>
<Nombre>HERNAN SERRANO MORALES</Nombre>
<Identificacion>
<Tipo>01</Tipo>
<Numero>204280319</Numero>
</Identificacion>
<IdentificacionExtranjero></IdentificacionExtranjero>
<NombreComercial>HERNAN SERRANO MORALES</NombreComercial>
<Ubicacion>
<Provincia>2</Provincia>
<Canton>01</Canton>
<Distrito>01</Distrito>
<Barrio>01</Barrio>
<OtrasSenas>ALAJUELA,DESAMPARADOS,DESAMPARADOS</OtrasSenas>
</Ubicacion>
<Telefono>
<CodigoPais>506</CodigoPais>
<NumTelefono>88194369</NumTelefono>
</Telefono>
<Fax>
<CodigoPais>0</CodigoPais>
<NumTelefono>0</NumTelefono>
</Fax>
<CorreoElectronico>hser...@costarricense.cr</CorreoElectronico>
</Receptor>
<CondicionVenta>01</CondicionVenta>
<PlazoCredito>0</PlazoCredito>
<MedioPago>01</MedioPago>
<DetalleServicio>
<LineaDetalle>
<NumeroLinea>1</NumeroLinea>
<Codigo>
<Tipo>04</Tipo>
<Codigo>COD-0001</Codigo>
</Codigo>
<Cantidad>1</Cantidad>
<UnidadMedida>Unid</UnidadMedida>
<UnidadMedidaComercial>Unid</UnidadMedidaComercial>
<Detalle>ARTICULO DE PRUEBA 1</Detalle>
<PrecioUnitario>2500.00</PrecioUnitario>
<MontoTotal>2500.00</MontoTotal>
<MontoDescuento>0</MontoDescuento>
<NaturalezaDescuento>SIN DESCUENTO</NaturalezaDescuento>
<SubTotal>2500.00</SubTotal>
<Impuesto>
<Codigo>01</Codigo>
<Tarifa>13</Tarifa>
<Monto>325.00</Monto>
</Impuesto>
<MontoTotalLinea>2825.00</MontoTotalLinea>
</LineaDetalle>
</DetalleServicio>
<ResumenFactura>
<CodigoMoneda>CRC</CodigoMoneda>
<TipoCambio>565.32</TipoCambio>
<TotalServGravados>0</TotalServGravados>
<TotalServExentos>0</TotalServExentos>
<TotalMercanciasGravadas>2500.00</TotalMercanciasGravadas>
<TotalMercanciasExentas>0</TotalMercanciasExentas>
<TotalGravado>2500.00</TotalGravado>
<TotalExento>0</TotalExento>
<TotalVenta>2500.00</TotalVenta>
<TotalDescuentos>0</TotalDescuentos>
<TotalVentaNeta>2500.00</TotalVentaNeta>
<TotalImpuesto>325.00</TotalImpuesto>
<TotalComprobante>2825.00</TotalComprobante>
</ResumenFactura>
<Normativa>
<NumeroResolucion>DGT-R-48-2016</NumeroResolucion>
<FechaResolucion>20-02-2017 13:22:22</FechaResolucion>
</Normativa>
<Otros>
<OtroTexto codigo="codigo1"></OtroTexto>
</Otros>
</FacturaElectronica>

El 9 de febrero de 2018, 17:19, Carlos Álvarez <calva...@gmail.com> escribió:
Firmadocr.utf

Hernan Serrano

unread,
Feb 11, 2018, 10:27:26 PM2/11/18
to publice...@googlegroups.com
Imágenes integradas 1
Creada la clase facturacion electronica. Consumida desde Visual Basic o de cSharp si se requiere-

<CorreoElectronico>info@ticosfotcr.com</CorreoElectronico>
</Emisor>
<Receptor>
<Nombre>HERNAN SERRANO MORALES</Nombre>
<Identificacion>
<Tipo>01</Tipo>
<Numero>204280319</Numero>
</Identificacion>
<IdentificacionExtranjero></IdentificacionExtranjero>
<NombreComercial>HERNAN SERRANO MORALES</NombreComercial>
<Ubicacion>
<Provincia>2</Provincia>
<Canton>01</Canton>
<Distrito>01</Distrito>
<Barrio>01</Barrio>
<OtrasSenas>ALAJUELA,DESAMPARADOS,DESAMPARADOS</OtrasSenas>
</Ubicacion>
<Telefono>
<CodigoPais>506</CodigoPais>
<NumTelefono>88194369</NumTelefono>
</Telefono>
<Fax>
<CodigoPais>0</CodigoPais>
<NumTelefono>0</NumTelefono>
</Fax>
<CorreoElectronico>hserrano@costarricense.cr</CorreoElectronico>

Jose Carlos Aguilar

unread,
Feb 13, 2018, 7:45:06 AM2/13/18
to Comunidad de Visual Foxpro en Español
Alli hay dos Repos, donde tienen gran parte del ciclo de FE para CR.

https://bitbucket.org/mjhidalgo/crfactura


El último es de un compañero del foro vfp.

Saludos

Ricardo Vargas

unread,
Feb 13, 2018, 9:59:42 AM2/13/18
to publice...@googlegroups.com
Buenos días a todos ! 

Muchas gracias por todo su apoyo, ya pude lograr que el Ministerio de Hacienda aceptara los comprobantes. De no ser por ustedes jamás habría logrado ponerme en el camino correcto ya que el Ministerio de Hacienda no está contestando.

Tengo una pregunta técnica, haciendo pruebas en Postman del llamado al GET de recepción de comprobantes, por ejemplo: 


Obtengo la respuesta: 

{
    "clave": "50613021800011235031100100001010000000107112344321",
    "fecha": "2018-02-13T08:35:11-06:00",
    "ind-estado": "aceptado",
    "respuesta-xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLT........
}

Sin embargo probando con exactamente la misma información y haciendo el llamado al mismo URL desde mi código en el Response solo recibo los primeros 3 parámetros, pero nunca me llega el de "respuesta-xml": 

{
    "clave": "50613021800011235031100100001010000000107112344321",
    "fecha": "2018-02-13T08:35:11-06:00",
    "ind-estado": "aceptado"
}

A alguno le está pasando lo mismo ? 

Muchas gracias y saludos ! 

---
Ricardo V.



Hernan Serrano

unread,
Feb 13, 2018, 10:19:38 AM2/13/18
to publice...@googlegroups.com
Por que estas consultando el documento.


Ricardo Vargas

unread,
Feb 13, 2018, 11:32:13 AM2/13/18
to publice...@googlegroups.com
La idea es poder desencriptarlo y obtener el mensaje de error automáticamente en caso de que haya.

Saludos! 

Hernan Serrano

unread,
Feb 14, 2018, 9:01:11 AM2/14/18
to publice...@googlegroups.com
Ya tienes hacha la opcion de consultar el comprobante. Cuando se hace esta opcion, tambien envian el resultado.

El 13 de febrero de 2018, 10:32, Ricardo Vargas <ricv...@gmail.com> escribió:
La idea es poder desencriptarlo y obtener el mensaje de error automáticamente en caso de que haya.

Saludos! 

Marco Morales

unread,
Feb 15, 2018, 5:25:36 PM2/15/18
to Comunidad de Visual Foxpro en Español
Si es tan amable me puedes enviar información por email.

gracias.



El martes, 30 de enero de 2018, 14:47:58 (UTC-6), Gregorik Domador escribió:
Tenemos modulo de clase en php y foxpro para elaborar la firma electrónica digital XAdES-EPES para Costa Rica, que es la parte más difícil. Si estan interesados, podemos negociar. Ambas clases no requieren ningun tipo de libreria externa, estan echas 100% en PHP y FoxPro, la del foxpro solo requiere el archivo openssl.exe para calcular los digest de la firma.

Roy Rojas

unread,
Feb 17, 2018, 12:35:08 PM2/17/18
to Comunidad de Visual Foxpro en Español
Hola, cuando haces el post la respuesta solo te dice si es aceptado y está proesando el archivo.
Cuando haces el get te va a decir toda la informacion completa, con el resultado del xml de respuesta.

Luis Andrés Quesada Solis

unread,
Mar 26, 2018, 6:44:12 PM3/26/18
to Comunidad de Visual Foxpro en Español
Compa, necesito el modulo en php de factura como hacemos

Jean Pierre Adonis De La Cruz Garcia

unread,
Mar 26, 2018, 8:15:30 PM3/26/18
to Comunidad de Visual Foxpro en Español
si lo esean en PHP, yo se los puedo desarrollar, si es que lo desean, se pueden comunicar a mi email elconsultor...@gmail.com

facelec...@gmail.com

unread,
Apr 5, 2018, 10:29:58 AM4/5/18
to Comunidad de Visual Foxpro en Español
Saludos amigos, tengo disponible para la venta el código fuente para Facturación Electrónica Costa Rica en Visual FoxPro 9, 100% código FoxPro sin librerias ni dlls externas, solo se requiere el uso del openssl para calculo de firma. Incluyo Demostrativo Ejecutable .Exe 100% operativo que muestra la operacion del módulo, conecta con hacienda, solicita token, calcula la firma, envia el documento y recibe la respuesta.
Adjunto captures de pantalla.
Imagenes.zip

alonso mevaz

unread,
Apr 6, 2018, 12:25:24 PM4/6/18
to Comunidad de Visual Foxpro en Español
Por si les interesa para varias plataformas:

http://costarica.facturaelectronica.lat/

saludos

jorge Hernandez

unread,
Apr 17, 2018, 2:05:39 PM4/17/18
to Comunidad de Visual Foxpro en Español
Buenas Días.

Me puedes enviar la información a jm...@tecnolistic.com
Gracias

Kerwin Urdaneta

unread,
Apr 17, 2018, 2:48:54 PM4/17/18
to publice...@googlegroups.com
Por favor envíame información 
--
        
  
..
Kerwin Urdaneta
Reset Consultores
San José - Costa Rica

Oscar Bonet

unread,
Apr 17, 2018, 3:22:41 PM4/17/18
to publice...@googlegroups.com
tienes el codigo y cuanto vale para Colombia?

_________________
Oscar

facelec...@gmail.com

unread,
Apr 20, 2018, 11:30:32 AM4/20/18
to Comunidad de Visual Foxpro en Español
Saludos amigo, el codigo no sirve para Colombia, es para Costa Rica, es muy similar pero necesita varias adaptaciones para que sirva para colombia, a corto plazo estare trabajando en el fuente para Colombia pero no será ahora mismo porque no tengo tiempo.

RavenCorpSA SA

unread,
May 9, 2018, 3:40:31 PM5/9/18
to Comunidad de Visual Foxpro en Español
Me puedes enviar un mensaje por whatsapp al 7011-2456, me gustaría ver como funciona tu app

Hernan Serrano

unread,
May 10, 2018, 11:32:13 AM5/10/18
to publice...@googlegroups.com
CLEAR
*ObtieneTOKEN()
*ConsultarDocumento()
EnviarDocumento()
*FirmarDoc()

        FUNCTION ObtieneTOKEN()
        ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.APIUsuario = "cpf-01-1...@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
            &&Ejemplo de OBTENER TOKEN
            ?ObjetoP.PRO_ConectaDGTD(ObjetoP.IDP_CLIENT_ID, ObjetoP.IDP_URI, ObjetoP.APIUsuario, ObjetoP.APIClave)
            RELEASE ObjetoP
        ENDFUNC 

        FUNCTION ConsultarDocumento()
            &&Definimos las variables locales. Se toman de parametros o del programa principal.
            Dir_archivo = "D:\\Trabajos\\PRONEXIS\\facturacr.xml"
            XML_Proceso = ""
            Dir_Base = "D:\\Trabajos\\PRONEXIS\\"
            text1=""
            ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.URL_RECEPCION = "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/"
            ObjetoP.APIUsuario = "cpf-01-1...@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
XML_Proceso = FileToStr( Dir_archivo )

            ObjetoP.PRO_ProcesoExtraeDataXML(XML_Proceso, Dir_Base)
            Stoken = ObjetoP.PRO_GetToken(ObjetoP.IDP_CLIENT_ID, ObjetoP.IDP_URI, ObjetoP.APIUsuario, ObjetoP.APIClave)

            ObjetoP.PS_EstadoDocumento = ObjetoP.COM_ConsultaEstatus(ObjetoP.URL_RECEPCION, Stoken, ObjetoP.PS_Clave)

            ?"Consecutivo: " + ObjetoP.PS_Consecutivo
            ?"Clave: " + ObjetoP.PS_Clave
            ?"Emisor ID: " + ObjetoP.PS_EmisorNumero
            ?"Emisor Tipo ID: " + ObjetoP.PS_EmisorTipo
            ?"Receptor ID: " + ObjetoP.PS_ReceptorNumero
            ?"Receptor Tipo ID: " + ObjetoP.PS_ReceptorTipo
            ?"Estado Documento: "+ObjetoP.PS_EstadoDocumento
        ENDFUNC 


        FUNCTION EnviarDocumento()
            &&Definimos las variables locales. Se toman de parametros o del programa principal.
            Dir_archivo = "D:\\Trabajos\\PRONEXIS\\facturacr.xml"
            XML_Proceso = ""
            Nom_Cert = "011449021237.p12"
            Clave_cert = "1234"
            Dir_Base = "D:\Trabajos\PRONEXIS\"
            ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.URL_RECEPCION = "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/"
            ObjetoP.APIUsuario = "cpf-01-1...@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
XML_Proceso = FileToStr( Dir_archivo )
            ObjetoP.PS_XMLFirmado = ObjetoP.PRO_ProcesoFirmaXML(XML_Proceso, Nom_Cert, Clave_cert, Dir_Base)
IF ObjetoP.PS_XMLFirmado # "Error"
            ObjetoP.PRO_ProcesaEnvio(ObjetoP.PS_XMLFirmado, ObjetoP.IDP_CLIENT_ID, ObjetoP.IDP_URI, ObjetoP.APIUsuario, ObjetoP.APIClave, Dir_Base)
            ELSE
            Console.WriteLine(ObjetoP.PS_XMLFirmado);
            RETURN 
            ENDIF
            &&            Console.WriteLine(ObjetoP.PS_JSONRespuesta);

            ?"Consecutivo: " + ObjetoP.PS_Consecutivo
            ?"Clave: " + ObjetoP.PS_Clave
            ?"Emisor ID: " + ObjetoP.PS_EmisorNumero
            ?"Emisor Tipo ID" + ObjetoP.PS_EmisorTipo
            ?"Receptor ID: " + ObjetoP.PS_ReceptorNumero
            ?"Receptor Tipo ID" + ObjetoP.PS_ReceptorTipo
            ?"Estado Documento: " + ObjetoP.PS_EstadoDocumento
            *?"Estado Documento: " + ObjetoP.PS_JSONEnvio
            *?"Estado Documento: " + ObjetoP.PS_JSONRespuesta}
        ENDFUNC 
FUNCTION FirmarDoc()
            Dir_archivo = "D:\\Trabajos\\PRONEXIS\\facturacr.xml"
            XML_Proceso = ""
            nombreArchivo = "00100001010000000092"
            Nom_Cert = "011449021237.p12"
            Clave_cert = "1234"
            Dir_Base = "D:\Trabajos\PRONEXIS\"
            ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.URL_RECEPCION = "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/"
            ObjetoP.APIUsuario = "cpf-01-1...@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
ObjetoP.FirmarXAdes(Dir_Base, nombreArchivo + "_01_SF.xml", Dir_Base, nombreArchivo + "_02_Firmado.xml", Dir_Base + Nom_Cert, Clave_cert)
RETURN 

Hernan Serrano

unread,
May 10, 2018, 11:49:26 AM5/10/18
to publice...@googlegroups.com


Esta es una pantalla, que me consegui en españa. Esta tenia una funcionalidad limintada. Yo le agregue todas las funcionalidades que se necesitan para Costa Rica

El 10 de mayo de 2018, 9:32, Hernan Serrano <hernan.serr...@gmail.com> escribió:
CLEAR
*ObtieneTOKEN()
*ConsultarDocumento()
EnviarDocumento()
*FirmarDoc()

        FUNCTION ObtieneTOKEN()
        ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.APIUsuario = "cpf-01-1449-0212@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
            &&Ejemplo de OBTENER TOKEN
            ?ObjetoP.PRO_ConectaDGTD(ObjetoP.IDP_CLIENT_ID, ObjetoP.IDP_URI, ObjetoP.APIUsuario, ObjetoP.APIClave)
            RELEASE ObjetoP
        ENDFUNC 

        FUNCTION ConsultarDocumento()
            &&Definimos las variables locales. Se toman de parametros o del programa principal.
            Dir_archivo = "D:\\Trabajos\\PRONEXIS\\facturacr.xml"
            XML_Proceso = ""
            Dir_Base = "D:\\Trabajos\\PRONEXIS\\"
            text1=""
            ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.URL_RECEPCION = "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/"
            ObjetoP.APIUsuario = "cpf-01-1449-0212@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
XML_Proceso = FileToStr( Dir_archivo )

            ObjetoP.PRO_ProcesoExtraeDataXML(XML_Proceso, Dir_Base)
            Stoken = ObjetoP.PRO_GetToken(ObjetoP.IDP_CLIENT_ID, ObjetoP.IDP_URI, ObjetoP.APIUsuario, ObjetoP.APIClave)

            ObjetoP.PS_EstadoDocumento = ObjetoP.COM_ConsultaEstatus(ObjetoP.URL_RECEPCION, Stoken, ObjetoP.PS_Clave)

            ?"Consecutivo: " + ObjetoP.PS_Consecutivo
            ?"Clave: " + ObjetoP.PS_Clave
            ?"Emisor ID: " + ObjetoP.PS_EmisorNumero
            ?"Emisor Tipo ID: " + ObjetoP.PS_EmisorTipo
            ?"Receptor ID: " + ObjetoP.PS_ReceptorNumero
            ?"Receptor Tipo ID: " + ObjetoP.PS_ReceptorTipo
            ?"Estado Documento: "+ObjetoP.PS_EstadoDocumento
        ENDFUNC 


        FUNCTION EnviarDocumento()
            &&Definimos las variables locales. Se toman de parametros o del programa principal.
            Dir_archivo = "D:\\Trabajos\\PRONEXIS\\facturacr.xml"
            XML_Proceso = ""
            Nom_Cert = "011449021237.p12"
            Clave_cert = "1234"
            Dir_Base = "D:\Trabajos\PRONEXIS\"
            ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.URL_RECEPCION = "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/"
            ObjetoP.APIUsuario = "cpf-01-1449-0212@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIUsuario = "cpf-01-1449-0212@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
ObjetoP.FirmarXAdes(Dir_Base, nombreArchivo + "_01_SF.xml", Dir_Base, nombreArchivo + "_02_Firmado.xml", Dir_Base + Nom_Cert, Clave_cert)
RETURN 


El 9 de mayo de 2018, 13:40, RavenCorpSA SA <raven...@gmail.com> escribió:
Me puedes enviar un mensaje por whatsapp al 7011-2456, me gustaría ver como funciona tu app

El viernes, 20 de abril de 2018, 9:30:32 (UTC-6), facelec...@gmail.com escribió:
Saludos amigo, el codigo no sirve para Colombia, es para Costa Rica, es muy similar pero necesita varias adaptaciones para que sirva para colombia, a corto plazo estare trabajando en el fuente para Colombia pero no será ahora mismo porque no tengo tiempo.



--
Tico Support S. A.
Tel. (506)8819-4369

Raiam Quesada

unread,
May 11, 2018, 12:11:00 PM5/11/18
to publice...@googlegroups.com
Hola Amigos

tenia una duda muy puntual... estoy haciendo la parte de mensajeReceptor, sin embargo hay un campo que se llama NumeroConsecutivoReceptor, pero no encuentro informaicon del que se refiere, como se genera, ni que estructura deberia llevar este, ojo, no hablo del consecutivo que va en la clave, sino de este otro especificamente

ojala alguien tenga info acerca de esto, me tiene bloqueado ;(

Gustavo Gutierrez

unread,
May 11, 2018, 2:06:51 PM5/11/18
to Comunidad de Visual Foxpro en Español
Interesante Hernan. 
Sería posible que enviaras el link. ?

Gracias.


El jueves, 10 de mayo de 2018, 9:49:26 (UTC-6), Hernan Serrano escribió:


Esta es una pantalla, que me consegui en españa. Esta tenia una funcionalidad limintada. Yo le agregue todas las funcionalidades que se necesitan para Costa Rica
El 10 de mayo de 2018, 9:32, Hernan Serrano <hernan.serr...@gmail.com> escribió:
CLEAR
*ObtieneTOKEN()
*ConsultarDocumento()
EnviarDocumento()
*FirmarDoc()

        FUNCTION ObtieneTOKEN()
        ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.APIUsuario = "cpf-01-1...@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
            &&Ejemplo de OBTENER TOKEN
            ?ObjetoP.PRO_ConectaDGTD(ObjetoP.IDP_CLIENT_ID, ObjetoP.IDP_URI, ObjetoP.APIUsuario, ObjetoP.APIClave)
            RELEASE ObjetoP
        ENDFUNC 

        FUNCTION ConsultarDocumento()
            &&Definimos las variables locales. Se toman de parametros o del programa principal.
            Dir_archivo = "D:\\Trabajos\\PRONEXIS\\facturacr.xml"
            XML_Proceso = ""
            Dir_Base = "D:\\Trabajos\\PRONEXIS\\"
            text1=""
            ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.URL_RECEPCION = "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/"
            ObjetoP.APIUsuario = "cpf-01-1...@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
XML_Proceso = FileToStr( Dir_archivo )

            ObjetoP.PRO_ProcesoExtraeDataXML(XML_Proceso, Dir_Base)
            Stoken = ObjetoP.PRO_GetToken(ObjetoP.IDP_CLIENT_ID, ObjetoP.IDP_URI, ObjetoP.APIUsuario, ObjetoP.APIClave)

            ObjetoP.PS_EstadoDocumento = ObjetoP.COM_ConsultaEstatus(ObjetoP.URL_RECEPCION, Stoken, ObjetoP.PS_Clave)

            ?"Consecutivo: " + ObjetoP.PS_Consecutivo
            ?"Clave: " + ObjetoP.PS_Clave
            ?"Emisor ID: " + ObjetoP.PS_EmisorNumero
            ?"Emisor Tipo ID: " + ObjetoP.PS_EmisorTipo
            ?"Receptor ID: " + ObjetoP.PS_ReceptorNumero
            ?"Receptor Tipo ID: " + ObjetoP.PS_ReceptorTipo
            ?"Estado Documento: "+ObjetoP.PS_EstadoDocumento
        ENDFUNC 


        FUNCTION EnviarDocumento()
            &&Definimos las variables locales. Se toman de parametros o del programa principal.
            Dir_archivo = "D:\\Trabajos\\PRONEXIS\\facturacr.xml"
            XML_Proceso = ""
            Nom_Cert = "011449021237.p12"
            Clave_cert = "1234"
            Dir_Base = "D:\Trabajos\PRONEXIS\"
            ObjetoP = CREATEOBJECT("FElectronicaCR")
            ObjetoP.IDP_CLIENT_ID = "api-stag"
            ObjetoP.URL_RECEPCION = "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/"
            ObjetoP.APIUsuario = "cpf-01-1...@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIUsuario = "cpf-01-1...@stag.comprobanteselectronicos.go.cr"
            ObjetoP.APIClave = "}:m_CXS:bO%e^_jI}?l*"
ObjetoP.FirmarXAdes(Dir_Base, nombreArchivo + "_01_SF.xml", Dir_Base, nombreArchivo + "_02_Firmado.xml", Dir_Base + Nom_Cert, Clave_cert)
RETURN 


El 9 de mayo de 2018, 13:40, RavenCorpSA SA <raven...@gmail.com> escribió:
Me puedes enviar un mensaje por whatsapp al 7011-2456, me gustaría ver como funciona tu app

El viernes, 20 de abril de 2018, 9:30:32 (UTC-6), facelec...@gmail.com escribió:
Saludos amigo, el codigo no sirve para Colombia, es para Costa Rica, es muy similar pero necesita varias adaptaciones para que sirva para colombia, a corto plazo estare trabajando en el fuente para Colombia pero no será ahora mismo porque no tengo tiempo.



--
Tico Support S. A.
Tel. (506)8819-4369

Hernan Serrano

unread,
May 11, 2018, 9:06:52 PM5/11/18
to publice...@googlegroups.com
No tengo un link. Pero si gustas podemos hacer una conferencia por skype y te muestro un sistema que tenemos en demo en al nube.

Carlos Morales Moreno

unread,
May 17, 2018, 3:27:12 PM5/17/18
to Comunidad de Visual Foxpro en Español
Hola amigos. Quien me podria ayudar con lo de factura electronica. No tengo nada, solo mi sistema en VB.net 2015 

Publicidad Web CR Ing. Denis Ortiz

unread,
Jun 17, 2018, 1:52:59 PM6/17/18
to Comunidad de Visual Foxpro en Español
Buen día señores:
Nosotros hemos pasado muchos días y noches integrando este proceso de Facturación Electrónica. El trabajo es arduo y se requiere de colaboración de varios desarrolladores con sus respectivos conocimientos en varios campos, hemos invertido tiempo y dinero ya que por experiencia, una sola persona no podría llevar a cabo este proceso que a Hacienda le ha costado meses en crearlo con un equipo muy grande que han de tener.

Nosotros tenemos desarrollada un aplicación desde convertir las facturas de un ERP a al estándar que pide el Ministerio de Hacienda, Proceso de creación a documento XML con el proceso exclusivo como lo pide Hacienda(no con un generador xml), el firmado de documento con la llave criptográfica,  conversión de documento JSON con los datos de emisor y receptor y documento XML en base 64, Comunicación con Hacienda mediante Tokens, envío del documento y consulta de documentos con los tokens, Recepción del JSON de Respuesta y Transcripción en formato XML de los errores que tiene el documento que en la mayoría de los casos es por mal procesamiento de los datos o campos inconsistentes. Todos estos procesos los podemos ofrecer en forma independiente de acuerdo con cada necesidad. Tambíen podemos ofrecer el almacenamiento de estos datos en la nube con protoclo HTTPS.

Esto les podría servir a desarrolladores que quieren ofrecer servicios de este tipo y ahorrarse tiempos de desarrollado y ofrecer soluciones a los clientes que al final es lo que ellos percibirán.

Cualquier consulta con gusto a: facturael...@publicidadwebcr.com

Publicidad Web CR Ing. Denis Ortiz

unread,
Jun 17, 2018, 1:58:22 PM6/17/18
to Comunidad de Visual Foxpro en Español
Buen día señores:
Nosotros hemos pasado muchos días y noches integrando este proceso de Facturación Electrónica. El trabajo es arduo y se requiere de colaboración de varios desarrolladores con sus respectivos conocimientos en varios campos, hemos invertido tiempo y dinero ya que por experiencia, una sola persona no podría llevar a cabo este proceso que a Hacienda le ha costado meses en crearlo con un equipo muy grande que han de tener.

Nosotros tenemos desarrollada un aplicación desde convertir las facturas de un ERP a al estándar que pide el Ministerio de Hacienda, Proceso de creación a documento XML con el proceso exclusivo como lo pide Hacienda(no con un generador xml), el firmado de documento con la llave criptográfica,  conversión de documento JSON con los datos de emisor y receptor y documento XML en base 64, Comunicación con Hacienda mediante Tokens, envío del documento y consulta de documentos con los tokens, Recepción del JSON de Respuesta y Transcripción en formato XML de los errores que tiene el documento que en la mayoría de los casos es por mal procesamiento de los datos o campos inconsistentes. Todos estos procesos los podemos ofrecer en forma independiente de acuerdo con cada necesidad. Tambíen podemos ofrecer el almacenamiento de estos datos en la nube con protocolo HTTPS.

Podríamos integrar los registros de facturas de su sistema. Consultas a facturael...@publicidadwebcr.com

Hernan Serrano

unread,
Jun 19, 2018, 11:19:00 AM6/19/18
to publice...@googlegroups.com
Ese mismo trabajo que ustedes ofrecen yo tambien lo ofresco. Por que desde Diciembre tengo desarrolladas las librerias.
A un muy buen precio, para todos los desarrolladores que deseen ahorrarse el tiempo y solo desarrollar las utilidades que se necesitan en sus sistemas.

Asi que si desean información me escriben un correo y con gusto. Les hago una demo.

El 17 de junio de 2018, 11:58, Publicidad Web CR Ing. Denis Ortiz <denisor...@gmail.com> escribió:
Buen día señores:
Nosotros hemos pasado muchos días y noches integrando este proceso de Facturación Electrónica. El trabajo es arduo y se requiere de colaboración de varios desarrolladores con sus respectivos conocimientos en varios campos, hemos invertido tiempo y dinero ya que por experiencia, una sola persona no podría llevar a cabo este proceso que a Hacienda le ha costado meses en crearlo con un equipo muy grande que han de tener.

Nosotros tenemos desarrollada un aplicación desde convertir las facturas de un ERP a al estándar que pide el Ministerio de Hacienda, Proceso de creación a documento XML con el proceso exclusivo como lo pide Hacienda(no con un generador xml), el firmado de documento con la llave criptográfica,  conversión de documento JSON con los datos de emisor y receptor y documento XML en base 64, Comunicación con Hacienda mediante Tokens, envío del documento y consulta de documentos con los tokens, Recepción del JSON de Respuesta y Transcripción en formato XML de los errores que tiene el documento que en la mayoría de los casos es por mal procesamiento de los datos o campos inconsistentes. Todos estos procesos los podemos ofrecer en forma independiente de acuerdo con cada necesidad. Tambíen podemos ofrecer el almacenamiento de estos datos en la nube con protocolo HTTPS.

Podríamos integrar los registros de facturas de su sistema. Consultas a facturaelectronica@publicidadwebcr.com

alonso mevaz

unread,
Jun 19, 2018, 2:55:20 PM6/19/18
to Comunidad de Visual Foxpro en Español

Por si les interesa algo multiplataforma para generación de XML, firma y envío:

http://costarica.facturaelectronica.lat/
It is loading more messages.
0 new messages