Hola gente!
El día de hoy quiero compartir con ustedes la primera versión oficial como producto de OpenInvoicePeru.
Puedes clonar la fuente en tu repositorio local o bien descargarlo desde mi repositorio de GitHub.
Gracias a todos por su apoyo, por sus mensajes en la distintas redes sociales y por compartir el conocimiento.
Se que aun hay mucho camino por descubrir pero espero que este pequeño proyecto les ayude.
El conocimiento es poder.
Agradeceré que en los comentarios coloquen que tal les parece esta versión.
El logo es cortesía de Freddy Tinta (@wariels)
Saludos!
Anuncios
Consulta Erick, me sale el error 0111 y en SUNAT me indican que les envíe la conexión SOA, como lo puedo obtener.
Saludos.
Al generar una boleta y luego presiono en el boton “Generar XML” da el siguiente Mensaje. Ningun mediatypormatter esta disponible para leer un objeto de tipo DocumentoResponse del contenido con el tipo de medio text/html
Hola Erick,
Muy buena soluciòn la estoy tomando como referencia para mis desarrollos.
Tengo un inconveniente,espero me puedas ayudar con ello.
En un entorno de desarrollo todo anda bien, me conecto a los servicios de sunat. Pero cuando la aplicaciòn la instalo en los clientes me presenta un error: “No se encontró el elemento de extremo con el nombre ‘BillServicePort’ y el contrato ‘Sunat.billService’ en la sección de configuración de cliente de ServiceModel. La razón puede ser que no se encontró ningún archivo de configuración para la aplicación o que no se encontró ningún elemento de extremo con este nombre en el elemento de cliente.”
El App.config lo tengo copiado en la carpeta donde se instala la aplicaciòn y tiene el <system.serviceModel> de mi maquina de desarrollo.
Gracias y Saludos,
Arturo
Hola Erick, donde puedo conseguir Resumenes Diarios en XML que hayan sido aceptados en produccion?? … el problema que tengo es que la sunat no me acepta los documentos que le envio con el metodo sendSummary… y cuando consulto el ticket me retorna el codigo 99… lei por ahi que la estructura XML para resumenes ha variado respecto al ejemplo que pone la SUNAT en sus manuales. Espero puedas ayudarme
Checa el ejemplo que está en el repositorio oficial del proyecto => https://github.com/FrameworkPeru/openinvoiceperu/blob/develop/Documentacion/DocumentosEjemplo/ResumenDiario.xml
Ya no encuentro la pagina, como puedo generar ese archivo de resumenes diarios en xml
Estimado Erick,
Estoy realizando el caso de Detracciones como PSE, pero no tengo mucha información sobre este caso, por favor serias tan amable de poder mostrar un xml de ejemplo para este caso.
Agradeceré que puedas trasladar tu pregunta al foro oficial del proyecto, en el cual se pueden compartir archivos.
Gracias.
Excelente ! buen color !
CAMBIO EL DISEÑO 😀 o me parece
Así es? Que te parece? 😀
Amigo buenas, cuando envio una Ñ o & en el nombre de la empresa (CLIENTE) me genera error, sabes como solucionarlo?
Gracias.
Actualmente SUNAT arroja el error 2335 cuando esto sucede debido a que no usa la codificación UTF-8 en el XML, yo estaba pensando en colocar una alternativa al problema haciendo que OpenInvoicePeru reemplace dichos caracteres por otros más nativos (N en lugar de Ñ) sólo en el XML, por lo menos hasta que la gente de SUNAT se den cuenta que deben dejar de lado la codificación ISO-8859-1.
Además he creado un Issue en GitHub para que veas que está en proceso de desarrollo -> https://github.com/erickorlando/facturacionelectronicasunat/issues/13
Saludos.
El uso de la seccion ![CDATA[….]] soluciona el problema y como podras ver en los manuales pdf de sunat tambie los usa… justamente para esos casos …. buscando en google tienes toda la explicacion del funcionamiento.
usa ![CDATA[….]] con eso lo solucionas todo mano … yo tambien tuve ese problema y como podras ver en los manuales pdf de sunat … veras este uso …. suerte … y busca informacion en google … ahi tienes toda la explicacion
Hola erick, en el proceso de homologacion hay algun tipo de nombre o cantidad de filas para enviar la comunicacion de baja o resumen de boletas?, porque estoy enviando el resumen de boletas y me sale el mensaje “el caso de prueba no existe”, que es lo que se envia para el proceso de homologacion para comunicacion baja y resumen de boletas
Hola Agustín para ambos casos debes enviar 5 detalles. Saludos
Gracias Erick, ya complete el set de pruebas
Agustin podrias darme un correo para hacerte unas consultas
Hola Erick … en el proceso de homologacion que lo pase como hace 15 dias me aceptaba sin problemas el resumen diario …. ahora cambie a modo de beta para otros efectos … y al mandar el resumen me envia el error Client.2072 que es CustomizationID – La versión del documento no es la correcta en el catalogo de errores pero .. no cambien nada … el xml que genero tiene 1.0 …. a que se puede deber esto ….??
Sunat ha cambiado el formato del resumen diario en el servicio beta, pero en homologación y producción aún funciona el formato con el customization 1.0
Ningún MediaTypeFormatter está disponible para leer un objeto de tipo ‘EnviarDocumentoResponse’ del contenido con el tipo de medio ‘text/html’.
Para leer un nro de Ticket, con el FrmEnviarSunat, solo debes llenar el RUC, Usuario, Clave SOL y presionar el boton de consulta de Nro de Ticket, pero solo funcionará en Producción.
Saludos.
Hola nuevamente Erick. Al hacer el envio del resumen diario con 5 items, ya me salio aprobado. Ahora Tengo todos los casos aprobados. ¿Cual es el siguiente paso?, porque en resultado de evaluacion me sale “Sr. Contribuyente, aun no hay un resultado de la evaluación por cuanto Usted no ha concluido con las etapas anteriores del proceso.”. Sin embargo ya envie todos los casos y todos estan con Aprobado. En Set de pruebas me sale: “Estado de etapa: CONCLUIDO “. Gracias. Por otro lado, como consulto el Nro de Ticket. Al tratar de hacerlo por OpenInvoice (FrmEnviarSunat) me salia algo de error con HTML, que datos son necesarios llenar para consultar nro Ticket? . Muchas gracias mi estimado.
Te respondo pregunta por pregunta.
El primer paso es esperar la respuesta de SUNAT una vez concluido la etapa técnica, que es enviar todos los casos de prueba.
Cuando estás en homologación no se pueden consultar los nros de Ticket enviados en el Resumen Diario o la Comunicación de Baja, ya que SUNAT no los guarda, sólo en producción se pueden consultar.
Saludos.
Hola Erick, estoy tratando de homologar. La cuestion es que estoy enviando en la homologacion el Resumen diario de boletas, me sale mensaje. “Proceso enviado correctamente. Numero de ticket es 201600651601291.” Sin embargo cuando entro con mi clave SOL en el set de pruebas aparece como si no hubiera enviado ningun resumen diario. ¿Cual crees que sea el error, gracias?
Asegúrate de que el Resumen Diario de Boletas tenga 5 grupos para que pueda pasar como caso de homologación.
Una consulta y desde ya gracias por tu alance. Si emito boletas en soles y otras en dólares, como envío el resumen diario de boletas. Considerando que de un rango de la boleta 1 al 10, la 3 la 5 y la 7 están en soles y las otras en dólares.
En diferentes grupos, recuerda que debes agrupar por serie y moneda
Estimado ERICK .. estoy en PRODUCCION y una empresa envia muy bien facturas y bajas.. pero cuando envia los RESUMENES DIARIOS DE BOLETAS la SUNAT solo devuelve el 098 que esta en proceso y devuelve el nro de Ticket,, en algunos casos han pasado 1 dia y las boletas aparecen en la web de la sunat como INFORMADO pero hay de otros dias que no aparecen como si nunca hubieran sido informadas,… esto esta pasando en varios dias que se deberia de hacer?????.. yo reclame a la SUNAT por un resumen del dia 3 de NOVIEMBRE y hasta el dia de no en la pagina de la sunat aparecen como NO INFORMADAS y sunat me dice que las vuelva a enviar no mas… y que hacer ahora.. NO SE SUPONIA QUE SOLO ERAN MAXIMO 7 DIAS… ahora me dicen que vuelva a enviar las BOLETAS DEL DIA 3 DE NOVIEMBRE.
este es el LINK http://www.sunat.gob.pe/ol-ti-itconsvalicpe/ConsValiCpe.htm
Eso es un tema netamente de SUNAT mi estimado. No un problema de código, no podría ayudarte, lo siento.
Hola. alguna sugerencia para Enviar Comunicacion de Baja en la homologacion
Buenos días estimado
Cordial saludo
Este proyecto soporta el estándar 3.0 de la SUNAT, básicamente en que en las ventas de combustible se debe enviar la placa del vehículo en las facturas ?
Quedo atento a su respuesta estimado
Saludos
Crea el issue en GitHub para que no se me olvide
Erick una pregunta, para imprimir la factura electrónica, se tiene q comunicar o hacer algún trámite con SUNAT respecto al logo de la empresa el código de barras etc
Agradezco tu respuesta
El diseño es independiente por cada contribuyente Agustin. Y lo del codigo de barras es opcional por ahora, hasta el 1 de Enero del 2018.
Saludos.
Gracias por la respuesta
Hola Erick tengo una pregunta, una comunicacion de baja se pueden generar a facturas y boletas con las notas credito y debito relacionadas?
Estimado Erick, tengo una consulta. Luego de meses de emitir documentos electrónicamente me apareció el código de error 0111 que indica que no tengo perfil de emisor electrónico. Verificando en SOL la opción de envío de comprobantes de pago electrónicos estaba activado. Luego de comunicarme con SUNAT me indicaron que les enviara por correo el archivo XML de la factura que muestra la excepción y la trama. Podrías indicarme a que se refiere con la trama, y cómo obtenerla?
Saludos.
La trama siginifica el bloque de codigo que contiene tu clave publica de tu certificado digital.
Saludos.
Me indicaron que no era eso. Específicamente solicitaron esto: XML Soap de la factura electrónica en cuestión.
Quedo atento a tu respuesta.
Saludos.
Entonces convierte el contenido del XML en Base64 con Notepad++
Hola Erick, ya solucione lo del Ubigeo pero el servicio me retorna esto:
4031 – Debe indicar el nombre comercial
y por supuesto le estoy indicando en el xml el nombre comerncial de la empresa.
Ojo que son 2 campos, Nombre Comercial y Razon social, no lo olvides, siempre para el emisor son obligatorios.
Amigo Wilmer Galvis, yo también tengo el error de Ubigeo, pero no puedo solucionarle, quisiera saber como solucionaste ese error, 🙂 . Seria de mucha ayuda, por favor.
Erick al envio de docuemtnos de factura me responde
4012 – El ubigeo indicado en el comprobante no es el mismo que esta registrado para el contribuyente.
donde puedo verificar el ubigeo que esta en operaciones en linea
Llamando a SUNAT mi estimado.
Saludos.
Hola Erick, una consulta realizamos el proceso de autorizacion y el sistema me dice que tambien debo homologar
la comunicacion de baja de numeración y tambien resumen diario de boletas de venta
Obviamente, es parte de la homologación.
Buen día Estimado Erick, no se si a ti o alguien le paso que al generar las notas de crédito se cambian el punto decimal por comas?, ya que en las en facturas si esta normal. Saludos y gracias de antemano
Eso solo ocurre si dependes de la configuracion regional de tu equipo, checa el codigo de mi proyecto y verás que yo uso en el codigo especificamente la referencia cultural peruana que hace que el separador decimal siempre sea punto.
Efectivamente era la configuración del IIS que lo cambiaba. Gracias Erick
Erick buen dia, por favor dime q significa esto:
“Si ha consignado monto ISC a nivel de item, debe consignar un monto a nivel de total.”
Hay algo mal en el IGV? Saludos.
Lo mas probable es que en el tag de TaxTotal de los detalles has colocado el codigo 2000 en la etiqueta TaxTypeCode que corresponde al ISC en lugar del IGV que es el 1000.
Cuando coloques un monto de algun impuesto en el detalle, debes colocar la sumatoria en la sección TaxTotal de todo el documento.
Espero haberme dejado entender.
Saludos.
Si Erick fue mi error gracias. Sin embargo hay un tema que no me deja avanzar. Me sale el error: 4031
Debe indicar el nombre comercial, no se que mas falta ya que está igual al XML de ejemplo. Tendrá algo que ver con el ID de Signature? esta exactamente igual a la ficha ruc y nada (es homologacion). Saludos y gracias por todo.
El nombre comercial va dentro de la seccion /Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyName/cbc:Name, es obligatorio para los emisores.
Saludos.
Estimado Erick, muchas gracias por la ayuda. Tengo una duda, lo que pasa es que trato de enviar el resumen de boleta en HOMOLOGACION (pues lo piden como “Resumen diario de Boletas de venta”), lo envio y me devuelve un ticket, sin embargo aparece como NO ENVIADO, luego al consultar dicho ticket me sale codigo 99 y como descripción 2402 “El caso de prueba no existe”. Te ha pasado? o a alguien?
Muchas gracias de antemano x la ayuda. Un abrazo.
El resumen diario de boletas que se pide en la homologación es de 5 items, procura llenarlos para que te salga como enviado.
Saludos.
Erick una consulta he estado buscando alguna forma de generar el codigo de barras PDF417 pero son de pago. Conoces alguna forma de generarlo que sea gratuita te agradeceria la ayuda hermano. Gracias.
Lamentablemente no, pero puedes usar un código QR y también es válido y son gratis
Oscar otra consulta mas las boletas de venta se tienen que enviar a sunat igual que las facturas o solo se envia el resumen diario.
El resumen diario se envía unicamente si la empresa es un gran contribuyente, sino, se envian las boletas al igual que las facturas.
Ah por cierto mi nombre es Erick 😉
Hola Erick tengo una duda espero que me ayudes por favor, en el set basico de homologacion en el Grupo 3 – Facturas – Ventas gratuitas me pide enviar una nota de credito y una nota de debito a una factura con 7 items, pero como genero una nota de credito si la factura es de una venta gratuita (monto cero) o no todos los items tienen que ser gratuitos puedo poner tambien items gravados y exonerados. una consulta mas en los casos de ventas exoneradas e inafectas tambien puedo poner items gravados no es necesario que todos los items sean iguales es decir todos gratuitos, todos exonerados, todos inafectos.
Saludos Graciela.
Hola Graciela, es correcto lo que mencionas, no necesariamente todos los items tienen que ser gratuitos al igual que con las exoneradas e inafectas, basta que un item cumpla con el criterio y tu caso de homologación estará completo.
Saludos.
Estimado Erick, una consulta. Puedes ayudarme un poco en cuanto a generar en el xml cuando hay un descuento por item? No lo encuentro y estoy algo atascado.
Un abrazo y gracias.
Estimado una consulta en produccion cuando emito una boleta tengo que poner obligatoriamente el dni del cliente, lo que pasa es que hay casos en que se emite boletas a menores (16, 17 años) como haria en estos casos.
Pones un DNI genérico, yo usualmente uso 88888888 y en el nombre coloco CLIENTE GENERICO.
Saludos.
Gracias por tu respuesta Erick, una consulta mas para anular o dar de baja un documento sunat da 7 dias luego de su emision (envio del xml a sunat), pero si quisiera anular un documento por decir emitido el 4 de este mes ya paso 23 dias como hago en este caso tengo que emitir una nota de credito.
No te confundas Lourdes, SUNAT te da 7 dias para enviar el comprobante electrónico, no 7 días para anular el documento. Así que si la baja se dio 23 dias despues, no hay problema, porque lo que cuenta es la fecha de emisión.
Saludos!
Oscar una consulta en esta parte del XML las XXXXXXXXXXXX son el ruc y el nombre del representante legal pero
IDSignSP y #SignatureSP de donde sale puedo poner cualquier cosa o tiene que ver algo con el certificado digital.
IDSignSP
XXXXXXXXXX
XXXXXXXXXX
#SignatureSP
Hola Lourdes, puedes poner cualquier cosa, no hay problema 😉
Ok yo me quede perdido, descargue tu archivo, pero no logre hacer nada ahí, ya q me dice que no puedo ejecutar una biblioteca de clase imagino ahí que puede ser, sin embargo no encuentro los formularios o no hay; ???
El Otro punto es que los otros Proyectos en tus Carpetas dice lo siguiente : El proyecto requiere datos del Usuario y no carga Nada por lo que no entiendo ahí que pasa.
Estoy Usando VS 2015 comunity.
Muchas Gracias si alguien me ayuda
La solución tiene 8 proyectos y son dos proyectos los que se deben levantar al mismo tiempo para que funcione. Esto lo he colocado en la descripción del proyecto en GitHub.
Hola Erick
He estado revisando tu proyecto, y esta muy interesante, he creado un nuevo proyecto y he estado adicionando los archivos necesarios, he quitado el proyecto OpenInvoicePeruApi y lo he reemplazado por un proyecto de tipo biblioteca de clases, todo lo genera bien (el xml, el firmado, el comprimido en zip), sin embargo al momento de enviar la factura a la sunat es donde tengo problemas, me esta saliendo un mensaje de error, te agradecería si pudieras ayudarme
el error me esta saliendo en la clase ConexionSunat.cs en el constructor
public ConexionSunat(Parametros parametros)
{
System.Net.ServicePointManager.UseNagleAlgorithm = true;
System.Net.ServicePointManager.Expect100Continue = false;
System.Net.ServicePointManager.CheckCertificateRevocationList = true;
cuando intenta ejecutar la linea del proxy, es donde salta el siguiente mensaje
“No se encontró el elemento de extremo con el nombre ‘BillServicePort’ y el contrato ‘Sunat.billService’ en la sección de configuración de cliente de ServiceModel. La razón puede ser que no se encontró ningún archivo de configuración para la aplicación o que no se encontró ningún elemento de extremo con este nombre en el elemento de cliente.”
en el app.config tengo lo siguiente
<system.serviceModel>
</system.serviceModel>
El servicio de sunat lo he agregado con el asistente de visual studio y no le he realizado ningun cambio.
Te agradezco por la ayuda
Saludos
Agustin
Ya lo he solucionado, tenia que copiar el servicemodel de app.config del firmadosunat al app.config de mi aplicacion windows.
De todos modos gracias
Saludos
Hola Agustin Pudieras compartir tu configuración…
Gracias
Será porque tienes que copiar la configuracion que está en el Web.Config de la API?
Estimado Erick Orlando, una consulta sobre de Resumen diario de Boleta y Notas….. hasta cuanto máximo de linea de :
1
……..
2
……..
3
……..
????? <——Hasta cuanto máximo de Linea de LineID
……..
Saludos
sac:SummaryDocumentsLine ……. de cuanto Máximo?
ni idea
Me perdí con tu pregunta xD
Oscar otra consulta en produccion es obligatorio segir el correlativo, es decir si envio F023-256 luego tengo que enviar F023-257 obligatoriamente o puedo enviar por ejemplo F023-260 y luego F023-261, F023-262, F023-263 …….
No es necesario, eso solo ocurre cuando se hacen facturas fisicas.
Oscar una consulta en el xml en la parte de la firma digital necesita tener los prefijos ds: antes de cada etiqueta o no es necesario.
No es necesario que tenga los prefijos, eso forma parte de un estandar, no hay variacion, es como declarar una variable string con C#:
var cadena = “Hola”;
string cadena = “Hola”;
Es exactamente igual.
Saludos.
Amigo me sale este error.
An error occurred while sending the request.
a que crees que se deba.
Saludos.
Si compartes un pantallazo seria mejor
te mande un correo amigo.
muchas gracias.
ya respondi
estimado Erick
estoy haciendo la homologacion como PSE y me falta los ejemplos de FACTURAS SUJETAS A DETRACCIÓN (FF60), tendras los ejemplos de los xml
El OpenInvoicePeru genera todos los casos de homologacion como PSE. Puedes probarlo
Buenos días a alguno le ha ha salido el siguiente error. “No se permite obtener el tipo en tiempo de ejecución de un proxy transparente en este contexto.” si lo han solucionado por favor una ayuda o si saben como resolverlo
😲 Ese error te sale en el OpenInvoicePeru?
Me salio el mismo error cuando lo estaba pasando para VB, el error era porque Password lo cambia automáticamente a password, en una de las 2 clases que se crean, cambiando a otro nombre la variable Password se corrigió.
Buenos dias Estimado : una consulta ; chequeando tu codigo veo un api rest y direccionas a un servidor local asp;
soy un progrmador de visual basic 6.0, luego me pase a java a si q no conosco mucho del tema ; he comensado a investigar y estudiar ; mi consulta es que si debo tbm aprender a configurar mi servidor asp para lograr el api rest y para que le sirve en el envio a sunat esta api…gracias y felicitaciones por tu iniciativa
Hola Luis Felipe, efectivamente la API REST la puedes publicar en tu servidor IIS, es necesario tener .NET Framework 4.6.1 instalado en el servidor para que funcione correctamente.
Saludos!
Buebas tardes, me podrian ayudar con los anticipos.
/invoice/cac:PrepaidPayment/cbc:PaidAmount/@currencyID que monto ingresare aqui.. tanto en la primera emision y loas facturas posteriores..
/Invoice/cac:LegalMonetaryTotal/cbc:PrepaidAmount que monto ingresare aqui.. tanto en la primera emision y loas facturas posteriores..
Por favor.