A continuación se muestra un ejemplo de factura tasa cero exento y tasa 16 en PHP SDK
Ejemplo de factura tasa cero exento y tasa 16 en PHP SDK
<?php
// Se desactivan los mensajes de debug
error_reporting(~(E_WARNING|E_NOTICE));
//error_reporting(E_ALL);
//phpinfo();
// Se especifica la zona horaria
date_default_timezone_set('America/Mexico_City');
// Se incluye el SDK
require_once '../../sdk2.php';
// Se especifica la version de CFDi 4.0
$datos['version_cfdi'] = '4.0';
$datos['validacion_local'] = 'NO';
// Ruta del XML Timbrado
$datos['cfdi']='../../timbrados/cfdi_ejemplo_factura_tasa_cero_exento_16.xml';
// Ruta del XML de Debug
$datos['xml_debug']='../../timbrados/sin_timbrar_cfdi_ejemplo_factura_tasa_cero_exento_16.xml';
// Credenciales de Timbrado
$datos['PAC']['usuario'] = 'DEMO700101XXX';
$datos['PAC']['pass'] = 'DEMO700101XXX';
$datos['PAC']['produccion'] = 'NO';
// Rutas y clave de los CSD
$datos['conf']['cer'] = '../../certificados/EKU9003173C9.cer.pem';
$datos['conf']['key'] = '../../certificados/EKU9003173C9.key.pem';
$datos['conf']['pass'] = '12345678a';
// Datos de la Factura
$datos['factura']['condicionesDePago'] = 'CONTADO';
$datos['factura']['descuento'] = '0.00';
$datos['factura']['fecha_expedicion'] = date('Y-m-d\TH:i:s', time() - 120);
$datos['factura']['folio'] = '659155';
$datos['factura']['forma_pago'] = '04';
$datos['factura']['LugarExpedicion'] = '77712';
$datos['factura']['metodo_pago'] = 'PUE';
$datos['factura']['moneda'] = 'MXN';
$datos['factura']['serie'] = 'A';
$datos['factura']['subtotal'] = 286.21;
$datos['factura']['tipocambio'] = 1;
$datos['factura']['tipocomprobante'] = 'I';
$datos['factura']['total'] = 300.00;
$datos['factura']['Exportacion'] = '01';
// Datos del Emisor
$datos['emisor']['rfc'] = 'EKU9003173C9'; //RFC DE PRUEBA
$datos['emisor']['nombre'] = 'ESCUELA KEMPER URGATE'; // EMPRESA DE PRUEBA
$datos['emisor']['RegimenFiscal'] = '603';
// Datos del Receptor
$datos['receptor']['rfc'] = 'URE180429TM6';
$datos['receptor']['nombre'] = 'UNIVERSIDAD ROBOTICA ESPAÃOLA';
$datos['receptor']['UsoCFDI'] = 'G01';
//opcional
$datos['receptor']['DomicilioFiscalReceptor'] = '65000';
//$datos['receptor']['ResidenciaFiscal']= 'MEX';
//$datos['receptor']['NumRegIdTrib'] = 'B';
$datos['receptor']['RegimenFiscalReceptor'] = '601';
// Se agregan los conceptos
//PRODUCTO CON IMPUESTO EXENTO
$datos['conceptos'][0]['cantidad'] = 1.00;
$datos['conceptos'][0]['unidad'] = 'PIEZA';
$datos['conceptos'][0]['ID'] = "M7390Z";
$datos['conceptos'][0]['descripcion'] = "PRODUCTO EXENTO DE IMPUESTOS";
$datos['conceptos'][0]['valorunitario'] = 100.00;
$datos['conceptos'][0]['importe'] = 100.00;
$datos['conceptos'][0]['ClaveProdServ'] = '53102700';
$datos['conceptos'][0]['ClaveUnidad'] = 'H87';
$datos['conceptos'][0]['ObjetoImp'] = '02';
$datos['conceptos'][0]['Impuestos']['Traslados'][0]['Base'] = 100;
$datos['conceptos'][0]['Impuestos']['Traslados'][0]['Impuesto'] = '002';
$datos['conceptos'][0]['Impuestos']['Traslados'][0]['TipoFactor'] = 'Exento';
//PRODUCTO CON TASA CERO
$datos['conceptos'][1]['cantidad'] = 1.00;
$datos['conceptos'][1]['unidad'] = 'PIEZA';
$datos['conceptos'][1]['ID'] = "M7390Z";
$datos['conceptos'][1]['descripcion'] = "PRODUCTO CON TASA CERO";
$datos['conceptos'][1]['valorunitario'] = 100.00;
$datos['conceptos'][1]['importe'] = 100.00;
$datos['conceptos'][1]['ClaveProdServ'] = '53102700';
$datos['conceptos'][1]['ClaveUnidad'] = 'H87';
$datos['conceptos'][1]['ObjetoImp'] = '02';
$datos['conceptos'][1]['Impuestos']['Traslados'][0]['Base'] = 100.00;
$datos['conceptos'][1]['Impuestos']['Traslados'][0]['Impuesto'] = '002';
$datos['conceptos'][1]['Impuestos']['Traslados'][0]['TipoFactor'] = 'Tasa';
$datos['conceptos'][1]['Impuestos']['Traslados'][0]['TasaOCuota'] = '0.000000';
$datos['conceptos'][1]['Impuestos']['Traslados'][0]['Importe'] = 0.00;
//PRODUCTO CON TASA CERO
$datos['conceptos'][2]['cantidad'] = 1.00;
$datos['conceptos'][2]['unidad'] = 'PIEZA';
$datos['conceptos'][2]['ID'] = "M7390Z";
$datos['conceptos'][2]['descripcion'] = "producto con tasa 16";
$datos['conceptos'][2]['valorunitario'] = 86.21;
$datos['conceptos'][2]['importe'] = 86.21;
$datos['conceptos'][2]['ClaveProdServ'] = '53102700';
$datos['conceptos'][2]['ClaveUnidad'] = 'H87';
$datos['conceptos'][2]['ObjetoImp'] = '02';
$datos['conceptos'][2]['Impuestos']['Traslados'][0]['Base'] = 86.21;
$datos['conceptos'][2]['Impuestos']['Traslados'][0]['Impuesto'] = '002';
$datos['conceptos'][2]['Impuestos']['Traslados'][0]['TipoFactor'] = 'Tasa';
$datos['conceptos'][2]['Impuestos']['Traslados'][0]['TasaOCuota'] = '0.160000';
$datos['conceptos'][2]['Impuestos']['Traslados'][0]['Importe'] =13.79;
$datos['impuestos']['TotalImpuestosTrasladados'] = 13.79;
// Se agregan los Impuestos SOLO EL QUE TIENE TASA > 0
$datos['impuestos']['translados'][0]['Base'] = 86.21;
$datos['impuestos']['translados'][0]['impuesto'] = '002';
$datos['impuestos']['translados'][0]['tasa'] = '0.160000';
$datos['impuestos']['translados'][0]['importe'] = 13.79;
$datos['impuestos']['translados'][0]['TipoFactor'] = 'Tasa';
$datos['impuestos']['translados'][1]['Base'] = 100.00;
$datos['impuestos']['translados'][1]['impuesto'] = '002';
$datos['impuestos']['translados'][1]['tasa'] = '0.000000';
$datos['impuestos']['translados'][1]['importe'] = 0.00;
$datos['impuestos']['translados'][1]['TipoFactor'] = 'Tasa';
// Se ejecuta el SDK
$res = mf_genera_cfdi4($datos);
foreach ($res AS $variable => $valor) {
$valor = htmlentities($valor);
$valor = str_replace('<br/>', '<br/>', $valor);
echo "<b>[$variable]=</b>$valor<hr>";
}