PHP code example of kinedu / cfdi-xml

1. Go to this page and download the library: Download kinedu/cfdi-xml 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/ */

    

kinedu / cfdi-xml example snippets


use Kinedu\CfdiXML\CFDI;

$key = 'AAA010101AAA.key.pem';
$cer = 'AAA010101AAA.cer.pem';

$cfdi = new CFDI([
    'Serie' => 'A',
    'Folio' => 'A0103',
    'Fecha' => '2018-02-01T10:00:00',
    'FormaPago' => '01',
    'NoCertificado' => '3000100000300023708',
    'SubTotal' => '4741.38',
    'Moneda' => 'MXN',
    'TipoCambio' => '1',
    'Total' => '5500.00',
    'TipoDeComprobante' => 'I',
    'MetodoPago' => 'PUE',
    'LugarExpedicion' => '64000',
], $key, $cer);

use Kinedu\CfdiXML\CFDI;

$key = file_get_contents('AAA010101AAA.key.pem');
$cer = file_get_contents('AAA010101AAA.cer.pem');

$cfdi = new CFDI([
    'Serie' => 'A',
    'Folio' => 'A0103',
    'Fecha' => '2018-02-01T10:00:00',
    'FormaPago' => '01',
    'NoCertificado' => '3000100000300023708',
    'SubTotal' => '4741.38',
    'Moneda' => 'MXN',
    'TipoCambio' => '1',
    'Total' => '5500.00',
    'TipoDeComprobante' => 'I',
    'MetodoPago' => 'PUE',
    'LugarExpedicion' => '64000',
], $key, $cer);

$cfdi->getXML();

use Kinedu\CfdiXML\CFDI;

$key = 'AAA010101AAA.key.pem';
$cer = 'AAA010101AAA.cer.pem';

$cfdi = new CFDI([
    'Serie' => 'A',
    'Folio' => 'A0103',
    'Fecha' => '2018-02-01T10:00:00',
    'FormaPago' => '01',
    'NoCertificado' => '3000100000300023708',
    'SubTotal' => '4741.38',
    'Moneda' => 'MXN',
    'TipoCambio' => '1',
    'Total' => '5500.00',
    'TipoDeComprobante' => 'I',
    'MetodoPago' => 'PUE',
    'LugarExpedicion' => '64000',
], $key, $cer);

$cfdi->save('./A0103.xml');

use Kinedu\CfdiXML\CFDI;
use Kinedu\CfdiXML\Node\Relacionado;

$cfdi = new CFDI(...);

$cfdi->add(new Relacionado([
    'UUID' => '5FB2822E-396D-4725-8521-CDC4BDD20CCF',
], [
    'TipoRelacion' => '01',
]));

use Kinedu\CfdiXML\CFDI;
use Kinedu\CfdiXML\Node\Emisor;

$cfdi = new CFDI(...);

$cfdi->add(new Emisor([
    'Rfc' => 'XAXX010101000',
    'Nombre' => 'John Doe',
    'RegimenFiscal' => '601',
]));

use Kinedu\CfdiXML\CFDI;
use Kinedu\CfdiXML\Node\Receptor;

$cfdi = new CFDI(...);

$cfdi->add(new Receptor([
    'Rfc' => 'XEXX010101000',
    'Nombre' => 'John Doe',
    'ResidenciaFiscal' => 'USA',
    'NumRegIdTrib' => '121585958',
    'UsoCFDI' => 'G03',
]));

use Kinedu\CfdiXML\CFDI;
use Kinedu\CFDI\Node\Impuesto\Traslado;

$cfdi = new CFDI([...]);

$cfdi->add(new Traslado([
    'Impuesto' => '002',
    'TipoFactor' => 'Tasa',
    'TasaOCuota' => '0.160000',
    'Importe' => '4500',
], [], [
    'TotalImpuestosTrasladados' => '4500',
]));

use Kinedu\CfdiXML\CFDI;
use Kinedu\CfdiXML\Node\Concepto;
use Kinedu\CFDI\Node\Impuesto\Traslado;

$cfdi = new CFDI([...]);

$concepto = new Concepto([...]);

$concepto->add(new Traslado([
    'Base' => '4500',
    'Impuesto' => '002',
    'TipoFactor' => 'Tasa',
    'TasaOCuota' => '0.160000',
    'Importe' => '720',
]));

use Kinedu\CfdiXML\CFDI;
use Kinedu\CFDI\Node\Impuesto\Retencion;

$cfdi = new CFDI([...]);

$cfdi->add(new Retencion([
    'Impuesto' => '002',
    'Importe' => '4500',
], [], [
    'TotalImpuestosRetenidos' => '4500',
]));

use Kinedu\CfdiXML\CFDI;
use Kinedu\CfdiXML\Node\Concepto;
use Kinedu\CFDI\Node\Impuesto\Retencion;

$cfdi = new CFDI([...]);

$concepto = new Concepto([...]);

$concepto->add(new Retencion([
    'Base' => '4500',
    'Impuesto' => '003',
    'TipoFactor' => 'Tasa',
    'TasaOCuota' => '0.530000',
    'Importe' => '2385',
]));

use Kinedu\CfdiXML\CFDI;
use Kinedu\CfdiXML\Node\Concepto;

$cfdi = new CFDI(...);

