sábado, 22 de marzo de 2014

Como generar una factura XML

Para generar una factura XML necesitas seguir las instrucciones del Anexo 20 del SAT,  sellarla y mandarla a timbrar quedando al final algo como esta:

Factura XML Generada

<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" LugarExpedicion="TORREON COAHUILA" Moneda="MXN" TipoCambio="1.0000"certificado="MIIEbTCCA1WgAwIBAgIUMDAwMDEwMDAwMDAzMDA1MTk4MzQwDQYJKoZIhvcNAQEFBQAwggGKMTgwNgYDVQQDDC9BLkMuIGRlbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJhY2nDs24gVHJpYnV0YXJpYTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMR8wHQYJKoZIhvcNAQkBFhBhY29kc0BzYXQuZ29iLm14MSYwJAYDVQQJDB1Bdi4gSGlkYWxnbyA3NywgQ29sLiBHdWVycmVybzEOMAwGA1UEEQwFMDYzMDAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBEaXN0cml0byBGZWRlcmFsMRQwEgYDVQQHDAtDdWF1aHTDqW1vYzEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTUwMwYJKoZIhvcNAQkCDCZSZXNwb25zYWJsZTogQ2xhdWRpYSBDb3ZhcnJ1YmlhcyBPY2hvYTAeFw0xMzA3MTkwNTI2MTdaFw0xNzA3MTkwNTI2MTdaMIG5MSQwIgYDVQQDExtNSUdVRUwgQU5HRUwgU09TQSBIRVJOQU5ERVoxJDAiBgNVBCkTG01JR1VFTCBBTkdFTCBTT1NBIEhFUk5BTkRFWjEkMCIGA1UEChMbTUlHVUVMIEFOR0VMIFNPU0EgSEVSTkFOREVaMRYwFAYDVQQtEw1TT0hNNzUwOTI4OU1BMRswGQYDVQQFExJTT0hNNzUwOTI4SENMU1JHMDYxEDAOBgNVBAsTB1RPUlJFT04wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMGHq0yFM+d5bv9HnvMBV85w8IR6obsE+UdJe9d75z5geeyljftmIfxMAZMO3vYh/r6zzFafClGRWkb5qehpcUi5R7EGdN8b26rRmUMJG0OztdcrIqbUDVIu6ky8+8OL99g0HBu/yxudyVnEF7+PDh7tayhuxpsWf8OAwT593ho1AgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBBQUAA4IBAQA0t6YXOqEWzUTLfRLj+vrvZdXujdcEoboR5Qgj2l6aCCJnNdtPOBBiKaaOldYxuyyhwIZImd6GkLSe3RrBHmzae0Ki4FbsFYn48FxXqdJ7WjnuAW8bIqADv5idCa13+PoVQnsMmZKtzQBlpMMinSXKJzYpm3qSaxbQCdDlWIeemLRABWUmqVAYq+vbHWZaSjcAp8y2CH/aDlWQ/zu5laQ0ndFCsHg5gr57oZxLes5B8CDDRGp95jk+9plFOp1zkth00VvTbhtn9E7oXnDosbLI0a95LIBeUpj2QoGrc49o0zTYuQK0FiCaPQs2kOx/zfWlD7y9+OFYIoCIZ332T9ga"descuento="0.00" fecha="2014-03-21T20:22:18" folio="168" formaDePago="PAGO EN UNA SOLA EXHIBICION" metodoDePago="NO IDENTIFICADO"noCertificado="00001000000300519834"sello="nXhAi/GKrg5vAHE+r3U1Q/bIuwHg1n7gcSIHj6xI7WuG9JZ8yYvufs/w14NHOcrpwAI1mwg3H1alQ4P/a2UYf5ibTeopVlQ4bk+8xomYPFSrIu/Iny08fLaw+kwtzm40CqCFaTj9Wy5b/AsFM4OMhXdg0CK8Oa4li1FlZUOZ/lw="serie="F" subTotal="0.86" tipoDeComprobante="ingreso" total="1.00" version="3.2" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/TimbreFiscalDigital/TimbreFiscalDigital.xsd ">
<cfdi:Emisor nombre="MIGUEL ANGEL SOSA HERNANDEZ" rfc="SOHM7509289MA">
<cfdi:DomicilioFiscal calle="SALTILLO" codigoPostal="27054" colonia="VALLE VERDE" estado="COAHUILA" localidad="TORREON" municipio="TORREON"noExterior="516" noInterior="A" pais="MEXICO"/>
<cfdi:ExpedidoEn calle="SALTILLO" codigoPostal="27054" colonia="VALLE VERDE" estado="COAHUILA" localidad="TORREON" municipio="TORREON" noExterior="516"noInterior="B" pais="MEXICO"/>
<cfdi:RegimenFiscal Regimen="Regimen Intermedio de las Personas Físicas con Actividades Empresariales"/>
</cfdi:Emisor>
<cfdi:Receptor nombre="VENTA A PUBLICO EN GENERAL" rfc="XAXX010101000"></cfdi:Receptor>
<cfdi:Conceptos>
<cfdi:Concepto cantidad="1" descripcion="DEMO SERVICIO MANTENIMIENTO" importe="0.86" noIdentificacion="2G46515" unidad="NO APLICA" valorUnitario="0.86"/>
</cfdi:Conceptos>
<cfdi:Impuestos totalImpuestosRetenidos="0.00" totalImpuestosTrasladados="0.14">
<cfdi:Traslados>
<cfdi:Traslado importe="0.14" impuesto="IVA" tasa="16.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
<cfdi:Complemento>
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" FechaTimbrado="2014-03-21T20:23:13" UUID="C8FD4ED0-BD48-483D-B5B3-D648487DB2C0" noCertificadoSAT="00001000000203285726"selloCFD="nXhAi/GKrg5vAHE+r3U1Q/bIuwHg1n7gcSIHj6xI7WuG9JZ8yYvufs/w14NHOcrpwAI1mwg3H1alQ4P/a2UYf5ibTeopVlQ4bk+8xomYPFSrIu/Iny08fLaw+kwtzm40CqCFaTj9Wy5b/AsFM4OMhXdg0CK8Oa4li1FlZUOZ/lw="selloSAT="fCewRFPxH+tGgvrBDf0Q9XNgAOezX/H6gIAwWU0VqM/EKbZoEuPfjxrNvR2b9dxI8C5tjuWVVpnyDf/cX0zmUTa8X4bFhWbs+xL+tRPn8ny0VT6pk6omR+Op+hCC47mt7ILMM6QuRxn/jxwSrzyHsYCqpzwRMv6ecFGlg6TBMX8="version="1.0" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/TimbreFiscalDigital/TimbreFiscalDigital.xsd"/>
</cfdi:Complemento>
</cfdi:Comprobante>

 
 
Para generar una factura fácilmente te recomiendo la librería de desarrollo de www.multifacturas.com, esta la descargas de modo gratuito para realizar tus pruebas.

Si estas en windows solo creas un archivo de texto con sintaxis como esta.
...
...
...
[factura]
serie=A
folio=100
fecha_expedicion=2014-01-20 22:07:38
metodo_pago=EFECTIVO
forma_pago=PAGO EN UNA SOLA EXHIBICION
tipocomprobante=egreso
moneda=MXN
tipocambio=1.0000
LugarExpedicion=MONTERREY, NUEVO LEON
RegimenFiscal=MI REGIMEN
subtotal=1000
descuento=0
total=1160
[emisor]
rfc=AAA010101AAA
nombre=ACCEM SERVICIOS EMPRESARIALES SC
[emisor.DomicilioFiscal]
calle=JUAREZ
noExterior=100

...
...
...

o en php con sintaxis como la siguiente:
...
...
...
$datos['factura']['serie'] = 'A'; //opcional
$datos['factura']['folio'] = '100'; //opcional
$datos['factura']['fecha_expedicion'] = date('Y-m-d H:i:s',time());

$datos['factura']['metodo_pago'] = 'EFECTIVO'; // EFECTIV0, CHEQUE, TARJETA DE CREDITO, TRANSFERENCIA BANCARIA, NO IDENTIFICADO
$datos['factura']['forma_pago'] = 'PAGO EN UNA SOLA EXHIBICION';  //PAGO EN UNA SOLA EXHIBICION, CREDITO 7 DIAS, CREDITO 15 DIAS, CREDITO 30 DIAS, ETC
$datos['factura']['tipocomprobante'] = 'ingreso';
$datos['factura']['moneda'] = 'MXN'; // MXN USD EUR
$datos['factura']['tipocambio'] = '1.0000'; // OPCIONAL (MXN = 1.00, OTRAS EJ: USD = 13.45; EUR = 16.86)
$datos['factura']['LugarExpedicion'] = 'MONTERREY, NUEVO LEON';
//$datos['factura']['NumCtaPago'] = '0234'; //opcional; 4 DIGITOS pero obligatorio en transferencias y cheques

$datos['factura']['RegimenFiscal'] = 'MI REGIMEN';

$datos['emisor']['rfc'] = 'AAA010101AAA'; //RFC DE PRUEBA
$datos['emisor']['nombre'] = 'ACCEM SERVICIOS EMPRESARIALES SC';  // EMPRESA DE PRUEBA
$datos['emisor']['DomicilioFiscal']['calle'] = 'JUAREZ';
$datos['emisor']['DomicilioFiscal']['noExterior'] = '100';
$datos['emisor']['DomicilioFiscal']['noInterior'] = ''; //(opcional)
$datos['emisor']['DomicilioFiscal']['colonia'] = 'CENTRO';
$datos['emisor']['DomicilioFiscal']['localidad'] = 'MONTERREY';
$datos['emisor']['DomicilioFiscal']['municipio'] = 'MONTERREY'; // o delegacion
$datos['emisor']['DomicilioFiscal']['estado'] = 'NUEVO LEON';
$datos['emisor']['DomicilioFiscal']['pais'] = 'MEXICO';
$datos['emisor']['DomicilioFiscal']['CodigoPostal'] = '01234'; // 5 digitos

//SI EX EXPEDIDO EN SUCURSAL CAMBIA EL DOMICILIO
//SI ES EN EL MISMO DOMICILIO REPETIR INFORMACION
$datos['emisor']['ExpedidoEn']['calle'] = 'HIDALGO';
$datos['emisor']['ExpedidoEn']['noExterior'] = '240';

...
...
...

Ejecutas un comando y listo...  la factura ya esta generada

Vienen mas de 20 ejemplos de múltiples formatos de facturas y generas tu primer factura en pocos minutos, realmente te la recomiendo

No hay comentarios:

Publicar un comentario

Como bloquera archivos adjuntos que son virus en postfix o plesk

   Como bloquear adjuntos del correo en Plesk/Postfix   1- edita el archivo  /etc/postfix/main.cf   2- busca el parametro mime_header_checks...