Expedited Vietnam Visa | The Rescue Portal https://cdn.tailwindcss.com https://cdn.jsdelivr.net/npm/chart.js @import url(‘https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap’); body { font-family: ‘Inter’, sans-serif; background-color: #F8FAFC; /* Slate 50 */ color: #0F172A; /* Slate 900 */ } /* Chart Container Styling – MANDATORY */ .chart-container { position: relative; width: 100%; max-width: 600px; margin-left: auto; margin-right: auto; height: 300px; max-height: 400px; } @media (min-width: 768px) { .chart-container { height: 350px; } } .gradient-bg { background: linear-gradient(135deg, #0F172A 0%, #1E293B 100%); } .card-hover { transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; } .card-hover:hover { transform: translateY(-2px); box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } .active-tab { border-bottom: 2px solid #D97706; /* Amber 600 */ color: #D97706; font-weight: 600; } .inactive-tab { color: #64748B; /* Slate 500 */ } .inactive-tab:hover { color: #0F172A; } “Diagnosis” -> “Solution” -> “Validation”. –>

Expedited Vietnam Visa

Current Vietnam Time (GMT+7)

Loading…
Checking…
Status: URGENT

The “Fail-Safe” Rescue Plan
to Save Your Trip

Flight leaving soon? Visa stuck in “Pending” or forgotten entirely? We navigate the bureaucracy so you don’t have to. Get approved in as little as 2 hours.

Step 1: What is your current situation?

Select your status to unlock the correct rescue protocol.

Government Constraints

The Immigration Dept is NOT 24/7. They work strictly on GMT+7.

Mon – Fri (Morning) 08:00 – 12:00
Mon – Fri (Afternoon) 14:00 – 18:00
Sat – Sun & Holidays CLOSED

*Our team receives orders 24/7. Weekend orders are queued for Monday morning priority.

Chinese E-Passport Holders

Passports with the “nine-dash line” map are not stamped directly. You will receive a separate “loose-leaf visa” upon arrival.

  • Proceed to Visa-on-Arrival counter.
  • Submit Passport + E-visa + NA1 Form.
  • NO additional fee at the counter.

Frequently Asked Questions

