Sobre el autor

Roy Rojas

Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub

49 Comentarios

  1. 1

    Jose Espinoza

    Buenas Tades, exc documentos. Una consulta y existe algun API, para conocer todos los documentos que estan pendientes por aprobar ??

    Gracias

    Responder
    1. 1.1

      Roy Rojas

      A que te refieres con pendientes de aprobar?
      Por que cuando vos envias la factura a hacienda te dan respuesta máxima en 3 horas y despues para aprobar o rechazar facturas de la parte receptora tienes hasta 8 días para hacerlo, durante este tiempo el emisor deberia de estar consultando por lo menos unas vez al dia el estado de esta factura, y solo consultar las que esten pendientes de aprovación/rechazo.

      Responder
  2. 2

    Marcos Flores

    Hola Roy muy buena información yo pronto tendré que agarrarme con un proyecto en php y tambien en c# que trabaje con la factura electronica. Desde ya he ido investigando y tu blog me cae de maravilla. Sigue asi

    Muy buen material, he aprendido cosas interesantes

    Gracias

    Responder
    1. 2.1

      Roy Rojas

      Excelente, que bueno haberte ayudado.

      Responder
  3. 3

    Danny Ortiz

    Saludos. Como es el proceso para de enviar este documento. la factura electronica me la envía el emisor, entonces mi software o app debe crear este mensaje a partir del xml de la factura o en que direccion debo consultar los mensajes electronicos.

    Responder
    1. 3.1

      Roy Rojas

      El mensaje receptor lo haces basado en los datos del XML que te envía tu proveedor.
      De ahí tomas la clave, numero de cédula del emisor, total de la factura, impuestos, y creas el XML, el proceso de firma y envío es igual a enviar una factura a hacienda.

      Responder
  4. 4

    Doris

    Buenas, hoy recibi un correo de GTI, donde un cliente mio acepto una factura que le envie. y en el correo viene Clave numerica del mensaje de aceptacion, y es de 50 caracteres, como se compone esa clave? tenes la documentacion.

    Responder
  5. 5

    William Ramírez Zúñiga

    Hola Roy, cuando inicié con mi proyecto en c#, te hice unas cuantas consultas y me fue de muchísima ayuda tus aportes, te envié un correo solicitándote ayuda de nuevo, pero te voy a pedir por aquí también, necesito obtener el xml de la respuesta de hacienda, me puedes ayudar con eso.

    Responder
    1. 5.1

      Roy Rojas

      Hola, aqui hay un ejemplo. En uno de los tabs está el de respuesta de hacienda.
      https://github.com/royrojas/FacturaElectronicaCR

      Responder
  6. 6

    German

    Hola Roy.
    Una consulta, en teoría todas las facturas recibido llega como correo, uno no puede simplemente aceptando y rechazando directamente en la página de hacienda?
    O sea como emisor usamos nuestro sistema para enviar factura a cliente, y posteriormente los clientes usa Api atv de Hacienda para aceptar factura reciBido directamente?
    https://www.hacienda.go.cr/ATV/ComprobanteElectronico/frmSubirXML.aspx

    Responder
    1. 6.1

      Roy Rojas

      Hola German, perdona pero no entendí tu pregunta, podrías aclararla.

      Responder
  7. 7

    Leomar Tua

    Saludos sr roy, el presenta es para perdile un poco de apoyo con la firma xades, pude observar el trabajo del proyecto FirmaXadesNet y me percato que indica la posible firma xades-bes, serian tan amable de orientarme como podria realizar este tipo de firma con dicha libreria en el github.

    Muchas gracias de antemano

    Responder
    1. 7.1

      Roy Rojas

      Hola, la firma del XML se hace con Xades-Epes aquí esta el ejemplo https://github.com/royrojas/FacturaElectronicaCR
      y en la carpeta componentes están los dll requeridos. Y en la carpeta Clases/Firma.cs esta el ejemplo para firmar.

      Responder
      1. 7.1.1

        Juan

        Hola, que tal.

        me base en tu ejemplo para la firma del xml, la vdd me ah sido de bastante utilidad, muchas gracias por tu aporte, solo que eh tenido unos problemas, la firma cuando genero un tiquete electronico esta correcta, cuando hago una factura electronica y la envio, me dice que la firma es incorrecta y utilizo el mismo metodo de firma para ambos, me podrias dar una sugerencia de que podria revisar, te lo agradeceria mucho.

        Saludos.

        Responder
  8. 8

    Nicolas Madrigal Sandi

    no puedo enviar xml ya firmado y generado por mi, seria por medio de un formulario, pero no se como adaptarlo.
    alguna sugerencia?
    Nicolas Madrigal Sandi
    22506110 70506141

    Responder
    1. 8.1

      Roy Rojas

      Hola Nicolas aqui hay un ejemplo de como enviar los xml a hacienda.
      https://github.com/royrojas/FacturaElectronicaCR

      Responder
  9. 9

    Juan

    ya los habia revisado y utilizo el ultimo.

    seria probar con cada uno.

    Saludos

    Responder
  10. 10

    Roberto Quiros

    Don Roy, muchas gracias por las explicaciones tan detalladas, tengo una consulta, quizá usted me puede ayudar:
    – una vez que hacienda me devuelve la aprobación de una factura, yo tengo que devolverle al cliente un PDF, este PDF es el firmado? o alguno que me devuelve hacienda? debe tener algún formato especifico?

    De antemano las gracias por la ayuda.

    Responder
    1. 10.1

      Roy Rojas

      Usted le debe de enviar al cliente, el XML firmado y la factura gráfica en PDF.

      Responder
  11. 11

    Ruddy

    Don Roy,

    Cual es la diferencia entre obtener un aceptado, rechazado o error durante el envío de datos? Solamente me funcionan (aceptado) con los ejemplos en CR libre. El de arriba e incluso utilizando los valores una factura real de un proveedor me da rechazado. Alguna sugerencia?

    Responder
    1. 11.1

      Roy Rojas

      Hola, habria que ver el error completo que te retorna el servicio de hacienda. Escribeme al correo.

      Responder
  12. 12

    Mauricio Flores

    Buenas tardes Roy,

    Tengo algunas preguntas espero me puedas ayudar con ellas:
    1 – ¿Cual es la diferencia en cuanto a su utilidad de ir a realizar las consultas por medio de: /recepcion/{clave} y /Comprobantes/{clave}?
    2 – ¿Qué pasaría si una factura es rechazada por el Receptor (Cliente) después de haber sido aceptada por Hacienda?

    A espera de respuesta de antemano Gracias.
    Mauricio Flores
    Santa Ana, El Salvador.

    Responder
    1. 12.1

      Roy Rojas

      1. debes usar /recepcion/{clave}
      ya que ahi te retorna el XML de respuesta de hacienda y mucho más información. En Comprobantes la información es muy limitada y es para otro tipo de reportes.

      2. Si una factura es rechazada por el Receptor, debes hacer una NC y generarle una nueva factura con las correcciones correspondientes. Hacienda te acepta una factura minutos después de haberla enviada y el cliente tiene hasta 8 dias para aceptarla o rechazarla.

      Responder
      1. 12.1.1

        Mauricio Flores

        Gracias Roy,

        Siempre con la pregunta 2, la forma de darme cuenta si el cliente rechaza o no el comprobante es consultar durante esos 8 días usando /recepción/{clave}? o existe una forma en especifico para saber la respuesta del cliente?

        Responder
        1. 12.1.1.1

          Roy Rojas

          El Receptor tiene la olbligación de reportarte si acepta o rechaza la factura. No hay forma de que usted como emisor se de cuenta de eso por ningún medio.

          Responder
  13. 13

    Rolando

    Hola Roy, gracias a tu información e podido avanzar con mi proyecto, solo tengo una consulta, como puedo saber si la pagina de hacienda esta caída? Hoy por un par de minutos no pude enviar las facturas pero luego si, probé el internet pero estaba bien, supongo que fue problema de hacienda

    Responder
    1. 13.1

      Roy Rojas

      Hola, puedes usar este sitio web para preparar tu aplicacion para cualquier tipo de respuesta
      https://httpstat.us/

      ahi estan todos los posibles retornos de un httprequest.

      Responder
  14. 14

    Rolando Obando

    Hola Roy, primero decirte que gracias a tu información he podido avanzar con mis proyecto, te consultó lo siguiente: hoy me sucedió que no pude enviar facturas por alrededor de 10min aproximadamente, luego trabajo el sistema como si nada … Supongo que fue problema de la página de hacienda.. Pero como no hago para comprobar que es la página la que esta caída ? Donde puede accesar para saber ? Te agradezco de antemano!

    Responder
    1. 14.1

      Roy Rojas

      Si hacienda estuvo fallando hoy en la tarde y es probable que siga intermitente.

      puedes usar este sitio web para preparar tu aplicacion para cualquier tipo de respuesta
      https://httpstat.us/

      ahi estan todos los posibles retornos de un httprequest.

      Responder
  15. 15

    Carlos Sánchez

    Hola Roy, buen dia.
    En el ejemplo de GitHub, se usa el nodo del mensaje receptor y se asigna a txtEmisorNumero y se usa para asigarle valor a txtReceptorNumero.

    No termino de comprender si al txtEmisorNumero se le asigna , y a txtReceptorNumero se le asigan . y el ejemplo ¿esta con las variables incorrectas?

    Un saludo fraterno.

    https://github.com/royrojas/FacturaElectronicaCR/blob/1151652b7e5dd86e6d0ddb3dfbb6b14ffdf8981e/FacturaElectronicaCR_VB/TestFacturaXMLCR.vb#L70-L77

    Responder
    1. 15.1

      Roy Rojas

      te lo contesté por correo. Era solo para reutilizar el código del demo.

      Responder
  16. 16

    Randall Calvo Anchía

    Buenos días. Les agradezco mucho todo el trabajo que hacen con este sitio.

    ¿Qué pasa cuando Hacienda me rechaza una factura/ND/NC?

    ¿Hay alguna diferencia en el paso a seguir si el cliente ya la recibió o no la ha recibido?

    ¿Admite Hacienda que mi cliente envíe una respuesta de aceptación por ese documento que me generó un mensaje de error?

    ¿Debo reversar ese documento aunque Hacienda me lo haya rechazado?

    Responder
    1. 16.1

      Roy Rojas

      – Cuando hacienda te rechaza una NC debes hacer una ND para ajustarla y viceversa.
      – Si el cliente ya recibió un documento y despues Hacienda te lo rechazó, entonces debes enviarle al cliente los documentos de ajuste NC y despues enviarle la factura corregida.
      – Si un documento fue rechazado por Hacienda, no se puede aceptar ni rechazar, te va a dar error el sistema.
      – Si debes de reversar todo documento rechazado.

      Responder
  17. 17

    rolando

    Hola roy, buen dia
    estoy tratando de enviar el mensaje de receptor pero me da problemas, no se si el xml esta malo o que puede ser, la varialbe response me da el siguiente mensaje con tadas las compras que quiero responder

    {StatusCode: 400, ReasonPhrase: ‘Bad Request’, Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
    {
    Connection: keep-alive
    Accept-Encoding: gzip
    Access-Control-Allow-Headers: Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers
    Access-Control-Allow-Methods: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH
    Access-Control-Allow-Origin: *
    Access-Control-Max-Age: 3600
    Breadcrumbid: ID-pebpriin0301-prod-comprobanteselectronicos-go-cr-40872-1538167415412-0-18368613
    Jmsxgroupid: 50627091800310108143700100001010000004117327091811
    User-Agent: Tyk/v2.7.0
    X-Error-Cause: El comprobante [50627091800310108143700100001010000004117327091811] ya fue recibido anteriormente.
    X-Http-Status: 400
    X-Ratelimit-Limit: -1
    X-Ratelimit-Remaining: 0
    X-Ratelimit-Reset: 0
    Expect-CT: max-age=604800, report-uri=”https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct”
    CF-RAY: 46312f7c6a3f50b0-MIA
    Date: Mon, 01 Oct 2018 19:02:46 GMT
    Set-Cookie: __cfduid=de119ce1ce890b41e63355e2251b3490f1538420566; expires=Tue, 01-Oct-19 19:02:46 GMT; path=/; domain=.comprobanteselectronicos.go.cr; HttpOnly
    Server: cloudflare
    Content-Length: 0
    Content-Type: text/plain; charset=UTF-8
    }}

    muchas graicas por tu ayuda

    Responder
    1. 17.1

      Abigail

      A mi tambien me pasa lo mismo, cual es la respuesta correcta cuando uno acepta/rechaza/acepta parcial una factura? Gracias por la ayuda brindada.

      Responder
    2. 17.2

      Humberto

      Tengo el mismo problema, “El comprobante .. ya fue recibido anteriormente” ¿Cómo lo resolvió?

      Responder
      1. 17.2.1

        Roy Rojas

        Si te dice que el comprobante ya fue recibido debes revisar tus consecutivos. Ahora lo estas haciendo en pruebas o producción.

        Responder
    3. 17.3

      Roy Rojas

      Ese mensaje de error no es de un mensaje receptor, estas seguro que estas enviando el documento correcto?

      Responder
  18. 18

    Rafael Roig

    Hola Roy
    Tengo un desarrollo propio de factura electrónica el cual esta funcionando perfectamente con la emisión y aprobación de facturas así como de Notas de Crédito.

    Sin embargo ahora que estoy haciendo la aceptación sube bien la información pero me devuelve que la firma está mala

    Ya la revise en https://www.signatur.rtr.at/en/vd/Pruefung.html y me sale bien.

    La firma del comprobante electronico no es valida
    0

    Tienes alguna idea como poder resolver este caso, te puedo enviar los XML si deseas para validacion.

    Saludos y muchisimas gracias por la valiosa ayuda

    Responder
    1. 18.1

      Roy Rojas

      Si la factura y nc te funciona entonces debes de estar haciendo algo diferente con los MR, revisa como manipulas el XML despues de firmado, fijate que todo lo estés haciendo igual, ya que si te funciona en un lado debe de funcionarte en el otro.

      Responder
  19. 19

    Fran

    Estimado la irma de tipo XAdES-EPES es la misma que se usa para las factura, tiquetes, nc,nd? cierto?

    Responder
    1. 19.1

      Roy Rojas

      Es la mismo tipo de firma para todos los documentos.

      Responder
  20. 20

    Fran

    Me refiero a este procemiento X509Certificate2

    Responder
  21. 21

    Ramon Arevalo

    Hola,
    Te mandé un par de correos.

    Al usar su código, conseguí que me funcionará todo perfecto, pero tengo una duda a la horad e volver a consultar el estado de un XML de aceptacion/rechazo de facturas.

    Uso ‘Location’ para consultar el estado cuando mando el XML y me responde todo OK.
    Si quisiera volver a comprobar el estado de un XML, tengo que pasarle todos los datos(clave,fecha,tipoidentificacion,numeroidentificacion,consecutivo,comprobantexml….)
    O puedo consultarlo directamente con la URL que me mandaron cuando lo mandé en Location ?

    Espero pueda ayudarme.
    Gracias

    Saludos,

    Responder
    1. 21.1

      Roy Rojas

      Hola, la consulta de los MR se debe hacer solo con la clave y consecutivo, en el demo está el ejemplo

      V1.0.44
      C#: https://1drv.ms/u/s!AtqYg4eM-S_8ibc7omW9f-KvenxIdQ
      VB: https://1drv.ms/u/s!AtqYg4eM-S_8ibc6r_4Hk6C6EwaNtw

      Responder
  22. 22

    Esteban

    Buenas Roy

    Primero agradecer por compartir tanta informacion alrededor de este tema. De verdad que sin los recursos que he visto en este sitio, jamas lo hubiese logrado.
    Seguidamente, queria consultarte ya que he logrado enviar y confirmar facturas, notas de credito y debito y en apariencia tambien logro enviar el mensaje receptor con el unico detalle de que no logro validar si fue aceptado o no.

    Leyendo por toda la web solo he encontrado dos cosas en relacion a la consulta de este tema aunque ninguna aclara cual seria en realidad el metodo a seguir.

    La primera referencia que encontre dice que para hacer la consulta del estado del mensaje receptor que se envia a hacienda se debe concatenar la clave de la factura, un guion y luego el consecutivo que el receptor este utilizando (seria algo asi “clave-consecutivoreceptor”) y ese valor se envia al mismo url donde se consultan los demas documentos (facturas, NC, etc..) sin embargo siempre obtengo como respuesta un bad request.
    EL URL del request quedaria asi “https://api.comprobanteselectronicos.go.cr/recepcion/v1/recepcion/clave-consecutivoreceptor” .
    Leyendo aun mas otras personas mencionan que definitivamente no se puede consultar por ese medio y que se utiliza otro url o metodo sin detallar como. Tambien mencionan que en el json que se envia viene una respuesta con un header y q ahi podria encontrar como hacer la consulta sin embargo nunca obtengo dicha respuesta del API o al menos no lo he podido descifrar.

    Podrias ayudarme a aclarar cual es en realidad el metodo a seguir?

    Responder
    1. 22.1

      Roy Rojas

      Hola, para consultar mensajes receptor es por el mismo url y es correcto debes hacerlo clave-consecutivoReceptor

      Cuando envias el xml en la primera respuesta está el location ahi te muestra el url exacto.
      Es usando el Get de recepción

      Responder

Deja un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

2015 Powered by DotNetcr.com