Ir al contenido principal

EJEMPLO CREAR FACTURA CON PHP

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('&lt;br/&gt;','<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

Comentarios

Entradas populares de este blog

Ejemplo java para timbrar CFDI

Este ejemplo es para timbrar tus xml CFDI con el webservice de multifacturas.com Puedes descargar el codigo de la clase  TimbrarMultifacturas  desde http://multifacturas.com/sdk El codigo esta comentado. Ejemplo package multifacturas; import java.util.HashMap; import java.util.Random; public class DemoMultifacturas {     public static void main(String[] args) {         Random rn = new Random();         int pac = rn.nextInt(10) + 1;         System.out.println("SERVIDOR MULTIFACTURAS:"+ pac);          //TOMA UN SERVIDOR MULTIFACTURAS AL AZAR         / /CONTAMON CON 10 SERVIDORES PARA BALANCEAR LA CARGA DE TRABAJO Y ASEGURAR DE                 //TIMBRADO DE NUESTROS CLIENTES         String url_webservice ="http://pac"+pac+".multifacturas.com/pac/index.php?wsdl";           System.out.println("url servidor multifacturas:"+ url_webservice+"\n\n");         //RFC DE PRUEBA          String rfc="DEMO7