Después de recibir una factura electrónica el Receptor (cliente) tiene la obligación de indicarle a Tributación y al Emisor si Acepta o Rechaza la factura, para lo cual tiene 8 días de tiempo.
…el comprobante electrónico debe de
ser aceptado o rechazado por parte del receptor del comprobante, utilizando el formato indicado
para tal efecto, la confección de este mensaje de aceptado o rechazado por parte del receptor
es de carácter obligatorio para el respaldo de los gastos y debe de ser enviado para su
respectiva validación a la Dirección General de Tributación, en un plazo no mayor a 8 días…Resolución Comprobantes Electrónicos DGT-R-48-2016_4.2
Este documento se conoce como Mensaje Receptor y es un XML con los datos necesarios para enviarle a Tributación la aceptación o rechazo de un documento en específico.
Ejemplo de un XML (sin firma)
<?xml version="1.0" encoding="UTF-8"?> <MensajeReceptor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/mensajeReceptor"> <Clave>50630041800999999999900199999010000000081113004191</Clave> <NumeroCedulaEmisor>9999999999</NumeroCedulaEmisor> <FechaEmisionDoc>2018-05-24T14:47:00-06:00</FechaEmisionDoc> <Mensaje>1</Mensaje> <MontoTotalImpuesto>100.000</MontoTotalImpuesto> <TotalFactura>1000.000</TotalFactura> <NumeroCedulaReceptor>8888888888</NumeroCedulaReceptor> <NumeroConsecutivoReceptor>00100001050000000001</NumConsecutivoReceptor> </MensajeReceptor>
El documento debe ir firmado con Xades-Epes.
La Dirección General de Tributación (DGT) ha decidido que el método de autenticación e integridad de los comprobantes electrónicos será firma digital de los archivos XML por medio de la inclusión de
una etiqueta Signature según lo indica el estándar XMLDSig, el contenido de esta etiqueta será una firma de tipo XAdES-EPES según lo define el estándar ETSI TS 101 903 v1.3.2 o superior.
Los campos del XML se describen de la siguiente manera:
- Clave: Valor de la Clave de la factura recibida, generada por el emisor.
- NumeroCedulaEmisor: Número de cédula del emisor de la factura recibida, debe coincidir con la que se indica en el XML de la factura recibida.
- FechaEmisionDoc: Fecha del momento en que se emite el Mensaje Receptor.
- Mensaje: Código del mensaje de respuesta. 1 aceptado, 2 aceptado parcialmente, 3 rechazado.
- MontoTotalImpuesto: Este valor es obligatorio si la factura tiene impuesto, en caso contrario se omite.
- TotalFactura: Monto total de la Factura, Nota de Débito, Nota de Crédito o Tiquete Electrónico.
- NumeroCedulaReceptor: Número de cédula del receptor, debe coincidir con el receptor de la factura recibida y que se va a responder.
- NumeroConsecutivoReceptor: Dato obligatorio compuesto de 20 caracteres que corresponde al número consecutivo del receptor, se compone de la siguiente manera:
- 1-3: Identifica el local o establecimiento desde se emitió el mensaje de receptor.
El número 001 corresponde a la oficina central y del 002 en adelante a las sucursales. - 4-8: Identifica la terminal o punto de venta, inicia en 00001.
- 9-10: Corresponde al tipo de documento que estamos trabajando.
Al ser un mensaje de receptor, debemos elegir entre 05 (aceptación), 06 (aceptación parcial) o 07 (rechazo). - 11-20: Consecutivo del receptor iniciando en 1 para cada terminal o sucursal
- 1-3: Identifica el local o establecimiento desde se emitió el mensaje de receptor.
Documentos Mensaje Receptor:
https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.2/MensajeReceptor_4.2.xsd
https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.2/MensajeReceptor_V4.2.pdf
API facturación electrónica Costa Rica – DLL para .NET
Si desea más información del API no dude en contactarnos.
Información: contacto@dotnetcr.com
Buenas Tades, exc documentos. Una consulta y existe algun API, para conocer todos los documentos que estan pendientes por aprobar ??
Gracias
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.
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
Excelente, que bueno haberte ayudado.
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.
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.
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.
Hola, puedes ver eso en la pagina 9 de este documento https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.2/ResolucionComprobantesElectronicosDGT-R-48-2016_4.2.pdf
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.
Hola, aqui hay un ejemplo. En uno de los tabs está el de respuesta de hacienda.
https://github.com/royrojas/FacturaElectronicaCR
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
Hola German, perdona pero no entendí tu pregunta, podrías aclararla.
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
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.
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.
Hola, puede ser el encabezado de la factura electronica, revisa este post http://www.royrojas.com/encabezados-del-xml-para-la-factura-y-tiquete-electronico-en-costa-rica/
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
Hola Nicolas aqui hay un ejemplo de como enviar los xml a hacienda.
https://github.com/royrojas/FacturaElectronicaCR
ya los habia revisado y utilizo el ultimo.
seria probar con cada uno.
Saludos
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.
Usted le debe de enviar al cliente, el XML firmado y la factura gráfica en PDF.
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?
Hola, habria que ver el error completo que te retorna el servicio de hacienda. Escribeme al correo.
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.
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.
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?
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.
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
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.
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!
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.
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
te lo contesté por correo. Era solo para reutilizar el código del demo.
Gracias por el aporte, por cierto su ejemplo debe cerrar con en ves de
Muchas gracias
Buenas
Roy muy agradecido por todo el material que has publicado, tengo una pregunta estoy tratando de obtener el mensaje de respuesta de una aceptacion de la factura pero siempre me aparece Rechazado y el error firma no es valida, adjuto la forma como lo estoy probando
Gracias
string URL_RECEPCION = “https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/”;
HttpClient http = new HttpClient();
http.DefaultRequestHeaders.Add(“authorization”, (“Bearer ” + TK));
HttpResponseMessage response = http.GetAsync((URL_RECEPCION + (“recepcion/50626091800050347075100100001010000000194386305205-00100001050000000082”))).Result;
string res = await response.Content.ReadAsStringAsync();
object Localizacion = response.StatusCode;
jsonRespuesta = res.ToString();
RespuestaHacienda RH = Newtonsoft.Json.JsonConvert.DeserializeObject(res);
Primero debes descartar que tengas problemas con la firma. Prueba el XML firmado en este sitio
https://www.aleksey.com/xmlsec/xmldsig-verifier.html
Buenas noches Don Roy. Yo tengo la misma situación en sandbox a la hora de enviar un mensaje receptor: Hago una FE con el mismo emisor-receptor para despues poder aceptarla con el MR. No tengo error de firmas ni de armado XML. Pongo el ejemplo del colegio anterior ya que es una situación similar:
string URL_RECEPCION = «https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/»;
HttpClient http = new HttpClient();
http.DefaultRequestHeaders.Add(«authorization», («Bearer » + TK));
HttpResponseMessage response = http.GetAsync((URL_RECEPCION + («recepcion/50626091800050347075100100001010000000194386305205-00100001050000000082»))).Result;
string res = await response.Content.ReadAsStringAsync();
object Localizacion = response.StatusCode;
jsonRespuesta = res.ToString();
RespuestaHacienda RH = Newtonsoft.Json.JsonConvert.DeserializeObject(res);
Pero el error que me da hacienda es este:
Este comprobante fue aceptado en el ambiente de pruebas, por lo cual no tiene validez para fines tributarios El comprobante electrónico tiene los siguientes errores: [ codigo, mensaje, fila, columna -29, “El comprobante al cual se está haciendo referencia en el espacio denominado ‘clave del comprobante’, no se encuentra registrado en las bases de datos de la Administración Tributaria, favor revisar dicha clave.”, 0, 0 ]
Sin embargo, al consultar la clave de FE sale “aceptado” pero cuando hago la combinación de clave-consecutivo MR en el api sale rechazado.
No sé que será esta situación. Gracias de antemano.
Ese error es válido, la factura que estas intentando aprobar está también en pruebas? o estas intentando aprobar una factura de producción en pruebas?
Buenas Tardes, a la hora de hacer el GetTokenHacienda me da Error: 66824994 y no se que puede ser. no hay una lista de errores?. Gracias, en res sale {“error_description”:”Invalid user credentials”,”error”:”invalid_grant”}
ese código de error no lo había visto antes, pero cuando indica Invalid user credentials es que el usuario para generar el token es incorrecto. el usuario lo debes de generar en el ATV es largo y la clave también es larga, el sistema te lo asigna automáticamente. Importante es que no es el mismo usuario para entrar al ATV
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?
– 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.
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
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.
Tengo el mismo problema, “El comprobante .. ya fue recibido anteriormente” ¿Cómo lo resolvió?
Si te dice que el comprobante ya fue recibido debes revisar tus consecutivos. Ahora lo estas haciendo en pruebas o producción.
yo tengo exactamente el mismo problema, el xml esta bien y tiene el formato correcto para un mensaje receptor pero a la hora de enviarlo, la validacion que hace es como si quisiera enviar la factura original y no el mensaje receptor como tal.
Si lo lograste resolver, te agredeceria tu ayuda
El XML del mensaje receptor se envia igual, lo que cambia es la forma en como haces la consulta del estado. Cuál error te esta retornando?
Buenos días. me está pasando lo mismo. pudiste resolverlo?
Ese mensaje de error no es de un mensaje receptor, estas seguro que estas enviando el documento correcto?
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
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.
Estimado la irma de tipo XAdES-EPES es la misma que se usa para las factura, tiquetes, nc,nd? cierto?
Es la mismo tipo de firma para todos los documentos.
Me refiero a este procemiento X509Certificate2
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,
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
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?
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
Buenas Tardes Roy. los tutoriales están excelentes, pero estoy pegado con los que me sale un error igual al de Rolando. Entre a ATV y le puse esa clave y sí pasó en la página de hacienda. traté poniendo la cedula del receptor y emisor al revés y tengo el mismo error:
{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-40934-1542088967414-0-147761841
Jmsxgroupid: 50623111800310154989700100001010000000009174957851
User-Agent: Tyk/v2.7.4
X-Error-Cause: El comprobante [50623111800310154989700100001010000000009174957851] 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: 48267ac308dd52e4-MIA
Date: Sat, 01 Dec 2018 15:10:18 GMT
Set-Cookie: __cfduid=d63a5514d409196575e00bfa6cc2232a71543677015; expires=Sun, 01-Dec-19 15:10:15 GMT; path=/; domain=.comprobanteselectronicos.go.cr; HttpOnly
Server: cloudflare
Content-Length: 0
Content-Type: text/plain; charset=UTF-8
Hola, ese error indica que ya habías enviado esa factura previamente, osea está repetida.
Buenos dias Roy. Te agradeceria si me puedes ayudar con este eror al enviar la aceptacion de la factura electronica recibida:
Error: No se encuentra el encabezado especificado
La firma de xml es correcta, ya la verifique.
El error da cuando envio el comando http.PostAsync desde vb.net
url_recepcion= “https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/recepcion”
Codigo vb.net
Dim RH As New MensajeHacienda
Dim http As HttpClient = New HttpClient
JsonEnvio = “{” + “””” + “clave” + “””” + “:” + “””” + objRecepcion.clave + “””” + “,”
JsonEnvio += “””” + “fecha” + “””” + “:” + “””” + objRecepcion.fecha + “””” + “,”
JsonEnvio += “””” + “emisor” + “””” + “:{”
JsonEnvio += “””” + “tipoIdentificacion” + “””” + “:” + “””” + objRecepcion.emisor.TipoIdentificacion + “””” + “,”
JsonEnvio += “””” + “numeroIdentificacion” + “””” + “:” + “””” + objRecepcion.emisor.numeroIdentificacion
JsonEnvio += “””” + “},”
JsonEnvio += “””” + “receptor” + “””” + “:{”
JsonEnvio += “””” + “tipoIdentificacion” + “””” + “:” + “””” + objRecepcion.receptor.TipoIdentificacion + “””” + “,”
JsonEnvio += “””” + “numeroIdentificacion” + “””” + “:” + “””” + objRecepcion.receptor.numeroIdentificacion
JsonEnvio += “””” + “},”
JsonEnvio += “””” + “consecutivoReceptor” + “””” + “:” + “””” + objRecepcion.consecutivoReceptor + “””” + “,”
JsonEnvio += “””” + “comprobanteXml” + “””” + “:” + “””” + objRecepcion.comprobanteXml + “”””
JsonEnvio += “}”
Dim oString As StringContent = New StringContent(JsonEnvio)
http.DefaultRequestHeaders.Add(“authorization”, “Bearer ” + TK)
‘
‘SE ENVIA LA PETICION AL SERVIDOR DEL MINISTERIO DE HACIENDA
‘
Dim response As HttpResponseMessage = http.PostAsync(URL_RECEPCION + “recepcion”, oString).Result
Dim res As String = response.Content.ReadAsStringAsync.Result
Xml:
50623121800123456789000100016010000001613202001613
12344567890
2019-01-08T06:27:57
1
3307.45
28749.41
3101123456
00100001050000000074
Saludos y Gracias.
Giacomo Santana
Hola, donde verificaste la firma?
Verificaste el esquema del XML?
Roy, una consulta, cuando mando el mensaje de receptor, hacienda me manda un mensaje:
-78, “La numeración consecutiva no cumple con la estructura en el ‘artículo 4 numeración consecutiva’ de la resolución 48-2016 de comprobantes electrónicos.”, 0, 0
-29, “El comprobante al cual se está haciendo referencia en el espacio denominado ‘clave del comprobante’, no se encuentra registrado en las bases de datos de la Administración Tributaria, favor revisar dicha clave.”, 0, 0
No se, si es que el xml, que manda el proveedor esta malo, o yo estoy mandando mal la informacion, me podrias ayudar.
El primer error es que el numero consecutivo tiene algo malo en el, debes revisar todos los campos de los que se componen esos 20 caracteres.
El segundo error es que el XML que estas intentando aprobar o rechazar no fue aprobado por hacienda, debes hablar con el proveedor tuyo para que te genere una nueva factura.
En el mensaje que me manda hacienda, me dice lo siguiente:
-78, “La numeración consecutiva no cumple con la estructura en el ‘artículo 4 numeración consecutiva’ de la resolución 48-2016 de comprobantes electrónicos.”, 0, 0
-29, “El comprobante al cual se está haciendo referencia en el espacio denominado ‘clave del comprobante’, no se encuentra registrado en las bases de datos de la Administración Tributaria, favor revisar dicha clave.”, 0, 0
Sera que el proveedor emitio mal el xml, o es que hay algun dato que estoy mandando mal?
El primer error es que el numero consecutivo tiene algo malo en el, debes revisar todos los campos de los que se componen esos 20 caracteres.
El segundo error es que el XML que estas intentando aprobar o rechazar no fue aprobado por hacienda, debes hablar con el proveedor tuyo para que te genere una nueva factura.
Buenas tardes, quisiera consultarle acerca de este mensaje que me envia el ATV desde hace unos dias, “VUELVA A INTENTAR EL ENVIO. PROBLEMA AL ENVIAR XML.STATUSCODE(03):0 “, le agradezco la ayuda de antemano, saludos
Hola ese es un error muy comun en el ambiente de pruebas, te recomiendo tener paciencia y volverlo a enviar en un rato.
Hola Roy, tremendo tus aportes del tema. Te felicito, y de paso queria hacerte una consulta. Estoy tratando de consumir este metodo:
https://api.comprobanteselectronicos.go.cr/recepcion/v1/comprobantes. Pasandole los query strings que solicita pero siempre me da este mensaje de error:
X-Error-Cause →No esta autorizado para ver los documentos de este emisor.
Obviamente le paso la cedula del emisor pero no entiendo porque me da esto.
Esta opcion me serviria para saber todas las claves que han sido enviadas a hacienda, independientemente de con que sistema se hayan enviado las facturas no?
Saludos y gracias de antemano
Hola Carlos, pero en esa funcion solo puedes consultar tus propias facturas. El emisor de la consulta debe ser el mismo emisor que solicitó el token. Creo que ahí está el error.
[…] Mensaje Receptor para la Factura Electrónica en Costa Rica […]
Hola Roy MENSAJE SE DIO UN ERROR AL ENVIAR XML FIRMADO QUE HAGO ? GRACIAS
Hola Mario, que error te retornó el sistema?
Generalmente te indica el error para que lo corrijas.
[…] Mensaje Receptor para la Factura Electrónica […]