La versión de su navegador no está debidamente actualizada. Le recomendamos actualizarla a la versión más reciente.
Factura nomina con todos los nodos

Ejemplo Factura para Donatarias PHP

En este ejemplo podemos visualizar el código fuente, el xml, mensajes generados

Librería facturación electrónica en PHP

Este código fuente esta utilizando nuestro KIT de desarrollo el cual genera, valida, sella, timbra y almacena el CFDi.

Compatible con PHP 5.3 y superior; probado en Windows y Linux 32 y 64bits

Errores comunes

Existen varios errores comunes y nuestro KIT valida y/o corrige la mayoría de ellos de modo automático

  • Validación de variables
  • Error al generar el sello
  • Errores por distintos juegos de caracteres
  • Error al almacenar el XML distinto a UTF-8
  • Consumo de timbres por errores no detectados

Ve el apartado de solución de problemas para ver las soluciones a los problemas más comunes

Código Fuente

<?php

//error_reporting(~(E_WARNING));
error_reporting(0);

date_default_timezone_set('America/Mexico_City');

require_once '../../sdk2.php';

$datos['complemento'] = 'nomina12';

$datos['version_cfdi'] = '3.3';
$datos['cfdi']='../../timbrados/ejemplo_cfdi33_nomina12.xml';
$datos['xml_debug']='../../timbrados/debug_ejemplo_cfdi33_nomina12.xml';

$datos['PAC']['usuario'] = 'DEMO700101XXX';
$datos['PAC']['pass'] = 'DEMO700101XXX';
$datos['PAC']['produccion'] = 'NO';

$datos['conf']['cer'] = '../../certificados/EKU9003173C9.cer.pem';
$datos['conf']['key'] = '../../certificados/EKU9003173C9.key.pem';
$datos['conf']['pass'] = '12345678a';

$datos['factura']['condicionesDePago'] = 'CONDICIONES';
$datos['factura']['descuento'] = '0.00';
$datos['factura']['fecha_expedicion'] = date('Y-m-d\TH:i:s', time() - 120);
$datos['factura']['folio'] = '100';
$datos['factura']['forma_pago'] = '99';
$datos['factura']['LugarExpedicion'] = '45079';
$datos['factura']['metodo_pago'] = 'PUE';
$datos['factura']['moneda'] = 'MXN';
$datos['factura']['serie'] = 'A';
$datos['factura']['subtotal'] = '1000.00';
$datos['factura']['tipocambio'] = '1';
$datos['factura']['tipocomprobante'] = 'N';
$datos['factura']['total'] = '1000.00';

/*$datos['CfdisRelacionados']['TipoRelacion'] = '01';
$datos['CfdisRelacionados']['UUID'][0]='A39DA66B-52CA-49E3-879B-5C05185B0EF7';*/

//$datos['factura']['Confirmacion'] = '0234';
$datos['factura']['RegimenFiscal'] = '601';

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

$datos['receptor']['rfc'] = 'SOHM7509289MA';
$datos['receptor']['nombre'] = 'Publico en General';
//$datos['receptor']['ResidenciaFiscal'] = 'MEX';
//$datos['receptor']['NumRegIdTrib'] = '1234567890';
$datos['receptor']['UsoCFDI'] = 'G01';

$datos['conceptos'][0]['cantidad'] = '1';
$datos['conceptos'][0]['descripcion'] = "Pago de nómina";
$datos['conceptos'][0]['valorunitario'] = '100.00';
$datos['conceptos'][0]['importe'] = '100.00';
$datos['conceptos'][0]['ClaveUnidad'] = 'ACT';
$datos['conceptos'][0]['ClaveProdServ'] = '84111505';

 

// Obligatorios
$datos['nomina12']['TipoNomina'] = 'O';
$datos['nomina12']['FechaPago'] = '2021-01-31';
$datos['nomina12']['FechaInicialPago'] = '2021-02-16';
$datos['nomina12']['FechaFinalPago'] = '2020-01-31';
$datos['nomina12']['NumDiasPagados'] = '15';
// Opcionales
$datos['nomina12']['TotalPercepciones'] = '10500.05';
$datos['nomina12']['TotalDeducciones'] = '1234.09';
$datos['nomina12']['TotalOtrosPagos'] = '0.0';

// SUB NODOS OPCIONALES DE NOMINA [Emisor, Percepciones, Deducciones, OtrosPagos, Incapacidades]
// Nodo Emisor, OPCIONALES
$datos['nomina12']['Emisor']['RegistroPatronal'] = '5525665412';
$datos['nomina12']['Emisor']['RfcPatronOrigen'] = 'AAA010101AAA';

// SUB NODOS OBLIGATORIOS DE NOMINA [Receptor]
// Obligatorios de Receptor
$datos['nomina12']['Receptor']['ClaveEntFed'] = 'JAL';
$datos['nomina12']['Receptor']['Curp'] = 'CACF880922HJCMSR03';
$datos['nomina12']['Receptor']['NumEmpleado'] = '060';
$datos['nomina12']['Receptor']['PeriodicidadPago'] = '04';
$datos['nomina12']['Receptor']['TipoContrato'] = '01';
$datos['nomina12']['Receptor']['TipoRegimen'] = '02';

