A continuación se muestra un ejemplo de factura básica Nota Crédito PHP SDK
Ejemplo de factura básica Nota Crédito PHP SDK
<?php
// Se desactivan los mensajes de debug
error_reporting(~(E_WARNING|E_NOTICE));
// Se especifica la zona horaria
date_default_timezone_set('America/Mexico_City');
// Se incluye el SDK
require_once '../../sdk2.php';
//Version cfdi 4.0
$datos['version_cfdi'] = '4.0';
//RUTA DONDE ALMACENARA EL CFDI
$datos['cfdi']='../../timbrados/nota_credito.xml';
// OPCIONAL GUARDAR EL XML GENERADO ANTES DE TIMBRARLO
$datos['xml_debug']='../../timbrados/debug_nota_credito.xml';
$datos['validacion_local']="NO";
//OPCIONAL, UTILIZAR LA LIBRERIA PHP DE OPENSSL, DEFAULT SI
$datos['php_openssl']='SI';
//CONFIGURACION
$datos['PAC']['usuario'] = 'DEMO700101XXX';
$datos['PAC']['pass'] = 'DEMO700101XXX';
$datos['PAC']['produccion'] = 'NO'; // [SI|NO]
$datos['conf']['cer'] = '../../certificados/EKU9003173C9.cer.pem';
$datos['conf']['key'] = '../../certificados/EKU9003173C9.key.pem';
$datos['conf']['pass'] = '12345678a';
//FACTURA
$datos['factura']['serie'] = 'A'; //opcional
$datos['factura']['folio'] = '100'; //opcional
$datos['factura']['fecha_expedicion'] = date('Y-m-d\TH:i:s',time()-120);// Opcional "time()-120" para retrasar la hora 2 minutos para evitar falla de error en rango de fecha
$datos['factura']['Exportacion'] = '01';
$datos['factura']['metodo_pago'] = 'PUE'; // VER DOCUMENTACION :: EFECTIV0, CHEQUE, TARJETA DE CREDITO, TRANSFERENCIA BANCARIA, NO IDENTIFICADO
$datos['factura']['forma_pago'] = '01'; //PAGO EN UNA SOLA EXHIBICION, CREDITO 7 DIAS, CREDITO 15 DIAS, CREDITO 30 DIAS, ETC
$datos['factura']['tipocomprobante'] = 'E'; //ingreso, egreso
$datos['factura']['moneda'] = 'MXN'; // MXN USD EUR
$datos['factura']['tipocambio'] = '1'; // OPCIONAL (MXN = 1.00, OTRAS EJ: USD = 13.45; EUR = 16.86)
$datos['factura']['LugarExpedicion'] = '27000';
// Datos del Emisor
$datos['emisor']['rfc'] = 'EKU9003173C9'; //RFC DE PRUEBA
$datos['emisor']['nombre'] = 'ESCUELA KEMPER URGATE'; // EMPRESA DE PRUEBA
$datos['emisor']['RegimenFiscal'] = '601';
//DATOS DEL RECEPTOR
$datos['receptor']['rfc'] = 'XAXX010101000';
$datos['receptor']['nombre'] = 'Publico En General';
$datos['receptor']['UsoCFDI'] = 'S01';
$datos['receptor']['DomicilioFiscalReceptor'] = '27000';
$datos['receptor']['RegimenFiscalReceptor'] = '616';
//CONCEPTOS
$concepto['ClaveProdServ'] = '84111506';
$concepto['cantidad'] = '1';
$concepto['unidad'] = 'PIEZA';
$concepto['ClaveUnidad'] = "ACT"; //ID, REF, CODIGO O SKU DEL PRODUCTO
$concepto['descripcion'] = "PRODUCTO PRUEBA $i";
$concepto['valorunitario'] = '1000.00'; // SIN IVA
$concepto['importe'] = '1000.00';
$concepto['ObjetoImp'] = '02';
$datos['conceptos'][0] = $concepto;
$datos['conceptos'][0]['Impuestos']['Traslados'][0]['Base'] = '1000.00';
$datos['conceptos'][0]['Impuestos']['Traslados'][0]['Impuesto'] = '002';
$datos['conceptos'][0]['Impuestos']['Traslados'][0]['TasaOCuota'] = '0.160000';
$datos['conceptos'][0]['Impuestos']['Traslados'][0]['Importe'] = '160.00';
$datos['conceptos'][0]['Impuestos']['Traslados'][0]['TipoFactor'] = 'Tasa';
$datos['factura']['subtotal'] = '1000.00'; // sin impuestos
$datos['factura']['total'] = '1160.00'; // total incluyendo impuestos
$datos['impuestos']['TotalImpuestosTrasladados']='160.00';
$translado1['Impuesto'] = '002';
$translado1['Base'] = '1000.00';
$translado1['TasaOCuota'] = '0.160000';
$translado1['Importe'] = '160.00'; // iva de los productos facturados
$translado1['TipoFactor'] = 'Tasa';
$datos['impuestos']['translados'][0] = $translado1;
// Se ejecuta el SDK
$res = mf_genera_cfdi4($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>";
}
?>