jueves, 29 de noviembre de 2018

Facturacion electronica SAT Ejemplo crear xml cfdi Honorarios en php


Facturacion electronica SAT Ejemplo crear xml cfdi Impuestos locales en php


// Se especifica la zona horaria
date_default_timezone_set('America/Mexico_City');

// Se incluye el SDK
require_once '../../sdk2.php';

$datos['PAC']['usuario'] = 'DEMO700101XXX';
$datos['PAC']['pass'] = 'DEMO700101XXX';
$datos['PAC']['produccion'] = 'NO'; //   [SI|NO]
$datos['conf']['cer'] = '../../certificados/lan7008173r5.cer.pem';
$datos['conf']['key'] = '../../certificados/lan7008173r5.key.pem';
$datos['conf']['pass'] = '12345678a';

//Version cfdi 3.3
$datos['version_cfdi'] = '3.3';
//RUTA DONDE ALMACENARA EL CFDI
$datos['cfdi']='../../timbrados/ejemplo_honorarios.xml';
// OPCIONAL GUARDAR EL XML GENERADO ANTES DE TIMBRARLO
$datos['xml_debug']='../../timbrados/debug_ejemplo_honorarios.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\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']['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'] = 'I'; 
$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['factura']['NumCtaPago'] = '0234'; //opcional; 4 DIGITOS pero obligatorio en transferencias y cheques

$datos['factura']['RegimenFiscal'] = '601';

$datos['emisor']['rfc'] = 'LAN7008173R5'; //RFC DE PRUEBA 
$datos['emisor']['nombre'] = 'ACCEM SERVICIOS EMPRESARIALES SC';  // EMPRESA DE PRUEBA

// 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';
$datos['receptor']['UsoCFDI'] = 'P01';

//AGREGAR 10 CONCEPTOS DE PRUEBA
$concepto['ClaveProdServ'] = '84111506';
    $concepto['cantidad'] = '1';
    $concepto['unidad'] = 'NO APLICA';
    $concepto['ClaveUnidad'] = "ACT"; //ID, REF, CODIGO O SKU DEL PRODUCTO
    $concepto['descripcion'] = "SERVICIO DE MANTENIMIENTO";
    $concepto['valorunitario'] = '1000.00'; // SIN IVA
    $concepto['importe'] = '1000.00';

    $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['conceptos'][0]['Impuestos']['Retenciones'][0]['Impuesto'] = '002';
$datos['conceptos'][0]['Impuestos']['Retenciones'][0]['Importe'] = '160.00'; // iva de los productos facturados
$datos['conceptos'][0]['Impuestos']['Retenciones'][0]['Base'] = '1000.00';
$datos['conceptos'][0]['Impuestos']['Retenciones'][0]['TasaOCuota'] = '0.160000';
$datos['conceptos'][0]['Impuestos']['Retenciones'][0]['TipoFactor'] = 'Tasa';

$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['Impuesto'] = '001';
$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['Importe'] = '160.00'; // iva de los productos facturados
$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['Base'] = '1000.00';
$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['TasaOCuota'] = '0.160000';
$datos['conceptos'][0]['Impuestos']['Retenciones'][1]['TipoFactor'] = 'Tasa';

$datos['impuestos']['TotalImpuestosTrasladados']='160.00';
$datos['impuestos']['TotalImpuestosRetenidos']='320.00';
$translado1['Impuesto'] = '002';
$translado1['TasaOCuota'] = '0.160000';
$translado1['Importe'] = '160.00'; // iva de los productos facturados
$translado1['TipoFactor'] = 'Tasa';
$datos['impuestos']['translados'][0] = $translado1;

$retenido['impuesto'] = '002';
$retenido['importe'] = '160.00'; // iva de los productos facturados
$datos['impuestos']['retenciones'][0] = $retenido;

$retenido2['impuesto'] = '001';
$retenido2['importe'] = '160.00'; // iva de los productos facturados
$datos['impuestos']['retenciones'][1] = $retenido2;

$datos['factura']['subtotal'] = 1000.00; // sin impuestos
$datos['factura']['total'] = 840.00; // total incluyendo impuestos

// Se ejecuta el SDK
$res = mf_genera_cfdi($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>";
}

EL KIT DE DESARROLLO TE REGRESA


  • EL CFDI XML EN FORMATO TEXTO
  • EL ARCHIVO XML DEL CFDI
  • EL PNG QR DEL CODIGO BIDIMENCIONAL
  • EL ARCHIVO PNG DEL CODIGO QR
  • EL PAC CON EL QUE FUE TIMBRADO
  • EL UUID
  • LA CADENA ORIGINAL
  • EL NO DE CERTIFACADO DEL SAT
  • EL SELLO DEL SAT
  • ENTRE OTROS DATOS 

MAS EJEMPLOS

  • Ejemplo crear xml cfdi recibos de pagos sat
  • Ejemplo crear xml cfdi recibos de nomina sat
  • Ejemplo crear xml cfdi recibos de honorarios sat
  • Ejemplo crear xml cfdi notas de credito sat
  • Ejemplo crear xml cfdi comercio exterior sat
  • Ejemplo crear xml cfdi pago en parcialidades sat
  • Ejemplo crear xml cfdi impuestos locales sat
  • Ejemplo crear xml cfdi factura de hoteles sat
  • Ejemplo crear xml cfdi divisas sat
  • Ejemplo crear xml cfdi aerolineas sat
  • ETC ETC



Mas informacion y ejemplos de facturacion electronica en http://multifacturas.com

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...