PHP code example of absabbath / factura-digital

1. Go to this page and download the library: Download absabbath/factura-digital library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

absabbath / factura-digital example snippets


$emisor = \FacturaDigital::emisor()
	->setRegimenFiscal('612')
	->setUser('demo33')
    ->setPassword('demo')
	->getData();

$creditos =  \FacturaDigital::creditos()
			
$receptor = FacturaDigital::receptor()
	->setRfc('NDI120326HF5')
	->setNombre('Novatech Digital SA de CV')
	//->setNumRegIdTrib('')
	->setUsoCFDI('G03')
	->setCalle('Palmas')
	->setNoExt('129')
	->setColonia('Centro')
	->setMunicipio('Guadalupe')
	->setEstado('Nuevo León')
	->setPais('Mexico')
	->setCodigoPostal('98000')
	->getData();

$concepto = \FacturaDigital::concepto()
            ->setClaveProdServ('01010101') // Agregar clave sat en catalogo productos
            ->setNoIdentificacion('1')  // Id interno
            ->setCantidad(5) // Cantidad a facturar
            ->setClaveUnidad('LTR') // Clave del SAT
            ->setUnidad('Litro') // Descripcion unidad
            ->setDescripcion('Descripcion/nombre del producto')
            ->setValorUnitario(30); // Costo por unidad

$impuestos = []; // Recolecta la informacion de todos los impuestos
$impuesto_iva = \FacturaDigital::conceptoImpuesto()
            ->setBase(30) // Base gravable
            ->setImpuesto('002')
            ->setTipoFactor('Tasa')
            ->setTasaOCuota(0.16000)
            ->setImporte(30 * 0.16000) // Base gravable X tasaocuota
            ->getData();

array_push($impuestos, $impuesto_iva);
$concepto->addTraslado($impuesto_iva);

$lista = \FacturaDigital::listaConceptos();
$lista->addConcepto($concepto->getData());

$totales = $lista->getTotalConceptos();
// retorna ['totalConceptos', 'totalImpuestos']

$factura = FacturaDigital::setSerie('F')
	->setFolio('71278') // Folio Interno
	->setFecha('AUTO')
	->setFormaPago('01')// Catalogo SAT
	->setCondicionesDePago('Pago de contado')
	->setMoneda('MXN')
	->setTipoCambio('1')
	->setTipoDeComprobante('I')
	->setMetodoPago('PUE')
	->setLugarExpedicion('67150') //C.P.
	->setLeyendaFolio('Factura')
	->setSubTotal($totales['totalConceptos'])
	//->setDescuento('30.00') // Descuento opcional
	->setTotal($totales['totalConceptos'] + $totales['totalImpuestos'] );

$impuestoFinal = \FacturaDigital::impuesto()
            ->setTraslados($impuestos);;

$factura->setEmisor($emisor);
$factura->setReceptor($receptor);
$factura->setConceptos($lista->getData());
$factura->setImpuestos($impuestoFinal->getData());

$factura_final = $factura->enviar();

$enviar = $factura->enviarCorreo($uuid, '[email protected]', 'tu mensaje adicional');

if ($enviar) {
	return "Factura enviada por correo";
} else {
	return "Errorsillo";
}

$cancela = $factura->cancelarCFDI('UUID');