$cfdi->add(new Concepto([
    'ClaveProdServ' => '10317331',
    'NoIdentificacion' => 'UT421511',
    'Cantidad' => '24',
    'ClaveUnidad' => 'H87',
    'Unidad' => 'Pieza',
    'Descripcion' => 'Arreglo de 24 tulipanes rosadas recién cortados',
    'ValorUnitario' => '56.00',
    'Importe' => '1344.00',
    'Descuento' => '10.00',
]));

use Kinedu\CfdiXML\CFDI;
use Kinedu\CfdiXML\Node\Parte;
use Kinedu\CfdiXML\Node\Concepto;

$cfdi = new CFDI(...);

$concepto = new Concepto([
    'ClaveProdServ' => '27113201',
    'NoIdentificacion' => 'UT421456',
    'Cantidad' => '1',
    'ClaveUnidad' => 'KT',
    'Unidad' => 'Kit',
    'Descripcion' => 'Kit de destornillador',
    'ValorUnitario' => '217.30',
    'Importe' => '217.30',
    'Descuento' => '0.00',
]);

$tornillo = new Parte([
    'ClaveProdServ' => '31161500',
    'NoIdentificacion' => 'UT367898',
    'Cantidad' => '34',
    'ClaveUnidad' => 'H87',
    'Unidad' => 'Pieza',
    'Descripcion' => 'Tornillo',
    'ValorUnitario' => '00.20',
    'Importe' => '6.80',
]);

$tornilloPerno = new Parte([
    'ClaveProdServ' => '31161501',
    'NoIdentificacion' => 'UT367899',
    'Cantidad' => '14',
    'ClaveUnidad' => 'H87',
    'Unidad' => 'Pieza',
    'Descripcion' => 'Tornillo de Perno',
    'ValorUnitario' => '00.75',
    'Importe' => '10.50',
]);

$destornillador = new Parte([
    'ClaveProdServ' => '27111701',
    'NoIdentificacion' => 'UT367900',
    'Cantidad' => '2',
    'ClaveUnidad' => 'H87',
    'Unidad' => 'Pieza',
    'Descripcion' => 'Destornillador',
    'ValorUnitario' => '100.00',
    'Importe' => '200.00',
]);

$concepto->add($tornillo);
$concepto->add($tornilloPerno);
$concepto->add($destornillador);

$cfdi->add($concepto);

use Kinedu\CfdiXML\CFDI;
use Kinedu\CfdiXML\Node\Concepto;
use Kinedu\CfdiXML\Node\InformacionAduanera;

$cfdi = new CFDI(...);

$concepto = new Concepto(...);

$concepto->add(new InformacionAduanera([
    'NumeroPedimento' => '00 00 0000 0000000',
]));

$cfdi->add($concepto);
xml
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd" Version="3.3" Serie="A" Folio="A0103" Fecha="2018-02-01T10:00:00" FormaPago="01" NoCertificado="3000100000300023708" SubTotal="4741.38" Moneda="MXN" TipoCambio="1" Total="5500.00" TipoDeComprobante="I" MetodoPago="PUE" LugarExpedicion="64000"/>
xml
<cfdi:Conceptos>
    <cfdi:Concepto>
        <cfdi:Impuestos>
            <cfdi:Traslados>
                <cfdi:Traslado Base="4500" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="720"/>
            </cfdi:Traslados>
        </cfdi:Impuestos>
    </cfdi:Concepto>
</cfdi:Conceptos>
xml
<cfdi:Conceptos>
    <cfdi:Concepto>
        <cfdi:Impuestos>
            <cfdi:Retenciones>
                <cfdi:Retencion Base="4500" Impuesto="003" TipoFactor="Tasa" TasaOCuota="0.530000" Importe="2385"/>
            </cfdi:Retenciones>
        </cfdi:Impuestos>
    </cfdi:Concepto>
</cfdi:Conceptos>
xml
<cfdi:Conceptos>
    <cfdi:Concepto ClaveProdServ="27113201" NoIdentificacion="UT421456" Cantidad="1" ClaveUnidad="KT" Unidad="Kit" Descripcion="Kit de destornillador" ValorUnitario="217.30" Importe="217.30" Descuento="0.00">
        <cfdi:Parte ClaveProdServ="31161500" NoIdentificacion="UT367898" Cantidad="34" ClaveUnidad="H87" Unidad="Pieza" Descripcion="Tornillo" ValorUnitario="00.20" Importe="6.80"/>
        <cfdi:Parte ClaveProdServ="31161501" NoIdentificacion="UT367899" Cantidad="14" ClaveUnidad="H87" Unidad="Pieza" Descripcion="Tornillo de Perno" ValorUnitario="00.75" Importe="10.50"/>
        <cfdi:Parte ClaveProdServ="27111701" NoIdentificacion="UT367900" Cantidad="2" ClaveUnidad="H87" Unidad="Pieza" Descripcion="Destornillador" ValorUnitario="100.00" Importe="200.00"/>
    </cfdi:Concepto>
</cfdi:Conceptos>
xml
<cfdi:Conceptos>
    <cfdi:Concepto ClaveProdServ="60121001" NoIdentificacion="UT421510" Cantidad="5.555555" ClaveUnidad="KGM" Unidad="Kilo" ValorUnitario="I">
        <cfdi:InformacionAduanera NumeroPedimento="00 00 0000 0000000"/>
    </cfdi:Concepto>
</cfdi:Conceptos>