// Opcionales de Receptor
$datos['nomina12']['Receptor']['Antiguedad'] = 'P21W';
$datos['nomina12']['Receptor']['Banco'] = '021';
$datos['nomina12']['Receptor']['CuentaBancaria'] = '1234567890';
$datos['nomina12']['Receptor']['FechaInicioRelLaboral'] = '2016-06-01';
$datos['nomina12']['Receptor']['NumSeguridadSocial'] = '04078873454';
$datos['nomina12']['Receptor']['Puesto'] = 'Desarrollador';
$datos['nomina12']['Receptor']['RiesgoPuesto'] = '2';
$datos['nomina12']['Receptor']['SalarioBaseCotApor'] = '435.50';
$datos['nomina12']['Receptor']['SalarioDiarioIntegrado'] = '435.50';

// NODO PERCEPCIONES
// Totales Obligatorios
$datos['nomina12']['Percepciones']['TotalGravado'] = '10500.05';
$datos['nomina12']['Percepciones']['TotalExento'] = '0.00';

// Totales Opcionales
$datos['nomina12']['Percepciones']['TotalSueldos'] = '10500.05';

// Agregar Percepciones (Todos obligatorios)
$datos['nomina12']['Percepciones'][0]['TipoPercepcion'] = '001';
$datos['nomina12']['Percepciones'][0]['Clave'] = '001';
$datos['nomina12']['Percepciones'][0]['Concepto'] = 'Sueldos, Salarios Rayas y Jornales';
$datos['nomina12']['Percepciones'][0]['ImporteGravado'] = '6250.05';
$datos['nomina12']['Percepciones'][0]['ImporteExento'] = '0.00';

$datos['nomina12']['Percepciones'][1]['TipoPercepcion'] = '049';
$datos['nomina12']['Percepciones'][1]['Clave'] = '014';
$datos['nomina12']['Percepciones'][1]['Concepto'] = 'Premios de asistencia';
$datos['nomina12']['Percepciones'][1]['ImporteGravado'] = '625.00';
$datos['nomina12']['Percepciones'][1]['ImporteExento'] = '0.00';

$datos['nomina12']['Percepciones'][2]['TipoPercepcion'] = '010';
$datos['nomina12']['Percepciones'][2]['Clave'] = '013';
$datos['nomina12']['Percepciones'][2]['Concepto'] = 'Premios por puntualidad';
$datos['nomina12']['Percepciones'][2]['ImporteGravado'] = '625.00';
$datos['nomina12']['Percepciones'][2]['ImporteExento'] = '0.00';

$datos['nomina12']['Percepciones'][3]['TipoPercepcion'] = '045';
$datos['nomina12']['Percepciones'][3]['Clave'] = '045';
$datos['nomina12']['Percepciones'][3]['Concepto'] = 'Premios por puntualidad';
$datos['nomina12']['Percepciones'][3]['ImporteGravado'] = '3000.00';
$datos['nomina12']['Percepciones'][3]['ImporteExento'] = '0.00';

// Acciones o Titulos en Percepciones (Todos obligatorios)
$datos['nomina12']['Percepciones'][3]['AccionesOTitulos']['ValorMercado'] = '1000.00';
$datos['nomina12']['Percepciones'][3]['AccionesOTitulos']['PrecioAlOtorgarse'] = '2000.00';

// Horas Extra
$datos['nomina12']['Percepciones'][4]['HorasExtra'][0]['Dias'] = 1;
$datos['nomina12']['Percepciones'][4]['HorasExtra'][0]['TipoHoras'] = 1;
$datos['nomina12']['Percepciones'][4]['HorasExtra'][0]['HorasExtra'] = 1;
$datos['nomina12']['Percepciones'][4]['HorasExtra'][0]['ImportePagado'] = 1;

// NODO DEDUCCIONES
$datos['nomina12']['Deducciones']['TotalOtrasDeducciones'] = '179.34'; // Opcional
$datos['nomina12']['Deducciones']['TotalImpuestosRetenidos'] = '1054.75'; // Opcional

$datos['nomina12']['Deducciones'][0]['TipoDeduccion'] = '002';
$datos['nomina12']['Deducciones'][0]['Clave'] = '001';
$datos['nomina12']['Deducciones'][0]['Concepto'] = 'ISR';
$datos['nomina12']['Deducciones'][0]['Importe'] = '1054.75';

$datos['nomina12']['Deducciones'][1]['TipoDeduccion'] = '001';
$datos['nomina12']['Deducciones'][1]['Clave'] = '012';
$datos['nomina12']['Deducciones'][1]['Concepto'] = 'Seguridad social';
$datos['nomina12']['Deducciones'][1]['Importe'] = '179.34';

$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, ENT_IGNORE);
$valor=str_replace('&lt;br/&gt;','<br/>',$valor);
echo "<b>[$variable]=</b>$valor<hr>";
}