// — Data & State — const prices = { pending: { ‘2h’: 200, ‘4h’: 175, ‘8h’: 145 }, new: { ‘2h’: 230, ‘4h’: 200, ‘8h’: 170 } }; const links = { pending: “https://www.vietnamimmigration.org/boost-your-e-visa-application-form/&#8221;, new: “https://www.visa-vietnam.org/vietnam-visa-application-online&#8221; }; const requirements = { pending: [ “E-visa Registration Code (e.g., E32…)”, “Email Address used for application”, “No need to resend passport scan” ], new: [ “Passport Scan (Info page)”, “Portrait Photo (No glasses)”, “Email & Address info” ] }; const faqs = [ { q: “Can I expedite on the weekend?”, a: “Immigration is closed Sat/Sun. You can order, and we queue it for the FIRST slot Monday morning (08:00).” }, { q: “Is the 2-Hour service guaranteed?”, a: “Yes. If ordered between 08:00-15:00 Mon-Fri, we deliver on time or refund.” }, { q: “What if I made a mistake on the Govt site?”, a: “We cannot edit it. Choose the ‘New Application’ service to submit a fresh, error-free application.” }, { q: “Why trust you?”, a: “We have operated since 2007, offer a 100% money-back guarantee, and use secure PayPal processing.” } ]; let currentMode = null; // ‘pending’ or ‘new’ // — Logic: Time & Delivery Calculation — function updateClock() { // Get current time in Vietnam (GMT+7) const now = new Date(); const utc = now.getTime() + (now.getTimezoneOffset() * 60000); const vietnamTime = new Date(utc + (3600000 * 7)); // Format for display const timeString = vietnamTime.toLocaleTimeString(‘en-GB’, { hour: ‘2-digit’, minute: ‘2-digit’, second: ‘2-digit’ }); document.getElementById(‘vietnam-clock’).innerText = timeString; document.getElementById(‘calc-time-ref’).innerText = timeString.slice(0, 5); // Determine Office Status const day = vietnamTime.getDay(); // 0=Sun, 6=Sat const hour = vietnamTime.getHours(); const minute = vietnamTime.getMinutes(); const totalMinutes = hour * 60 + minute; let statusText = “CLOSED”; let statusClass = “bg-red-100 text-red-700”; let isOpen = false; if (day >= 1 && day = 480 && totalMinutes = 840 && totalMinutes = 720 && totalMinutes { const h = targetHour.toString().padStart(2, ‘0’); const m = targetMin.toString().padStart(2, ‘0’); return `${nextDay ? “Tomorrow” : “Today”} by ${h}:${m}`; }; let est2h, est4h, est8h; // Logic derived from “Detailed Processing Slots” in source // 2H Service if (vtDay === 0 || vtDay === 6) { est2h = “Monday by 10:00”; } else if (vtHour < 8) est2h = formatTime(10, 0); else if (vtHour < 10) est2h = formatTime(12, 0); else if (vtHour < 14) est2h = formatTime(16, 0); else if (vtHour < 15) est2h = formatTime(18, 0); else est2h = formatTime(10, 0, true); // 4H Service if (vtDay === 0 || vtDay === 6) { est4h = "Monday by 12:30"; } else if (vtHour < 8) est4h = formatTime(12, 30); else if (vtHour < 14) est4h = formatTime(18, 30); else est4h = formatTime(12, 30, true); // 8H Service if (vtDay === 0 || vtDay === 6) { est8h = "Monday by 18:30"; } else if (vtHour `
  • ${req}
  • ` ).join(”); // Populate Table const p = prices[mode]; tableBody.innerHTML = ` 2 Hours Immediate Flights $${p[‘2h’]} 4 Hours Flying Today $${p[‘4h’]} 8 Hours Standard Rush $${p[‘8h’]} `; // Reveal Dashboard dashboard.classList.remove(‘hidden’); // Update Calc updateCalculator(); // Scroll to dashboard dashboard.scrollIntoView({ behavior: ‘smooth’, block: ‘start’ }); // Trigger chart update if needed (simple resize fix) if (comparisonChart) comparisonChart.resize(); } function scrollToCalculator() { document.querySelector(‘.sticky’).scrollIntoView({ behavior: ‘smooth’ }); } // — Chart Generation — let comparisonChart = null; document.addEventListener(‘DOMContentLoaded’, () => { // Initialize FAQs const faqContainer = document.getElementById(‘faq-container’); faqContainer.innerHTML = faqs.map((item, index) => `
    `).join(”); // Start Clock setInterval(updateClock, 1000); setInterval(updateCalculator, 60000); // Update estimates every minute updateClock(); // — Charts — // 1. Speed Comparison Chart (Bar) const ctxComp = document.getElementById(‘comparisonChart’).getContext(‘2d’); comparisonChart = new Chart(ctxComp, { type: ‘bar’, data: { labels: [‘Govt Standard’, ‘Our 8-Hour’, ‘Our 4-Hour’, ‘Our 2-Hour’], datasets: [{ label: ‘Processing Time (Hours)’, data: [120, 8, 4, 2], // 120 = 5 days * 24h roughly backgroundColor: [ ‘#cbd5e1’, // Slate 300 ‘#60a5fa’, // Blue 400 ‘#3b82f6’, // Blue 500 ‘#d97706’ // Amber 600 (Highlight) ], borderRadius: 4 }] }, options: { responsive: true, maintainAspectRatio: false, plugins: { legend: { display: false }, tooltip: { callbacks: { label: (ctx) => { if(ctx.raw === 120) return ” 3-5 Working Days (Unpredictable)”; return ` ${ctx.raw} Hours Guaranteed`; } } } }, scales: { y: { beginAtZero: true, title: { display: true, text: ‘Hours to Approve’ } } } } }); // 2. Trust Chart (Doughnut) const ctxTrust = document.getElementById(‘trustChart’).getContext(‘2d’); new Chart(ctxTrust, { type: ‘doughnut’, data: { labels: [‘Success Rate’, ‘Refunded/Rejected’], datasets: [{ data: [99.9, 0.1], backgroundColor: [‘#16a34a’, ‘#f87171’], // Green 600, Red 400 borderWidth: 0, hoverOffset: 4 }] }, options: { responsive: true, maintainAspectRatio: false, cutout: ‘75%’, plugins: { legend: { position: ‘right’ } } }, plugins: [{ id: ‘textCenter’, beforeDraw: function(chart) { var width = chart.width, height = chart.height, ctx = chart.ctx; ctx.restore(); var fontSize = (height / 100).toFixed(2); ctx.font = “bold ” + fontSize + “em sans-serif”; ctx.textBaseline = “middle”; ctx.fillStyle = “#16a34a”; var text = “99.9%”, textX = Math.round((width – ctx.measureText(text).width) / 2) – 30, // Adjust centering relative to legend textY = height / 2; // Simple check to center properly if legend is right-aligned // For small canvas, just center roughly ctx.fillText(text, width/2 – 40, textY); ctx.save(); } }] }); });
    evisa.vn Avatar

    Published by