Trump administration appeals ruling against $100K H-1B visa fee
An article from
Dive Brief Trump administration appeals ruling against $100K H-1B visa fee
The fee has caused concern among higher education experts that it would hamper colleges’ ability to recruit foreign scholars and instructors.
Published June 11, 2026
Natalie Schwartz Senior Editor

Getty Images Dive Brief:
- The Trump administration is appealing a federal judge’s order to strike down a $100,000 fee for new H-1B visas, a federal program that allows employers to hire highly skilled foreign workers on a temporary basis, per court documents filed Thursday.
- The notice of appeal comes just days after the federal judge ruled that the fee amounted to an unlawful tax that President Donald Trump didn’t have the authority to impose.
- When the ruling was handed down on Monday, a White House spokesperson said the Trump administration was “confident this order will be reversed on appeal.”
if (window.dfp_visibility === 'mobile' ) googletag.cmd.push(function() googletag.defineSlot( '/3618/highereddive/highereddivehybrid1', [[300, 250], 'fluid'], 'dfp-hybrid1-mobile' ).addService(googletag.pubads()); ); waitToLoadAds.push(function() googletag.cmd.push(function() if (window.dfp_visibility === 'mobile' ) window.onDvtagReady?.(() => googletag.display('dfp-hybrid1-mobile')); googletag.pubads().addEventListener('slotRenderEnded', function (event) var adUnitPath = '/3618/highereddive/highereddivehybrid1'; var onProformative = false; if (onProformative && event.slot.getAdUnitPath() === adUnitPath && !event.isEmpty ) var adUnitPathWithVisibility = adUnitPath + '-mobile'; var selector = '.pf-comments__ad-wrapper #dfp-hybrid1-mobile'; if (!$(selector).closest('.pf-comments__ad-wrapper').hasClass('borders')) $(selector).closest('.pf-comments__ad-wrapper').addClass('borders') ); ); ); if (window.dfp_visibility === 'desktop' ) googletag.cmd.push(function() googletag.defineSlot( '/3618/highereddive/highereddivehybrid2', [[300, 250], 'fluid'], 'dfp-hybrid2-desktop' ).addService(googletag.pubads()); ); waitToLoadAds.push(function() googletag.cmd.push(function() if (window.dfp_visibility === 'desktop' ) window.onDvtagReady?.(() => googletag.display('dfp-hybrid2-desktop')); googletag.pubads().addEventListener('slotRenderEnded', function (event) var adUnitPath = '/3618/highereddive/highereddivehybrid2'; var onProformative = false; if (onProformative && event.slot.getAdUnitPath() === adUnitPath && !event.isEmpty ) var adUnitPathWithVisibility = adUnitPath + '-desktop'; var selector = '.pf-comments__ad-wrapper #dfp-hybrid2-desktop'; if (!$(selector).closest('.pf-comments__ad-wrapper').hasClass('borders')) $(selector).closest('.pf-comments__ad-wrapper').addClass('borders') ); ); ); Dive Insight:
Trump signed a proclamation setting the $100,000 fee in September, drawing concern from colleges that rely on the program to recruit foreign researchers and instructors. Under the program, colleges and other employers can hire foreign workers for specialized jobs, typically for up to six years.
When defending the fee in court, the Trump administration pointed to the Immigration and Nationality Act, which gives the president power to impose restrictions on noncitizens entering the U.S. Federal officials argued that the $100,000 payment was a “regulatory payment” authorized by that statute.
However, U.S. District Judge Leo Sorokin disagreed when he vacated the policy. “The substance and application of the $100,000 payment reveal that it is a tax, regardless of what the payment is called,” Sorokin wrote in his June 8 ruling.
Filed Under: Federal Policy, Legal /* Keep this hidden until we need to show the v2 challenge. */ .captcha-container display: none; (function () []; window._signupRecaptchaConfigs.push(config); // If we've already initialized once, skip doing it again. if (window._signupRecaptchaBootstrapped) return; window._signupRecaptchaBootstrapped = true; // Strip odd characters so this is safe for dataset keys/callback names. function safeKey(str) return String(str // Load v3 for scoring and v2 for the fallback challenge. function loadRecaptchaScripts(v3SiteKey) if (!document.getElementById('signup-recaptcha-v2-script')) var v2Script = document.createElement('script'); v2Script.id = 'signup-recaptcha-v2-script'; v2Script.src = 'https://www.google.com/recaptcha/api.js'; v2Script.defer = true; document.head.appendChild(v2Script); if (!document.getElementById('signup-recaptcha-v3-script')) var v3Script = document.createElement('script'); v3Script.id = 'signup-recaptcha-v3-script'; v3Script.src = 'https://www.google.com/recaptcha/api.js?render=' + encodeURIComponent(v3SiteKey); v3Script.defer = true; document.head.appendChild(v3Script); // Get a v3 token, then let our backend verify and score it. function runV3AndScore(v3SiteKey, actionName) return grecaptcha.execute(v3SiteKey, action: actionName ) .then(function(token) return fetch('/signup/recaptcha-v3-score/', method: 'POST', headers: 'Content-Type': 'application/json' , body: JSON.stringify( token: token, action: actionName ) ); ) .then(function(res) return res.json(); ); // Wire recaptcha behavior to each form this config points to. function wireConfig(config, configIndex) var forms = document.querySelectorAll(config.formSelector); forms.forEach(function(form, formIndex) // Keep track of whether this form is wired/passed/already waiting on v2. var key = safeKey(config.key + '_' + configIndex + '_' + formIndex); var wiredFlag = 'recaptchaWired' + key; var passedFlag = 'recaptchaPassed' + key; var awaitingFlag = 'awaitingV2Challenge' + key; if (form.dataset[wiredFlag] === 'true') return; form.dataset[wiredFlag] = 'true'; var recaptchaElement = form.querySelector(config.v2ElementSelector); var widgetId = null; var v2WatcherInterval = null; // First check the widget API, then fall back to hidden textarea values. function getV2Response() var response = ''; try response = widgetId !== null ? grecaptcha.getResponse(widgetId) : grecaptcha.getResponse(); catch (e) response = ''; if (!response) var textareaInForm = form.querySelector('textarea[name="g-recaptcha-response"]'); var globalTextarea = document.querySelector('textarea[name="g-recaptcha-response"]'); if (textareaInForm && textareaInForm.value) response = textareaInForm.value; else if (globalTextarea && globalTextarea.value) response = globalTextarea.value; return response; // Once verified, mark the form so the submit handler lets it pass. function submitVerifiedForm() if (form.dataset[passedFlag] === 'true') return; form.dataset[passedFlag] = 'true'; if (form.closest('.inline-signup')) if (window.jQuery) window.jQuery(form).triggerHandler('recaptcha:verified'); var inlineContainer = form.querySelector(config.v2ContainerSelector); if (inlineContainer) inlineContainer.style.display = 'none'; form.submit(); // Show the v2 challenge and poll until we see a response token. function beginV2Challenge() form.dataset[awaitingFlag] = 'true'; var container = form.querySelector(config.v2ContainerSelector); if (container) container.style.display = 'block'; if (v2WatcherInterval) clearInterval(v2WatcherInterval); v2WatcherInterval = setInterval(function() if (form.dataset[passedFlag] === 'true') clearInterval(v2WatcherInterval); return; var response = getV2Response(); if (response) clearInterval(v2WatcherInterval); submitVerifiedForm(); , 250); // Render the v2 widget only when the element exists on this form. if (recaptchaElement) var callbackName = 'onSignupRecaptchaV2Success_' + key; window[callbackName] = function() submitVerifiedForm(); ; recaptchaElement.setAttribute('data-callback', callbackName); try widgetId = grecaptcha.render(recaptchaElement, sitekey: config.v2SiteKey, callback: function() submitVerifiedForm(); ); catch (e) // Main flow: validation first, then v3 score check, then v2 fallback if needed. form.addEventListener('submit', function(event) if (form.dataset[passedFlag] === 'true') return; event.preventDefault(); if (config.runExistingValidation && window.jQuery) var validationEvent = jQuery.Event('submit'); $(form).triggerHandler(validationEvent); if (validationEvent.isDefaultPrevented()) return; if (form.dataset[awaitingFlag] === 'true') if (getV2Response()) submitVerifiedForm(); else beginV2Challenge(); return; grecaptcha.ready(function() runV3AndScore(config.v3SiteKey, config.submitAction) .then(function(data) data.success)); var scorePass = !Number.isNaN(score) && score > config.scoreThreshold; if (recaptchaSuccess && scorePass) submitVerifiedForm(); return; beginV2Challenge(); ) .catch(function() // If v3 fails (network/API), still let real users complete v2. beginV2Challenge(); ); ); ); // Run a quiet v3 check on page load in the background. grecaptcha.ready(function() runV3AndScore(config.v3SiteKey, config.pageAction).catch(function() ); ); ); // Wire everything once grecaptcha is available. function setupAllConfigs() if (typeof grecaptcha === 'undefined') return false; window._signupRecaptchaConfigs.forEach(function(config, index) wireConfig(config, index); ); return true; document.addEventListener('DOMContentLoaded', function() ).v3SiteKey; if (v3SiteKey) loadRecaptchaScripts(v3SiteKey); if (setupAllConfigs()) return; // Retry briefly while external recaptcha scripts finish loading. var attempts = 0; var interval = setInterval(function() attempts += 1; if (setupAllConfigs()) clearInterval(interval); else if (attempts > 50) clearInterval(interval); , 100); ); )(); Higher Ed Dive news delivered to your inbox
Get the free daily newsletter read by industry experts
Email:
- Select user consent: By signing up to receive our newsletter, you agree to our Terms of Use and Privacy Policy. You can unsubscribe at anytime.
Sign up A valid email address is required. Please select at least one newsletter.Editors' picks
-
Getty Images
Education Department releases final rule for Workforce PellBy Natalie Schwartz • May 18, 2026 -
Kayla Bartkowski via Getty Images
Education Department finalizes rule tightening federal student lendingBy Ben Unglesbee • April 30, 2026
ES by OMG
Euro-Savings.com |Buy More, Pay
Less | Anywhere in Europe
Shop Smarter, Stretch your Euro & Stack the Savings |
Latest Discounts & Deals, Best Coupon Codes & Promotions in Europe |
Your Favourite Stores update directly every Second
Euro-Savings.com or ES lets you buy more and pay less
anywhere in Europe. Shop Smarter on ES Today. Sign-up to receive Latest
Discounts, Deals, Coupon Codes & Promotions. With Direct Brand Updates
every second, ES is Every Shopper’s Dream come true! Stretch your dollar now
with ES. Start saving today!
Originally posted on: https://www.highereddive.com/news/trump-administration-appeals-ruling-against-100k-h-1b-visa-fee/822740/