EJEMPLOS

        CFDIAccion a = new CFDIAccion();

        String usuario = "demo@empresa.com.mx";
        String pass = "empresa";

        // Obtener datos
        Map resultado = a.obtenerDatos(usuario, pass, "4AE9A918-63E4-4F16-9EDC-E43370395A29", 1761L, "FACTURA");
        System.out.println("Obtener datos: " + resultado);
        CFDI[] comprobantes = (CFDI[]) resultado.get("RESULTADO");
        for (CFDI c : comprobantes) {
            InputStream is = c.getXml().getInputStream();
            OutputStream os = System.out;
            IOUtils.copy(is, os);
        }

        //cancelar CFDI
        SolicitudCancelacion cancela = new SolicitudCancelacion();
        cancela.setFolio(1761L);
        cancela.setSerie("FACTURA");
        cancela.setUuid("4AE9A918-63E4-4F16-9EDC-E43370395A29");
        resultado = a.cancelar(usuario, pass, Arrays.asList(cancela));
        System.out.println("Cancelado: " + resultado);
        ResultadoCancelacion[] cancelados = (ResultadoCancelacion[]) resultado.get("RESULTADO");
        for (ResultadoCancelacion r : cancelados) {
            System.out.println(r.getMensaje());
        }

        // importar
        try {
            String temp = File.createTempFile("tmp", null).getPath();
            resultado = a.importar(usuario, pass, temp, false);
            System.out.println("Importar: " + resultado);
            ResultadoCreacion[] importados = (ResultadoCreacion[]) resultado.get("RESULTADO");
            for (ResultadoCreacion r : importados) {
                if (r.getUuid() != null) {
                    System.out.println("UUID: " + r.getUuid());
                    System.out.println("Folio: " + r.getFolio());
                    System.out.println("Serie: " + r.getSerie());
                    System.out.println("Estatus: " + r.getEstatus());
                    System.out.println("Email: " + r.getEmail());
                    System.out.println("Mensaje: " + r.getMensaje());
                    System.out.println("------------------------------------------------");
                } else {
                    System.out.println(r.getMensaje());
                }
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }

        // generar PDF
        try {
            FileOutputStream fos = new FileOutputStream(new File("/tmp/doc.pdf"));
            a.obtenerPDF(usuario, pass, 1, "4AE9A918-63E4-4F16-9EDC-E43370395A29", 1761L, "FACTURA", fos);
        } catch (IOException ex) {
            ex.printStackTrace();
        }