En este directo veremos todo lo que tienes que saber como programador sobre facturación electrónica, así como respuestas a preguntas hechas por las personas que vieron en directo.
Etiqueta: cfdi
Crear la factura electrónica del SAT desde PHP, ejecutando C# .Net. XML, Sellado, Timbrado. Cfdi 3.3
En este video te enseñare como puedes crear el XML y timbrarlo, esto ejecutando código ya compilado de C# .Net enviándole los valores de la factura desde PHP.
Curso complemento para recepción de pagos en C# .Net, Documentos relacionados, SAT cfdi 3.3, #4
En este video te mostrare como agregar uno o varios documentos relacionados a tu complemento de pago.
Curso para crear el complemento para recepción de pago del SAT en C# .Net gratis, cfdi 3.3
Este es un curso gratuito para que puedas crear tus xml con el complemento de pago.
Si gustas apoyarme, a la derecha puedes darme para una cerveza.
1. Convertir XSD del SAT a clases de c# .Net
2. Convertir XSD del SAT a clases de c# .Net.
3. Creación del xml, sellado y timbrado
4. Agregar documentos relacionados
Código fuente: clic aquí.
Ejemplo de XML de complemento para recibo de pago ya timbrado, SAT, cfdi 3.3
Les adjunto un ejemplo de como sería un archivo con el complemento para la recepción de pago versión 1.0, como lo solicita el SAT.
¿Quieres aprender a programar el complemento de pago? Yo te enseño gratis dando clic aquí.
El siguiente xml ya esta timbrado y es valido.
<?xml version="1.0" encoding="ISO-8859-1"?> <cfdi:Comprobante LugarExpedicion="20131" TipoDeComprobante="P" Total="0" Moneda="XXX" SubTotal="0" Certificado="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" NoCertificado="30001000000300023708" Sello="Vj+oPDouoVyXz0Gwh2wDsrukh2XwrwK9cZXOoh+RqFd6Otwdduz/RyFyvfR9Kio13IbCeLeLEVWZneik1CU/gwVAJ6+v/CBkd2AjL32JQsaWNitAqQ+kdgmtbSO0ZAoQazTcSyzYyk7n/14EQGlIwa66OjSS77WPkiZIhz8TFF5wCKir4i3tEMGfpuok1ZVR4EIpzVc9vu+CEnTPKhxd2wsPp6aUyaYTt3wvIrle+qmBlF9mkWMYai4obBq+BCp5HhmxUBFizafE+MAdj/M8y2WSobyg6PSD75pgfPas9l9mqX4919It5AqF3n7Iadvzo1hDK2vZAbwXAYShJ3gb3g==" Fecha="2018-09-18T00:06:39" Folio="1" Serie="H" Version="3.3" xsi:schemaLocation="http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:cfdi="http://www.sat.gob.mx/cfd/3"> <cfdi:Emisor RegimenFiscal="605" Nombre="Una razón rh de cv" Rfc="LEGH870601DM7"/> <cfdi:Receptor Nombre="Pepe SA DE CV" Rfc="BIO091204LB1" UsoCFDI="P01"/> <cfdi:Conceptos> <cfdi:Concepto Importe="0" ValorUnitario="0" Descripcion="Pago" ClaveUnidad="ACT" Cantidad="1" ClaveProdServ="84111506"/> </cfdi:Conceptos> <cfdi:Complemento> <pago10:Pagos Version="1.0" xmlns:pago10="http://www.sat.gob.mx/Pagos"> <pago10:Pago Monto="666" MonedaP="MXN" FormaDePagoP="01" FechaPago="2018-09-18T00:06:39"> <pago10:DoctoRelacionado ImpPagado="600" MetodoDePagoDR="PUE" MonedaDR="MXN" IdDocumento="BEDC8964-7E57-4604-9968-7E01378E8706"/> <pago10:DoctoRelacionado ImpPagado="66" MetodoDePagoDR="PUE" MonedaDR="MXN" IdDocumento="BEDC8964-7E57-4604-9968-7E01378E8706"/> </pago10:Pago> </pago10:Pagos> <tfd:TimbreFiscalDigital Version="1.1" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" RfcProvCertif="EME000602QR9" SelloSAT="GICyRB9uhyZ1u6zuj8ZpxWM92gU2kDfmodwTvXoLy3ZMxrXWsqrF16tYfwBxK8eZDmXoxnKWTfoubcyt/DtgxDHDEyqRLf+oYashKByApRLRtIYTvivrm1XZCL6RuYlKyNwjrsk2vx4kJfk+/vCcy9pSYfG8sXHPPNg8yNsvpAdGpN2JF8b11QpbYukgaspkCh5hEcOuuu7/kM2p0sRC1bZMzMxAbD9QCgSoRkpMxnHbif5oY60pK68b3yp417ZtaKCLk2y/oetZGkpgNnImC6KDbqo4fuXDnfqxSrjEJW9UIMiyOW92sP8LljFXicGBjLTQMq1kGLyM7SeSAG7c/Q==" NoCertificadoSAT="20001000000300022323" SelloCFD="Vj+oPDouoVyXz0Gwh2wDsrukh2XwrwK9cZXOoh+RqFd6Otwdduz/RyFyvfR9Kio13IbCeLeLEVWZneik1CU/gwVAJ6+v/CBkd2AjL32JQsaWNitAqQ+kdgmtbSO0ZAoQazTcSyzYyk7n/14EQGlIwa66OjSS77WPkiZIhz8TFF5wCKir4i3tEMGfpuok1ZVR4EIpzVc9vu+CEnTPKhxd2wsPp6aUyaYTt3wvIrle+qmBlF9mkWMYai4obBq+BCp5HhmxUBFizafE+MAdj/M8y2WSobyg6PSD75pgfPas9l9mqX4919It5AqF3n7Iadvzo1hDK2vZAbwXAYShJ3gb3g==" FechaTimbrado="2018-09-18T00:06:44" UUID="FE5B2DD2-7E57-44E0-88C9-FB1AF0D17142"/> </cfdi:Complemento> </cfdi:Comprobante>
¿Cómo crear el archivo pdf a partir de un xml timbrado 3.3 C# .Net?, Impuestos, SAT #5
En este quinto video te muestro como obtener los impuestos del xml para imprimirlos en el archivo pdf
Primer video: https://www.youtube.com/watch?v=gHSC8GrEC5g
Segundo video: https://www.youtube.com/watch?v=ZppyFAM2JQM
Tercer video: https://www.youtube.com/watch?v=2l9y_dbguaQ
Cuarto video: https://www.youtube.com/watch?v=0nmqpoCTUuM
Código del video: aquí
¿Cómo timbrar el XML para cfdi 3.3 facturación electrónica C# .Net? – conectandonos al PAC – SAT #6
Para contratar el servicio de timbrado comunícate al siguiente teléfono (33) 36581329 o al correo electrónico [email protected]. Y si deseas un DESCUENTO diles que viste los videos de Héctor de León o hdeleon.
En este video te mostrare como timbrar el xml que en los videos anteriores construimos y sellamos.
Descargar proyecto hecho en el video: clic aquí.
Video 1: https://www.youtube.com/watch?v=XlTz0NRQLm4
Video 2: https://www.youtube.com/watch?v=HjfqdTspnio
Video 3: https://www.youtube.com/watch?v=qIr-LdCzfF0
Video 4: https://www.youtube.com/watch?v=suRypKtb7VU
Video 5: https://www.youtube.com/watch?v=FBcEeEpgwr0
Catálogos sat mysql: https://hdeleon.net/catalogos-para-facturar-3-3-sat-en-mysql/
class Program { //modifiquen por su path static private string path = @"C:\Users\Bioxor\source\repos\Facturacion3.3-tutorial-hdeleon\"; static string pathXML = path + @"miPrimerXML.xml"; static void Main(string[] args) { //Obtener numero certificado------------------------------------------------------------ string pathCer = path+@"XSDToXML\CSD01_AAA010101AAA.cer"; string pathKey = path+@"XSDToXML\CSD01_AAA010101AAA.key"; string clavePrivada = "12345678a"; //Obtenemos el numero string numeroCertificado, aa, b, c; SelloDigital.leerCER(pathCer, out aa, out b, out c, out numeroCertificado); //Llenamos la clase COMPROBANTE-------------------------------------------------------- Comprobante oComprobante = new Comprobante(); oComprobante.Version = "3.3"; oComprobante.Serie = "H"; oComprobante.Folio = "1"; oComprobante.Fecha = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"); // oComprobante.Sello = "faltante"; //sig video oComprobante.FormaPago = "99"; oComprobante.NoCertificado = numeroCertificado; // oComprobante.Certificado = ""; //sig video oComprobante.SubTotal = 10m; oComprobante.Descuento = 1; oComprobante.Moneda = "MXN"; oComprobante.Total = 9; oComprobante.TipoDeComprobante = "I"; oComprobante.MetodoPago = "PUE"; oComprobante.LugarExpedicion = "20131"; ComprobanteEmisor oEmisor = new ComprobanteEmisor(); oEmisor.Rfc = "LEGH870601DM7"; oEmisor.Nombre = "Una razón rh de cv"; oEmisor.RegimenFiscal = "605"; ComprobanteReceptor oReceptor = new ComprobanteReceptor(); oReceptor.Nombre = "Pepe SA DE CV"; oReceptor.Rfc = "BIO091204LB1"; oReceptor.UsoCFDI = "P01"; //asigno emisor y receptor oComprobante.Emisor = oEmisor; oComprobante.Receptor = oReceptor; List<ComprobanteConcepto> lstConceptos = new List<ComprobanteConcepto>(); ComprobanteConcepto oConcepto = new ComprobanteConcepto(); oConcepto.Importe = 10m; oConcepto.ClaveProdServ = "92111704"; oConcepto.Cantidad = 1; oConcepto.ClaveUnidad = "C81"; oConcepto.Descripcion = "Un misil para la guerra"; oConcepto.ValorUnitario = 10m; oConcepto.Descuento = 1; lstConceptos.Add(oConcepto); oComprobante.Conceptos = lstConceptos.ToArray(); //Creamos el xml CreateXML(oComprobante); string cadenaOriginal = ""; string pathxsl = path+ @"XSDToXML\cadenaoriginal_3_3.xslt"; System.Xml.Xsl.XslCompiledTransform transformador = new System.Xml.Xsl.XslCompiledTransform(true); transformador.Load(pathxsl); using (StringWriter sw= new StringWriter()) using (XmlWriter xwo= XmlWriter.Create(sw,transformador.OutputSettings)) { transformador.Transform(pathXML, xwo); cadenaOriginal = sw.ToString(); } SelloDigital oSelloDigital = new SelloDigital(); oComprobante.Certificado = oSelloDigital.Certificado(pathCer); oComprobante.Sello = oSelloDigital.Sellar(cadenaOriginal, pathKey, clavePrivada); CreateXML(oComprobante); //TIMBRE DEL XML ServiceReferenceFC.RespuestaCFDi respuestaCFDI = new ServiceReferenceFC.RespuestaCFDi(); byte[] bXML = System.IO.File.ReadAllBytes(pathXML); ServiceReferenceFC.TimbradoClient oTimbrado =new ServiceReferenceFC.TimbradoClient(); respuestaCFDI = oTimbrado.TimbrarTest("TEST010101ST1", "aaaaaa", bXML); if (respuestaCFDI.Documento == null) { Console.WriteLine(respuestaCFDI.Mensaje); } else { System.IO.File.WriteAllBytes(pathXML, respuestaCFDI.Documento); } } private static void CreateXML(Comprobante oComprobante) { //SERIALIZAMOS.------------------------------------------------- XmlSerializerNamespaces xmlNameSpace = new XmlSerializerNamespaces(); xmlNameSpace.Add("cfdi", "http://www.sat.gob.mx/cfd/3"); xmlNameSpace.Add("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital"); xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance"); XmlSerializer oXmlSerializar = new XmlSerializer(typeof(Comprobante)); string sXml = ""; using (var sww = new Utils.StringWriterWithEncoding(Encoding.UTF8)) { using (XmlWriter writter = XmlWriter.Create(sww)) { oXmlSerializar.Serialize(writter, oComprobante,xmlNameSpace); sXml = sww.ToString(); } } //guardamos el string en un archivo System.IO.File.WriteAllText(pathXML, sXml); } }
¿Cómo convertir archivos XSD a clases de C# .Net? cfdi 3.3 SAT
En este video describo como se puede generar las clases a partir de un archivo XSD.
También explico cómo convertir las clases en archivos XSD que tienen dependencia de otros archivos XSD.
Para ello aprovecho para generar las clases necesarias para crear el archivo XML que sirve para la facturación electrónica 3.3 del SAT en México.
Utilizaremos Visual Studio Command Prompt.
Si desean que haga un curso completo para la facturación electrónica, dime en los comentarios.
Catálogos para facturar CFDI 3.3 SAT en Sql Server
ULTIMA ACTUALIZACIÓN DE LOS CATÁLOGOS: 3 DE ENERO 2018
Pongo a disposición los catálogos en Sql Server publicados por SAT necesarios para la facturación 3.3.
Estaré actualizándolos conforme el SAT libere nuevos registros. Solo dar clic en el siguiente enlace:
DESCARGAR CATÁLOGOS SAT
Si deseas descargar los catálogos para mysql entra aquí
Si deseas descargar los catálogos para SQLite entra aquí
Catálogos para facturar CFDI 3.3 SAT en mysql
ULTIMA ACTUALIZACIÓN DE LOS CATÁLOGOS: 3 DE ENERO 2018
Pongo a disposición los catálogos en mysql publicados por SAT necesarios para la facturación 3.3.
Estaré actualizándolos conforme el SAT libere nuevos registros. Solo dar clic en el siguiente enlace: