Este es un ejemplo de como timbrar una factura con php y el kit de desarrollo cfdi de multifacturas
Entra ala pagina http://multifacturas.com y descarga el kit de desarrollo para php
NOTA: Tambien hay un servidor portable para windows con la libreria para php instalada, te suguiero descargarla pues te puede servir para pruebas locales
Una vez descargado ejecuta el ejemplo_factura.php para crear el xml timbrado y sellado por el sat
CODIGO PHP PARA CREAR FACTURA CFDi
<?php
/**
* @author MultiFacturas.com
* @copyright 2014
*
* EL array $datos contiene la información de la factura a generar
*
* GENERA EL XML Y LO TIMBRA EN BASE A LA INFORMACION DEL ARREGLO $datos
*
* VALIDADOR DE ESTRUCTURA DEL XML
* https://www.consulta.sat.gob.mx/sicofi_web/moduloECFD_plus/ValidadorCFDI/Validador%20cfdi.html
*
* PARA NOTA DE CREDITO SOLO CAMBIA EL PARAMETRO $datos['factura']['tipocomprobante'] a egreso
*
* EN ALGUNOS EJEMPLOS SON ILUSTRATIVOS DE LOS PARAMETROS, ASI QUE LOS MONTOS NO CONCORDARAN
*
*/
//include_once "cfdi32_multifacturas_encoded.php";
date_default_timezone_set('America/Mexico_City');
include_once "lib/cfdi32_multifacturas.php";
/////////////////////////////////////////////////////////////////////////////////
//////////// CREAR ARCHIVOS .PEM
/////////////////////////////////////////////////////////////////////////////////
$datos['PAC']['usuario'] = 'DEMO700101XXX';
$datos['PAC']['pass'] = 'DEMO700101XXX';
$datos['PAC']['produccion'] = 'NO'; // [SI|NO]
$datos['conf']['cer'] = 'pruebas/aaa010101aaa.cer.pem';
$datos['conf']['key'] = 'pruebas/aaa010101aaa.key.pem';
$datos['conf']['pass'] = '12345678a';
//RUTA DONDE ALMACENARA EL CFDI
$datos['cfdi']='timbrados/cfdi_ejemplo_factura.xml';
// OPCIONAL GUARDAR EL XML GENERADO ANTES DE TIMBRARLO
$datos['xml_debug']='timbrados/sin_timbrar_ejemplo_factura.xml';
//OPCIONAL, ACTIVAR SOLO EN CASO DE CONFLICTOS
//$datos['remueve_acentos']='SI';
//OPCIONAL, UTILIZAR LA LIBRERIA PHP DE OPENSSL, DEFAULT SI
$datos['php_openssl']='SI';
$datos['factura']['serie'] = 'A'; //opcional
$datos['factura']['folio'] = '100'; //opcional
$datos['factura']['fecha_expedicion'] = date('Y-m-d H:i:s',time()-120);// Opcional "time()-120" para retrasar la hora 2 minutos para evitar falla de error en rango de fecha
$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'; //ingreso, egreso
$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';
$datos['emisor']['ExpedidoEn']['noInterior'] = ''; //(opcional)
$datos['emisor']['ExpedidoEn']['colonia'] = 'LAS CUMBRES 3 SECTOR';
$datos['emisor']['ExpedidoEn']['localidad'] = 'MONTERREY';
$datos['emisor']['ExpedidoEn']['municipio'] = 'MONTERREY'; // O DELEGACION
$datos['emisor']['ExpedidoEn']['estado'] = 'NUEVO LEON';
$datos['emisor']['ExpedidoEn']['pais'] = 'MEXICO';
$datos['emisor']['ExpedidoEn']['CodigoPostal'] = '64610'; // 5 digitos
// IMPORTANTE PROBAR CON NOMBRE Y RFC REAL O GENERARA ERROR DE XML MAL FORMADO
$datos['receptor']['rfc'] = 'SOHM7509289MA';
$datos['receptor']['nombre'] = 'MIGUEL ANGEL SOSA HERNANDEZ';
//opcional
$datos['receptor']['Domicilio']['calle'] = 'PERIFERICO';
$datos['receptor']['Domicilio']['noExterior'] = '1024';
$datos['receptor']['Domicilio']['noInterior'] = 'B';
$datos['receptor']['Domicilio']['colonia'] = 'SAN ANGEL';
$datos['receptor']['Domicilio']['localidad'] = 'CIUDAD DE MÉXICO';
$datos['receptor']['Domicilio']['municipio'] = 'ALVARO OBREGON';
$datos['receptor']['Domicilio']['estado'] = 'DISTRITO FEDERAL';
$datos['receptor']['Domicilio']['pais'] = 'MEXICO';
$datos['receptor']['Domicilio']['CodigoPostal'] = '23010'; // 5 digitos
//AGREGAR 10 CONCEPTOS DE PRUEBA
for ($i = 1; $i < 11; $i++) {
unset($concepto);
$concepto['cantidad'] = 1;
$concepto['unidad'] = 'PIEZA';
$concepto['ID'] = "COD$i"; //ID, REF, CODIGO O SKU DEL PRODUCTO
// $concepto['descripcion'] = "PRODUCTO PRUEBA > '$i'";
$concepto['descripcion'] = "PRODUCTO PRUEBA $i";
$concepto['valorunitario'] = '100.00'; // SIN IVA
$concepto['importe'] = '100.00';
$datos['conceptos'][] = $concepto;
}
$datos['factura']['subtotal'] = 1100.00; // sin impuestos
$datos['factura']['descuento'] = 100.00; // descuento sin impuestos
$datos['factura']['total'] = 1160.00; // total incluyendo impuestos
$translado1['impuesto'] = 'IVA';
$translado1['tasa'] = '16';
$translado1['importe'] = 160.00; // iva de los productos facturados
$datos['impuestos']['translados'][0] = $translado1;
$res= cfdi_generar_xml($datos);
/////////// MOSTRAR RESULTADOS DEL ARRAY $res ///////////
echo "<h1>Respuesta Generar XML y Timbrado</h1>";
foreach($res AS $variable=>$valor)
{
$valor=htmlentities($valor);
$valor=str_replace('<br/>','<br/>',$valor);
echo "<b>[$variable]=</b>$valor<hr>";
}
?>
LA RESPUESTA AL EJECUTAR EL ejemplo_factura.php
[png]=iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAEcklEQVR42u3dQW7jMBBFQd3/0pNF1rMIxO7+TdUDZuXE8YgsA7Jo6vkn6b89DoEEiASIBIgEiASIBIgEiASIBIgkQCRAJEAkQCRAJEAkQCRAJEAkQCQBIgEiASIBIgEiAfL7h56n9d/b13f68erXc/r4/PX308cXEEAAAQQQQAABBBBAup//9AR/O6CnJ3D1z3e/QXQ/PyCAAAIIIIAAAggg3wNyesJtH6Bq0N3HP318AQEEEEAAAQQQQAABZNsApVzYmgIPCCCAAAIIIIAAAggggMyedE8Dn16sCAgggAACCCCAAAIIIOlApgFWT8i0xY3Vr2/b/AEEEEAAAQQQQAAB5H4g0xPM47WP27QBEI8DAojHAQHE44BMA0mreyO66cWQaRdS18wTQAABBBBAAAEEEECcpDdt5rxtcWE34OkPBQABBBBAAAEEEEAAASQdzPSAvz0+028I0wA+d6EQEEAAAQQQQAABBJA4ENWbFFRfaKy+6Wj1G0Y3CEAAAQQQQAABBBBAAKkGkjaAaTfBTAPYPV8AAQQQQAABBBBAAAFk+gClfwEqbfPptM21U8ECAggggAACCCCAAHIvkOkLbdMX7tK/IJb2oQcggAACCCCAAAIIIIBU/we7Nz1IP6mcXqw4vRgUEEAAAQQQQAABBBBAqid42o3tq09Ku4FUj2c1WEAAAQQQQAABBBBAADk94Ns2fZi+kDd9vLeCAAQQQAABBBBAAAHku0DSblrZPWDbvsC0/XgDAggggAACCCCAAHIfkLQv8HQPcPUXsqYvnKYtdgQEEEAAAQQQQAABBJDpk9hpEOmbV6fdAMhiRUAAAQQQQAABBBBAuk/S0yfEtguH1cere1MOQAABBBBAAAEEEEAAOT3g1RNmerFe2vNt+3uAAAIIIIAAAggggACybYKnfaiwbXPsbTc4AgQQQAABBBBAAAEEkO4JkQbu7QTZthjSSToggAACCCCAAAIIIN1Apjef7p5Q3ZscTH8BbPrCLyCAAAIIIIAAAggggKQd8O6Tyu4bzlQDrH6DSD2JBwQQQAABBBBAAAHkHiDdB7x7QqRvvl39BnPLTT0BAQQQQAABBBBAAPkOkO2/v/0GNNsXQwICCCCAAAIIIIAAAsj2TQaqJ3j6Ztjdi0MBAQQQQAABBBBAAAFke9sutFVP6O6T5q2bWwMCCCCAAAIIIIAAcs9JevpJ4OmfnwaYdsOitA95AAEEEEAAAQQQQAC5H0ja86ff1LMbSPomGoAAAggggAACCCCAAFI94Ns2Ups+ie8eD4sVAQEEEEAAAQQQQAABpPb50zd7Tnv+6jc0QAABBBBAAAEEEEAASR/g6gtpaRfaui/U2rwaEEAAAQQQQAABBJB0IN0AqwcsbXHm9pt0AgIIIIAAAggggAACyOkD3L0YbhpQ9Ul59xtK2k1RAQEEEEAAAQQQQAABRNoYIBIgEiASIBIgEiASIBIgEiASIJIAkQCRAJEAkQCRAJEAkQCRAJEAkQSIBIgEiASIBIgU3g/zWewzqA7MxgAAAABJRU5ErkJggg==
[idpac]=1
[pac]=55503
[produccion]=NO
[codigo_mf_numero]=0
[codigo_mf_texto]=OK : PRUEBA EXITOSA NO VALIDA ANTE SAT
[mensaje_original_pac_json]={"return":{"codigo":"iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAEcklEQVR42u3dQW7jMBBFQd3\/0pNF1rMIxO7+TdUDZuXE8YgsA7Jo6vkn6b89DoEEiASIBIgEiASIBIgEiASIBIgkQCRAJEAkQCRAJEAkQCRAJEAkQCQBIgEiASIBIgEiAfL7h56n9d\/b13f68erXc\/r4\/PX308cXEEAAAQQQQAABBBBAup\/\/9AR\/O6CnJ3D1z3e\/QXQ\/PyCAAAIIIIAAAggg3wNyesJtH6Bq0N3HP318AQEEEEAAAQQQQAABZNsApVzYmgIPCCCAAAIIIIAAAggggMyedE8Dn16sCAgggAACCCCAAAIIIOlApgFWT8i0xY3Vr2\/b\/AEEEEAAAQQQQAAB5H4g0xPM47WP27QBEI8DAojHAQHE44BMA0mreyO66cWQaRdS18wTQAABBBBAAAEEEECcpDdt5rxtcWE34OkPBQABBBBAAAEEEEAAASQdzPSAvz0+028I0wA+d6EQEEAAAQQQQAABBJA4ENWbFFRfaKy+6Wj1G0Y3CEAAAQQQQAABBBBAAKkGkjaAaTfBTAPYPV8AAQQQQAABBBBAAAFk+gClfwEqbfPptM21U8ECAggggAACCCCAAHIvkOkLbdMX7tK\/IJb2oQcggAACCCCAAAIIIIBU\/we7Nz1IP6mcXqw4vRgUEEAAAQQQQAABBBBAqid42o3tq09Ku4FUj2c1WEAAAQQQQAABBBBAADk94Ns2fZi+kDd9vLeCAAQQQAABBBBAAAHku0DSblrZPWDbvsC0\/XgDAggggAACCCCAAHIfkLQv8HQPcPUXsqYvnKYtdgQEEEAAAQQQQAABBJDpk9hpEOmbV6fdAMhiRUAAAQQQQAABBBBAuk\/S0yfEtguH1cere1MOQAABBBBAAAEEEEAAOT3g1RNmerFe2vNt+3uAAAIIIIAAAggggACybYKnfaiwbXPsbTc4AgQQQAABBBBAAAEEkO4JkQbu7QTZthjSSToggAACCCCAAAIIIN1Apjef7p5Q3ZscTH8BbPrCLyCAAAIIIIAAAggggKQd8O6Tyu4bzlQDrH6DSD2JBwQQQAABBBBAAAHkHiDdB7x7QqRvvl39BnPLTT0BAQQQQAABBBBAAPkOkO2\/v\/0GNNsXQwICCCCAAAIIIIAAAsj2TQaqJ3j6Ztjdi0MBAQQQQAABBBBAAAFke9sutFVP6O6T5q2bWwMCCCCAAAIIIIAAcs9JevpJ4OmfnwaYdsOitA95AAEEEEAAAQQQQAC5H0ja86ff1LMbSPomGoAAAggggAACCCCAAFI94Ns2Ups+ie8eD4sVAQEEEEAAAQQQQAABpPb50zd7Tnv+6jc0QAABBBBAAAEEEEAASR\/g6gtpaRfaui\/U2rwaEEAAAQQQQAABBJB0IN0AqwcsbXHm9pt0AgIIIIAAAggggAACyOkD3L0YbhpQ9Ul59xtK2k1RAQEEEEAAAQQQQAABRNoYIBIgEiASIBIgEiASIBIgEiASIJIAkQCRAJEAkQCRAJEAkQCRAJEAkQSIBIgEiASIBIgU3g\/zWewzqA7MxgAAAABJRU5ErkJggg==","status":"","timbre":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><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=\"MONTERREY, NUEVO LEON\" Moneda=\"MXN\" TipoCambio=\"1.0000\" certificado=\"MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMjA3MjcxNzAyMDBaFw0xNjA3MjcxNzAyMDBaMIHbMSkwJwYDVQQDEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVTQVJJQUxFUyBTQzEpMCcGA1UEKRMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFMRVMgU0MxKTAnBgNVBAoTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFNDMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBIRUdUNzYxMDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxETAPBgNVBAsTCFVuaWRhZCAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2TTQSPONBOVxpXv9wLYo8jezBrb34i\/tLx8jGdtyy27BcesOav2c1NS\/Gdv10u9SkWtwdy34uRAVe7H0a3VMRLHAkvp2qMCHaZc4T8k47Jtb9wrOEh\/XFS8LgT4y5OQYo6civfXXdlvxWU\/gdM\/e6I2lg6FGorP8H4GPAJ\/qCNwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEATxMecTpMbdhSHo6KVUg4QVF4Op2IBhiMaOrtrXBdJgzGotUFcJgdBCMjtTZXSlq1S4DG1jr8p4NzQlzxsdTxaB8nSKJ4KEMgIT7E62xRUj15jI49qFz7f2uMttZLNThipunsN\/NF1XtvESMTDwQFvas\/Ugig6qwEfSZc0MDxMpKLEkEePmQwtZD+zXFSMVa6hmOu4M+FzGiRXbj4YJXn9Myjd8xbL\/c+9UIcrYoZskxDvMxc6\/6M3rNNDY3OFhBK+V\/sPMzWWGt8S1yjmtPfXgFs1t65AZ2hcTwTAuHrKwDatJ1ZPfa482ZBROAAX1waz7WwXp0gso7sDCm2\/yUVww==\" descuento=\"100.0000\" fecha=\"2015-07-08T11:11:33\" folio=\"100\" formaDePago=\"PAGO EN UNA SOLA EXHIBICION\" metodoDePago=\"EFECTIVO\" noCertificado=\"20001000000100005867\" sello=\"OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O\/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV\/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs\/jM=\" serie=\"A\" subTotal=\"1100.00\" tipoDeComprobante=\"ingreso\" total=\"1160.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 \">\n \n <cfdi:Emisor nombre=\"ACCEM SERVICIOS EMPRESARIALES SC\" rfc=\"AAA010101AAA\">\n <cfdi:DomicilioFiscal calle=\"JUAREZ\" codigoPostal=\"01234\" colonia=\"CENTRO\" estado=\"NUEVO LEON\" localidad=\"MONTERREY\" municipio=\"MONTERREY\" noExterior=\"100\" pais=\"MEXICO\"\/>\n <cfdi:ExpedidoEn calle=\"HIDALGO\" codigoPostal=\"64610\" colonia=\"LAS CUMBRES 3 SECTOR\" estado=\"NUEVO LEON\" localidad=\"MONTERREY\" municipio=\"MONTERREY\" noExterior=\"240\" pais=\"MEXICO\"\/>\n <cfdi:RegimenFiscal Regimen=\"MI REGIMEN\"\/>\n <\/cfdi:Emisor>\n \n <cfdi:Receptor nombre=\"MIGUEL ANGEL SOSA HERNANDEZ\" rfc=\"SOHM7509289MA\">\n <cfdi:Domicilio calle=\"PERIFERICO\" codigoPostal=\"23010\" colonia=\"SAN ANGEL\" estado=\"DISTRITO FEDERAL\" localidad=\"CIUDAD DE M\u00c9XICO\" municipio=\"ALVARO OBREGON\" noExterior=\"1024\" noInterior=\"B\" pais=\"MEXICO\"\/>\n <\/cfdi:Receptor>\n \n <cfdi:Conceptos>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 1\" importe=\"100.00\" noIdentificacion=\"COD1\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 2\" importe=\"100.00\" noIdentificacion=\"COD2\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 3\" importe=\"100.00\" noIdentificacion=\"COD3\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 4\" importe=\"100.00\" noIdentificacion=\"COD4\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 5\" importe=\"100.00\" noIdentificacion=\"COD5\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 6\" importe=\"100.00\" noIdentificacion=\"COD6\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 7\" importe=\"100.00\" noIdentificacion=\"COD7\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 8\" importe=\"100.00\" noIdentificacion=\"COD8\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 9\" importe=\"100.00\" noIdentificacion=\"COD9\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 10\" importe=\"100.00\" noIdentificacion=\"COD10\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n \n <\/cfdi:Conceptos>\n \n <cfdi:Impuestos totalImpuestosRetenidos=\"0.0000\" totalImpuestosTrasladados=\"160.0000\">\n \n \n <cfdi:Traslados>\n <cfdi:Traslado importe=\"160.00\" impuesto=\"IVA\" tasa=\"16\"\/> \n <\/cfdi:Traslados> \n <\/cfdi:Impuestos>\n \n \n <cfdi:Complemento><tfd:TimbreFiscalDigital FechaTimbrado=\"2015-07-08T11:14:49\" UUID=\"89BC6108-B3B6-4C85-A9DF-645B6F61C8FE\" noCertificadoSAT=\"20001000000100005761\" selloCFD=\"OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O\/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV\/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs\/jM=\" selloSAT=\"Utu511cMyXPLm+kwiydv8xSdUYdictmkuu6SNzseo79npmz\/1FxWmIUjw2hG+TtUbPF5R2WbsF35XWg\/T9AUsvxY+s5nCOPGmbEgX27tRP2R9n442rwmxehL9jKmlX3F06rw+elYTI0Cbv60d0\/cBJLFD31ACKoBXb5H7RuvLys=\" version=\"1.0\" xmlns:tfd=\"http:\/\/www.sat.gob.mx\/TimbreFiscalDigital\" xsi:schemaLocation=\"http:\/\/www.sat.gob.mx\/TimbreFiscalDigital http:\/\/www.sat.gob.mx\/TimbreFiscalDigital\/TimbreFiscalDigital.xsd\"\/><\/cfdi:Complemento><\/cfdi:Comprobante>"}}
[cancelada]=NO
[saldo]=19
[uuid]=89BC6108-B3B6-4C85-A9DF-645B6F61C8FE
[servidor]=1
[ejecucion]=298.105
[representacion_impresa_cadena]=||1.0|89BC6108-B3B6-4C85-A9DF-645B6F61C8FE|2015-07-08T11:14:49|OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs/jM=|20001000000100005761||
[representacion_impresa_certificado_no]=20001000000100005867
[representacion_impresa_fecha_timbrado]=2015-07-08T11:14:49
[representacion_impresa_sello]=OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs/jM=
[representacion_impresa_selloSAT]=Utu511cMyXPLm+kwiydv8xSdUYdictmkuu6SNzseo79npmz/1FxWmIUjw2hG+TtUbPF5R2WbsF35XWg/T9AUsvxY+s5nCOPGmbEgX27tRP2R9n442rwmxehL9jKmlX3F06rw+elYTI0Cbv60d0/cBJLFD31ACKoBXb5H7RuvLys=
[representacion_impresa_certificadoSAT]=20001000000100005761
[archivo_png]=timbrados/cfdi_ejemplo_factura.png
[archivo_xml]=timbrados/cfdi_ejemplo_factura.xml
EL KIT TE REGRESA UN ARREGLO CON LOS SIGUIENTES REGISTROS
[cfdi]= la cadena del archivo XML timbrado
[png]= el codigo QR en BASE64
[idpac]=id de pac en multifacturas
[pac]=numero de PAC registrado en el SAT
[produccion]=si es un ejemplo = NO , si es un rfc real =SI
[codigo_mf_numero]=codigo de respuesta en multifacturas (LOS CODIGOS DE RESPUESTA ESTAN EN LA AYUDA DEL KIT DE DESARROLLO)
[mensaje_original_pac_json]=mensaje original que regresa el PAC
[cancelada]=si fue factura cancelada
[saldo]=saldo de rfc en multifacturas
[uuid]=UUID de la factura timbrada (folio fiscal SAT)
[servidor]=servidor de multifacturas
[ejecucion]=tiempo de ejecucion del timbrado
[representacion_impresa_cadena]=cadena original SAT
[representacion_impresa_certificado_no]= no. certificado SAT
[representacion_impresa_fecha_timbrado]=fecha timbrado SAT
[representacion_impresa_sello]=sello de tus CSD
[representacion_impresa_selloSAT]=sello certificados del PAC
[representacion_impresa_certificadoSAT]=certificado SAT
[archivo_png]=ruta de archivo .png de codigo QR
[archivo_xml]=ruta de xml timbrado y sellado por el SAT
Como ves es muy facil timbrar una factura con php y el kit de multifacturas, en el kit tambien vienen ejemplos para timbrar la nomina, arrendamiento, hoteles, cheques, honorarios, escuelas, impuestos locales, tickets de compra
el kit de desarrollo cfdi lo puedes descargar desde la pagina http://multifacturas.com
Entra ala pagina http://multifacturas.com y descarga el kit de desarrollo para php
NOTA: Tambien hay un servidor portable para windows con la libreria para php instalada, te suguiero descargarla pues te puede servir para pruebas locales
Una vez descargado ejecuta el ejemplo_factura.php para crear el xml timbrado y sellado por el sat
CODIGO PHP PARA CREAR FACTURA CFDi
<?php
/**
* @author MultiFacturas.com
* @copyright 2014
*
* EL array $datos contiene la información de la factura a generar
*
* GENERA EL XML Y LO TIMBRA EN BASE A LA INFORMACION DEL ARREGLO $datos
*
* VALIDADOR DE ESTRUCTURA DEL XML
* https://www.consulta.sat.gob.mx/sicofi_web/moduloECFD_plus/ValidadorCFDI/Validador%20cfdi.html
*
* PARA NOTA DE CREDITO SOLO CAMBIA EL PARAMETRO $datos['factura']['tipocomprobante'] a egreso
*
* EN ALGUNOS EJEMPLOS SON ILUSTRATIVOS DE LOS PARAMETROS, ASI QUE LOS MONTOS NO CONCORDARAN
*
*/
//include_once "cfdi32_multifacturas_encoded.php";
date_default_timezone_set('America/Mexico_City');
include_once "lib/cfdi32_multifacturas.php";
/////////////////////////////////////////////////////////////////////////////////
//////////// CREAR ARCHIVOS .PEM
/////////////////////////////////////////////////////////////////////////////////
$datos['PAC']['usuario'] = 'DEMO700101XXX';
$datos['PAC']['pass'] = 'DEMO700101XXX';
$datos['PAC']['produccion'] = 'NO'; // [SI|NO]
$datos['conf']['cer'] = 'pruebas/aaa010101aaa.cer.pem';
$datos['conf']['key'] = 'pruebas/aaa010101aaa.key.pem';
$datos['conf']['pass'] = '12345678a';
//RUTA DONDE ALMACENARA EL CFDI
$datos['cfdi']='timbrados/cfdi_ejemplo_factura.xml';
// OPCIONAL GUARDAR EL XML GENERADO ANTES DE TIMBRARLO
$datos['xml_debug']='timbrados/sin_timbrar_ejemplo_factura.xml';
//OPCIONAL, ACTIVAR SOLO EN CASO DE CONFLICTOS
//$datos['remueve_acentos']='SI';
//OPCIONAL, UTILIZAR LA LIBRERIA PHP DE OPENSSL, DEFAULT SI
$datos['php_openssl']='SI';
$datos['factura']['serie'] = 'A'; //opcional
$datos['factura']['folio'] = '100'; //opcional
$datos['factura']['fecha_expedicion'] = date('Y-m-d H:i:s',time()-120);// Opcional "time()-120" para retrasar la hora 2 minutos para evitar falla de error en rango de fecha
$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'; //ingreso, egreso
$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';
$datos['emisor']['ExpedidoEn']['noInterior'] = ''; //(opcional)
$datos['emisor']['ExpedidoEn']['colonia'] = 'LAS CUMBRES 3 SECTOR';
$datos['emisor']['ExpedidoEn']['localidad'] = 'MONTERREY';
$datos['emisor']['ExpedidoEn']['municipio'] = 'MONTERREY'; // O DELEGACION
$datos['emisor']['ExpedidoEn']['estado'] = 'NUEVO LEON';
$datos['emisor']['ExpedidoEn']['pais'] = 'MEXICO';
$datos['emisor']['ExpedidoEn']['CodigoPostal'] = '64610'; // 5 digitos
// IMPORTANTE PROBAR CON NOMBRE Y RFC REAL O GENERARA ERROR DE XML MAL FORMADO
$datos['receptor']['rfc'] = 'SOHM7509289MA';
$datos['receptor']['nombre'] = 'MIGUEL ANGEL SOSA HERNANDEZ';
//opcional
$datos['receptor']['Domicilio']['calle'] = 'PERIFERICO';
$datos['receptor']['Domicilio']['noExterior'] = '1024';
$datos['receptor']['Domicilio']['noInterior'] = 'B';
$datos['receptor']['Domicilio']['colonia'] = 'SAN ANGEL';
$datos['receptor']['Domicilio']['localidad'] = 'CIUDAD DE MÉXICO';
$datos['receptor']['Domicilio']['municipio'] = 'ALVARO OBREGON';
$datos['receptor']['Domicilio']['estado'] = 'DISTRITO FEDERAL';
$datos['receptor']['Domicilio']['pais'] = 'MEXICO';
$datos['receptor']['Domicilio']['CodigoPostal'] = '23010'; // 5 digitos
//AGREGAR 10 CONCEPTOS DE PRUEBA
for ($i = 1; $i < 11; $i++) {
unset($concepto);
$concepto['cantidad'] = 1;
$concepto['unidad'] = 'PIEZA';
$concepto['ID'] = "COD$i"; //ID, REF, CODIGO O SKU DEL PRODUCTO
// $concepto['descripcion'] = "PRODUCTO PRUEBA > '$i'";
$concepto['descripcion'] = "PRODUCTO PRUEBA $i";
$concepto['valorunitario'] = '100.00'; // SIN IVA
$concepto['importe'] = '100.00';
$datos['conceptos'][] = $concepto;
}
$datos['factura']['subtotal'] = 1100.00; // sin impuestos
$datos['factura']['descuento'] = 100.00; // descuento sin impuestos
$datos['factura']['total'] = 1160.00; // total incluyendo impuestos
$translado1['impuesto'] = 'IVA';
$translado1['tasa'] = '16';
$translado1['importe'] = 160.00; // iva de los productos facturados
$datos['impuestos']['translados'][0] = $translado1;
$res= cfdi_generar_xml($datos);
/////////// MOSTRAR RESULTADOS DEL ARRAY $res ///////////
echo "<h1>Respuesta Generar XML y Timbrado</h1>";
foreach($res AS $variable=>$valor)
{
$valor=htmlentities($valor);
$valor=str_replace('<br/>','<br/>',$valor);
echo "<b>[$variable]=</b>$valor<hr>";
}
?>
LA RESPUESTA AL EJECUTAR EL ejemplo_factura.php
Respuesta Generar XML y Timbrado
[cfdi]=<?xml version="1.0" encoding="UTF-8"?><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="MONTERREY, NUEVO LEON" Moneda="MXN" TipoCambio="1.0000" certificado="MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMjA3MjcxNzAyMDBaFw0xNjA3MjcxNzAyMDBaMIHbMSkwJwYDVQQDEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVTQVJJQUxFUyBTQzEpMCcGA1UEKRMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFMRVMgU0MxKTAnBgNVBAoTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFNDMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBIRUdUNzYxMDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxETAPBgNVBAsTCFVuaWRhZCAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2TTQSPONBOVxpXv9wLYo8jezBrb34i/tLx8jGdtyy27BcesOav2c1NS/Gdv10u9SkWtwdy34uRAVe7H0a3VMRLHAkvp2qMCHaZc4T8k47Jtb9wrOEh/XFS8LgT4y5OQYo6civfXXdlvxWU/gdM/e6I2lg6FGorP8H4GPAJ/qCNwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEATxMecTpMbdhSHo6KVUg4QVF4Op2IBhiMaOrtrXBdJgzGotUFcJgdBCMjtTZXSlq1S4DG1jr8p4NzQlzxsdTxaB8nSKJ4KEMgIT7E62xRUj15jI49qFz7f2uMttZLNThipunsN/NF1XtvESMTDwQFvas/Ugig6qwEfSZc0MDxMpKLEkEePmQwtZD+zXFSMVa6hmOu4M+FzGiRXbj4YJXn9Myjd8xbL/c+9UIcrYoZskxDvMxc6/6M3rNNDY3OFhBK+V/sPMzWWGt8S1yjmtPfXgFs1t65AZ2hcTwTAuHrKwDatJ1ZPfa482ZBROAAX1waz7WwXp0gso7sDCm2/yUVww==" descuento="100.0000" fecha="2015-07-08T11:11:33" folio="100" formaDePago="PAGO EN UNA SOLA EXHIBICION" metodoDePago="EFECTIVO" noCertificado="20001000000100005867" sello="OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs/jM=" serie="A" subTotal="1100.00" tipoDeComprobante="ingreso" total="1160.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="ACCEM SERVICIOS EMPRESARIALES SC" rfc="AAA010101AAA"> <cfdi:DomicilioFiscal calle="JUAREZ" codigoPostal="01234" colonia="CENTRO" estado="NUEVO LEON" localidad="MONTERREY" municipio="MONTERREY" noExterior="100" pais="MEXICO"/> <cfdi:ExpedidoEn calle="HIDALGO" codigoPostal="64610" colonia="LAS CUMBRES 3 SECTOR" estado="NUEVO LEON" localidad="MONTERREY" municipio="MONTERREY" noExterior="240" pais="MEXICO"/> <cfdi:RegimenFiscal Regimen="MI REGIMEN"/> </cfdi:Emisor> <cfdi:Receptor nombre="MIGUEL ANGEL SOSA HERNANDEZ" rfc="SOHM7509289MA"> <cfdi:Domicilio calle="PERIFERICO" codigoPostal="23010" colonia="SAN ANGEL" estado="DISTRITO FEDERAL" localidad="CIUDAD DE MÉXICO" municipio="ALVARO OBREGON" noExterior="1024" noInterior="B" pais="MEXICO"/> </cfdi:Receptor> <cfdi:Conceptos> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 1" importe="100.00" noIdentificacion="COD1" unidad="PIEZA" valorUnitario="100.00"/> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 2" importe="100.00" noIdentificacion="COD2" unidad="PIEZA" valorUnitario="100.00"/> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 3" importe="100.00" noIdentificacion="COD3" unidad="PIEZA" valorUnitario="100.00"/> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 4" importe="100.00" noIdentificacion="COD4" unidad="PIEZA" valorUnitario="100.00"/> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 5" importe="100.00" noIdentificacion="COD5" unidad="PIEZA" valorUnitario="100.00"/> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 6" importe="100.00" noIdentificacion="COD6" unidad="PIEZA" valorUnitario="100.00"/> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 7" importe="100.00" noIdentificacion="COD7" unidad="PIEZA" valorUnitario="100.00"/> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 8" importe="100.00" noIdentificacion="COD8" unidad="PIEZA" valorUnitario="100.00"/> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 9" importe="100.00" noIdentificacion="COD9" unidad="PIEZA" valorUnitario="100.00"/> <cfdi:Concepto cantidad="1" descripcion="PRODUCTO PRUEBA 10" importe="100.00" noIdentificacion="COD10" unidad="PIEZA" valorUnitario="100.00"/> </cfdi:Conceptos> <cfdi:Impuestos totalImpuestosRetenidos="0.0000" totalImpuestosTrasladados="160.0000"> <cfdi:Traslados> <cfdi:Traslado importe="160.00" impuesto="IVA" tasa="16"/> </cfdi:Traslados> </cfdi:Impuestos> <cfdi:Complemento><tfd:TimbreFiscalDigital FechaTimbrado="2015-07-08T11:14:49" UUID="89BC6108-B3B6-4C85-A9DF-645B6F61C8FE" noCertificadoSAT="20001000000100005761" selloCFD="OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs/jM=" selloSAT="Utu511cMyXPLm+kwiydv8xSdUYdictmkuu6SNzseo79npmz/1FxWmIUjw2hG+TtUbPF5R2WbsF35XWg/T9AUsvxY+s5nCOPGmbEgX27tRP2R9n442rwmxehL9jKmlX3F06rw+elYTI0Cbv60d0/cBJLFD31ACKoBXb5H7RuvLys=" version="1.0" xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/TimbreFiscalDigital/TimbreFiscalDigital.xsd"/></cfdi:Complemento></cfdi:Comprobante>[png]=iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAEcklEQVR42u3dQW7jMBBFQd3/0pNF1rMIxO7+TdUDZuXE8YgsA7Jo6vkn6b89DoEEiASIBIgEiASIBIgEiASIBIgkQCRAJEAkQCRAJEAkQCRAJEAkQCQBIgEiASIBIgEiAfL7h56n9d/b13f68erXc/r4/PX308cXEEAAAQQQQAABBBBAup//9AR/O6CnJ3D1z3e/QXQ/PyCAAAIIIIAAAggg3wNyesJtH6Bq0N3HP318AQEEEEAAAQQQQAABZNsApVzYmgIPCCCAAAIIIIAAAggggMyedE8Dn16sCAgggAACCCCAAAIIIOlApgFWT8i0xY3Vr2/b/AEEEEAAAQQQQAAB5H4g0xPM47WP27QBEI8DAojHAQHE44BMA0mreyO66cWQaRdS18wTQAABBBBAAAEEEECcpDdt5rxtcWE34OkPBQABBBBAAAEEEEAAASQdzPSAvz0+028I0wA+d6EQEEAAAQQQQAABBJA4ENWbFFRfaKy+6Wj1G0Y3CEAAAQQQQAABBBBAAKkGkjaAaTfBTAPYPV8AAQQQQAABBBBAAAFk+gClfwEqbfPptM21U8ECAggggAACCCCAAHIvkOkLbdMX7tK/IJb2oQcggAACCCCAAAIIIIBU/we7Nz1IP6mcXqw4vRgUEEAAAQQQQAABBBBAqid42o3tq09Ku4FUj2c1WEAAAQQQQAABBBBAADk94Ns2fZi+kDd9vLeCAAQQQAABBBBAAAHku0DSblrZPWDbvsC0/XgDAggggAACCCCAAHIfkLQv8HQPcPUXsqYvnKYtdgQEEEAAAQQQQAABBJDpk9hpEOmbV6fdAMhiRUAAAQQQQAABBBBAuk/S0yfEtguH1cere1MOQAABBBBAAAEEEEAAOT3g1RNmerFe2vNt+3uAAAIIIIAAAggggACybYKnfaiwbXPsbTc4AgQQQAABBBBAAAEEkO4JkQbu7QTZthjSSToggAACCCCAAAIIIN1Apjef7p5Q3ZscTH8BbPrCLyCAAAIIIIAAAggggKQd8O6Tyu4bzlQDrH6DSD2JBwQQQAABBBBAAAHkHiDdB7x7QqRvvl39BnPLTT0BAQQQQAABBBBAAPkOkO2/v/0GNNsXQwICCCCAAAIIIIAAAsj2TQaqJ3j6Ztjdi0MBAQQQQAABBBBAAAFke9sutFVP6O6T5q2bWwMCCCCAAAIIIIAAcs9JevpJ4OmfnwaYdsOitA95AAEEEEAAAQQQQAC5H0ja86ff1LMbSPomGoAAAggggAACCCCAAFI94Ns2Ups+ie8eD4sVAQEEEEAAAQQQQAABpPb50zd7Tnv+6jc0QAABBBBAAAEEEEAASR/g6gtpaRfaui/U2rwaEEAAAQQQQAABBJB0IN0AqwcsbXHm9pt0AgIIIIAAAggggAACyOkD3L0YbhpQ9Ul59xtK2k1RAQEEEEAAAQQQQAABRNoYIBIgEiASIBIgEiASIBIgEiASIJIAkQCRAJEAkQCRAJEAkQCRAJEAkQSIBIgEiASIBIgU3g/zWewzqA7MxgAAAABJRU5ErkJggg==
[idpac]=1
[pac]=55503
[produccion]=NO
[codigo_mf_numero]=0
[codigo_mf_texto]=OK : PRUEBA EXITOSA NO VALIDA ANTE SAT
[mensaje_original_pac_json]={"return":{"codigo":"iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAEcklEQVR42u3dQW7jMBBFQd3\/0pNF1rMIxO7+TdUDZuXE8YgsA7Jo6vkn6b89DoEEiASIBIgEiASIBIgEiASIBIgkQCRAJEAkQCRAJEAkQCRAJEAkQCQBIgEiASIBIgEiAfL7h56n9d\/b13f68erXc\/r4\/PX308cXEEAAAQQQQAABBBBAup\/\/9AR\/O6CnJ3D1z3e\/QXQ\/PyCAAAIIIIAAAggg3wNyesJtH6Bq0N3HP318AQEEEEAAAQQQQAABZNsApVzYmgIPCCCAAAIIIIAAAggggMyedE8Dn16sCAgggAACCCCAAAIIIOlApgFWT8i0xY3Vr2\/b\/AEEEEAAAQQQQAAB5H4g0xPM47WP27QBEI8DAojHAQHE44BMA0mreyO66cWQaRdS18wTQAABBBBAAAEEEECcpDdt5rxtcWE34OkPBQABBBBAAAEEEEAAASQdzPSAvz0+028I0wA+d6EQEEAAAQQQQAABBJA4ENWbFFRfaKy+6Wj1G0Y3CEAAAQQQQAABBBBAAKkGkjaAaTfBTAPYPV8AAQQQQAABBBBAAAFk+gClfwEqbfPptM21U8ECAggggAACCCCAAHIvkOkLbdMX7tK\/IJb2oQcggAACCCCAAAIIIIBU\/we7Nz1IP6mcXqw4vRgUEEAAAQQQQAABBBBAqid42o3tq09Ku4FUj2c1WEAAAQQQQAABBBBAADk94Ns2fZi+kDd9vLeCAAQQQAABBBBAAAHku0DSblrZPWDbvsC0\/XgDAggggAACCCCAAHIfkLQv8HQPcPUXsqYvnKYtdgQEEEAAAQQQQAABBJDpk9hpEOmbV6fdAMhiRUAAAQQQQAABBBBAuk\/S0yfEtguH1cere1MOQAABBBBAAAEEEEAAOT3g1RNmerFe2vNt+3uAAAIIIIAAAggggACybYKnfaiwbXPsbTc4AgQQQAABBBBAAAEEkO4JkQbu7QTZthjSSToggAACCCCAAAIIIN1Apjef7p5Q3ZscTH8BbPrCLyCAAAIIIIAAAggggKQd8O6Tyu4bzlQDrH6DSD2JBwQQQAABBBBAAAHkHiDdB7x7QqRvvl39BnPLTT0BAQQQQAABBBBAAPkOkO2\/v\/0GNNsXQwICCCCAAAIIIIAAAsj2TQaqJ3j6Ztjdi0MBAQQQQAABBBBAAAFke9sutFVP6O6T5q2bWwMCCCCAAAIIIIAAcs9JevpJ4OmfnwaYdsOitA95AAEEEEAAAQQQQAC5H0ja86ff1LMbSPomGoAAAggggAACCCCAAFI94Ns2Ups+ie8eD4sVAQEEEEAAAQQQQAABpPb50zd7Tnv+6jc0QAABBBBAAAEEEEAASR\/g6gtpaRfaui\/U2rwaEEAAAQQQQAABBJB0IN0AqwcsbXHm9pt0AgIIIIAAAggggAACyOkD3L0YbhpQ9Ul59xtK2k1RAQEEEEAAAQQQQAABRNoYIBIgEiASIBIgEiASIBIgEiASIJIAkQCRAJEAkQCRAJEAkQCRAJEAkQSIBIgEiASIBIgU3g\/zWewzqA7MxgAAAABJRU5ErkJggg==","status":"","timbre":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><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=\"MONTERREY, NUEVO LEON\" Moneda=\"MXN\" TipoCambio=\"1.0000\" certificado=\"MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEFBQAwggFvMRgwFgYDVQQDDA9BLkMuIGRlIHBydWViYXMxLzAtBgNVBAoMJlNlcnZpY2lvIGRlIEFkbWluaXN0cmFjacOzbiBUcmlidXRhcmlhMTgwNgYDVQQLDC9BZG1pbmlzdHJhY2nDs24gZGUgU2VndXJpZGFkIGRlIGxhIEluZm9ybWFjacOzbjEpMCcGCSqGSIb3DQEJARYaYXNpc25ldEBwcnVlYmFzLnNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxEjAQBgNVBAcMCUNveW9hY8OhbjEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTIwMAYJKoZIhvcNAQkCDCNSZXNwb25zYWJsZTogSMOpY3RvciBPcm5lbGFzIEFyY2lnYTAeFw0xMjA3MjcxNzAyMDBaFw0xNjA3MjcxNzAyMDBaMIHbMSkwJwYDVQQDEyBBQ0NFTSBTRVJWSUNJT1MgRU1QUkVTQVJJQUxFUyBTQzEpMCcGA1UEKRMgQUNDRU0gU0VSVklDSU9TIEVNUFJFU0FSSUFMRVMgU0MxKTAnBgNVBAoTIEFDQ0VNIFNFUlZJQ0lPUyBFTVBSRVNBUklBTEVTIFNDMSUwIwYDVQQtExxBQUEwMTAxMDFBQUEgLyBIRUdUNzYxMDAzNFMyMR4wHAYDVQQFExUgLyBIRUdUNzYxMDAzTURGUk5OMDkxETAPBgNVBAsTCFVuaWRhZCAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2TTQSPONBOVxpXv9wLYo8jezBrb34i\/tLx8jGdtyy27BcesOav2c1NS\/Gdv10u9SkWtwdy34uRAVe7H0a3VMRLHAkvp2qMCHaZc4T8k47Jtb9wrOEh\/XFS8LgT4y5OQYo6civfXXdlvxWU\/gdM\/e6I2lg6FGorP8H4GPAJ\/qCNwIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQUFAAOCAQEATxMecTpMbdhSHo6KVUg4QVF4Op2IBhiMaOrtrXBdJgzGotUFcJgdBCMjtTZXSlq1S4DG1jr8p4NzQlzxsdTxaB8nSKJ4KEMgIT7E62xRUj15jI49qFz7f2uMttZLNThipunsN\/NF1XtvESMTDwQFvas\/Ugig6qwEfSZc0MDxMpKLEkEePmQwtZD+zXFSMVa6hmOu4M+FzGiRXbj4YJXn9Myjd8xbL\/c+9UIcrYoZskxDvMxc6\/6M3rNNDY3OFhBK+V\/sPMzWWGt8S1yjmtPfXgFs1t65AZ2hcTwTAuHrKwDatJ1ZPfa482ZBROAAX1waz7WwXp0gso7sDCm2\/yUVww==\" descuento=\"100.0000\" fecha=\"2015-07-08T11:11:33\" folio=\"100\" formaDePago=\"PAGO EN UNA SOLA EXHIBICION\" metodoDePago=\"EFECTIVO\" noCertificado=\"20001000000100005867\" sello=\"OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O\/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV\/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs\/jM=\" serie=\"A\" subTotal=\"1100.00\" tipoDeComprobante=\"ingreso\" total=\"1160.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 \">\n \n <cfdi:Emisor nombre=\"ACCEM SERVICIOS EMPRESARIALES SC\" rfc=\"AAA010101AAA\">\n <cfdi:DomicilioFiscal calle=\"JUAREZ\" codigoPostal=\"01234\" colonia=\"CENTRO\" estado=\"NUEVO LEON\" localidad=\"MONTERREY\" municipio=\"MONTERREY\" noExterior=\"100\" pais=\"MEXICO\"\/>\n <cfdi:ExpedidoEn calle=\"HIDALGO\" codigoPostal=\"64610\" colonia=\"LAS CUMBRES 3 SECTOR\" estado=\"NUEVO LEON\" localidad=\"MONTERREY\" municipio=\"MONTERREY\" noExterior=\"240\" pais=\"MEXICO\"\/>\n <cfdi:RegimenFiscal Regimen=\"MI REGIMEN\"\/>\n <\/cfdi:Emisor>\n \n <cfdi:Receptor nombre=\"MIGUEL ANGEL SOSA HERNANDEZ\" rfc=\"SOHM7509289MA\">\n <cfdi:Domicilio calle=\"PERIFERICO\" codigoPostal=\"23010\" colonia=\"SAN ANGEL\" estado=\"DISTRITO FEDERAL\" localidad=\"CIUDAD DE M\u00c9XICO\" municipio=\"ALVARO OBREGON\" noExterior=\"1024\" noInterior=\"B\" pais=\"MEXICO\"\/>\n <\/cfdi:Receptor>\n \n <cfdi:Conceptos>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 1\" importe=\"100.00\" noIdentificacion=\"COD1\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 2\" importe=\"100.00\" noIdentificacion=\"COD2\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 3\" importe=\"100.00\" noIdentificacion=\"COD3\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 4\" importe=\"100.00\" noIdentificacion=\"COD4\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 5\" importe=\"100.00\" noIdentificacion=\"COD5\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 6\" importe=\"100.00\" noIdentificacion=\"COD6\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 7\" importe=\"100.00\" noIdentificacion=\"COD7\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 8\" importe=\"100.00\" noIdentificacion=\"COD8\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 9\" importe=\"100.00\" noIdentificacion=\"COD9\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n <cfdi:Concepto cantidad=\"1\" descripcion=\"PRODUCTO PRUEBA 10\" importe=\"100.00\" noIdentificacion=\"COD10\" unidad=\"PIEZA\" valorUnitario=\"100.00\"\/>\n \n <\/cfdi:Conceptos>\n \n <cfdi:Impuestos totalImpuestosRetenidos=\"0.0000\" totalImpuestosTrasladados=\"160.0000\">\n \n \n <cfdi:Traslados>\n <cfdi:Traslado importe=\"160.00\" impuesto=\"IVA\" tasa=\"16\"\/> \n <\/cfdi:Traslados> \n <\/cfdi:Impuestos>\n \n \n <cfdi:Complemento><tfd:TimbreFiscalDigital FechaTimbrado=\"2015-07-08T11:14:49\" UUID=\"89BC6108-B3B6-4C85-A9DF-645B6F61C8FE\" noCertificadoSAT=\"20001000000100005761\" selloCFD=\"OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O\/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV\/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs\/jM=\" selloSAT=\"Utu511cMyXPLm+kwiydv8xSdUYdictmkuu6SNzseo79npmz\/1FxWmIUjw2hG+TtUbPF5R2WbsF35XWg\/T9AUsvxY+s5nCOPGmbEgX27tRP2R9n442rwmxehL9jKmlX3F06rw+elYTI0Cbv60d0\/cBJLFD31ACKoBXb5H7RuvLys=\" version=\"1.0\" xmlns:tfd=\"http:\/\/www.sat.gob.mx\/TimbreFiscalDigital\" xsi:schemaLocation=\"http:\/\/www.sat.gob.mx\/TimbreFiscalDigital http:\/\/www.sat.gob.mx\/TimbreFiscalDigital\/TimbreFiscalDigital.xsd\"\/><\/cfdi:Complemento><\/cfdi:Comprobante>"}}
[cancelada]=NO
[saldo]=19
[uuid]=89BC6108-B3B6-4C85-A9DF-645B6F61C8FE
[servidor]=1
[ejecucion]=298.105
[representacion_impresa_cadena]=||1.0|89BC6108-B3B6-4C85-A9DF-645B6F61C8FE|2015-07-08T11:14:49|OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs/jM=|20001000000100005761||
[representacion_impresa_certificado_no]=20001000000100005867
[representacion_impresa_fecha_timbrado]=2015-07-08T11:14:49
[representacion_impresa_sello]=OFwgie3dzs22tzTL42v1sxhNBRCnuXZDtOGU+gCxXuXhF5d2LZDdLNnxm7O/TlpbohSRtcoD5FhoM9AW6P0Cv+CIx1rsNT6+DRcB8Me9QyXjIJPhGs0GV/JV5K6KGJdrZDHC+e9v4iJsIk9lT8WupJUv8KsJ0JdeOiq6cdLs/jM=
[representacion_impresa_selloSAT]=Utu511cMyXPLm+kwiydv8xSdUYdictmkuu6SNzseo79npmz/1FxWmIUjw2hG+TtUbPF5R2WbsF35XWg/T9AUsvxY+s5nCOPGmbEgX27tRP2R9n442rwmxehL9jKmlX3F06rw+elYTI0Cbv60d0/cBJLFD31ACKoBXb5H7RuvLys=
[representacion_impresa_certificadoSAT]=20001000000100005761
[archivo_png]=timbrados/cfdi_ejemplo_factura.png
[archivo_xml]=timbrados/cfdi_ejemplo_factura.xml
EL KIT TE REGRESA UN ARREGLO CON LOS SIGUIENTES REGISTROS
[cfdi]= la cadena del archivo XML timbrado
[png]= el codigo QR en BASE64
[idpac]=id de pac en multifacturas
[pac]=numero de PAC registrado en el SAT
[produccion]=si es un ejemplo = NO , si es un rfc real =SI
[codigo_mf_numero]=codigo de respuesta en multifacturas (LOS CODIGOS DE RESPUESTA ESTAN EN LA AYUDA DEL KIT DE DESARROLLO)
[mensaje_original_pac_json]=mensaje original que regresa el PAC
[cancelada]=si fue factura cancelada
[saldo]=saldo de rfc en multifacturas
[uuid]=UUID de la factura timbrada (folio fiscal SAT)
[servidor]=servidor de multifacturas
[ejecucion]=tiempo de ejecucion del timbrado
[representacion_impresa_cadena]=cadena original SAT
[representacion_impresa_certificado_no]= no. certificado SAT
[representacion_impresa_fecha_timbrado]=fecha timbrado SAT
[representacion_impresa_sello]=sello de tus CSD
[representacion_impresa_selloSAT]=sello certificados del PAC
[representacion_impresa_certificadoSAT]=certificado SAT
[archivo_png]=ruta de archivo .png de codigo QR
[archivo_xml]=ruta de xml timbrado y sellado por el SAT
Como ves es muy facil timbrar una factura con php y el kit de multifacturas, en el kit tambien vienen ejemplos para timbrar la nomina, arrendamiento, hoteles, cheques, honorarios, escuelas, impuestos locales, tickets de compra
el kit de desarrollo cfdi lo puedes descargar desde la pagina http://multifacturas.com
Este comentario ha sido eliminado por un administrador del blog.
ResponderEliminar