Sub Main()
 
        'licencia para el RFC del demo de SAT
        CFDI.Licenciamiento.AgregaLicencia("ckW2u05Nn5vSmlxpwURi995TfVMStrXgpAVD028yQR0=") 
        'crea un nuevo comprobante CFDI
        Dim micomprobante As New CFDI.Comprobante
        With micomprobante
            .TruncarDecimales = True
            .TruncarDecimalesLongitud = 2
            .AgregaDatosEmisor("PPL961114GZ1", "PHARMA PLUS SA DE CV", _                               "AV. RIO MIXCOAC", "No.140", "", _
                               "ACACIAS", "03240", "BENITO JUAREZ", _
                               "MEXICO, D.F.", "", "Mexico", "")
 
            .AgregaDatosExpedidoEn("AV. UNIVERSIDAD", 1858, "", _                                   "OXTOPULCO", "03910", "", _
                                   "DISTRITO FEDERAL", "", "Mexico", "")
 
            .AgregaDatosReceptor("PEPJ8001019Q8", "JUAN PEREZ PEREZ", _                                 "AV UNIVERSIDAD", "16 EDF 3", _
                                 "DPTO 101", "COPILCO UNIVERSIDAD", _
                                 "04360", "COYOACAN", "DISTRITO FEDERAL", _
                                 "", "Mexico", "")
 
            .formaDePago = "PAGO EN UNA SOLA EXHIBICION"
            .fecha = New Date(2010, 3, 6, 20, 38, 12)
            .tipoDeComprobante = CFDI.ComprobanteTipoDeComprobante.ingreso
            .AgregaConcepto(1, "CAPSULAS", "", "VIBRAMICINA 100MG 10", 244)
            .AgregaConcepto(1, "BOTELLA", "", "CLORUTO 500M", 137.93)
            .AgregaConcepto(1, "TABLETAS", "", "SEDEPRON 250MG 10", 84.5)
            .AgregaImpuesto(CFDI.ComprobanteImpuestosTrasladoImpuesto.IVA, 0, 0)
            .AgregaImpuesto(CFDI.ComprobanteImpuestosTrasladoImpuesto.IVA, 16, 22.07)
            .subTotal = "488.50"
            .total = "488.50"
            .folio = 1
            .serie = ""
        End With
        'crea el motor usando los certificados del demo del SAT
        Dim mCFDI As New CFDI.MotorCFDI( _
                                        "D:\FE\Certif_PACyEmisor\emisor.cer", _
                                        "D:\FE\Certif_PACyEmisor\emisor.key", _
                                        "a0123456789", "D:\FE\Test\CFDI")
 
        'agrega el comprobante al motor
        mCFDI.Comprobantes.Add(micomprobante)
 
        'revisa el resultado del procesamiento de comprobantes
        Dim resultado As CFDI.ResultadoProceso = mCFDI.ProcesarComprobantes(True, False)
        If resultado.Errores Then
            For Each c1 As CFDI.Comprobante In resultado.ComprobantesNoGenerados
                Console.WriteLine(c1.ErrorGeneracion)
            Next
            Console.ReadLine()
        Else
            Process.Start(mCFDI.DirectorioDestino)
            Console.WriteLine("termino")        End If
 
End Sub