Quang Binh Airport Arrival
Your interactive guide to a smooth and fast arrival at Dong Hoi (VDH). Start by selecting your visa type.
What is Your Arrival Situation?
βοΈ
1. Arrive & Deplane
π
2. Immigration Queue
π
3. Baggage Claim
β
4. Customs Check
π
1. Landing Visa Counter
π
2. Immigration Queue
π
3. Baggage Claim
β
4. Customs Check
Select a step above to see details.
- Passport: Must be valid for at least 6 months beyond your entry date, with one blank page.
- Visa: Have your printed E-visa, Visa Exemption proof, or Visa on Arrival approval letter ready.
- Accommodation Info: Keep the address of your first night’s stay handy for the arrival form.
- Customs Awareness: Know the duty-free limits (e.g., US$5,000 cash, 1.5L spirits, 200 cigarettes) and avoid prohibited items.
Key Facts:
- Location: 6km from Dong Hoi city center.
- Terminals: One passenger terminal (T1) handles all flights.
- Gateway To: Phong Nha-Ke Bang National Park (approx. 50km away).
Transport Options:
- Taxi: Easiest option, find reputable brands outside arrivals.
- Private Car: Pre-book for fixed rates to Dong Hoi or Phong Nha.
- Bus: No direct airport bus, but local buses are available in the city.
Our Expedited Entry Service is designed to eliminate waiting. A representative meets you at the gate and fast-tracks you through all formalities, letting you start your vacation hours sooner.
Estimated Time at Immigration
How It Works:
- Personal Greeting: Our staff meets you holding a sign with your name.
- Priority Lane Access: We escort you past the main queue at immigration.
- VOA Handling: For VOA holders, we manage all paperwork, photo issues, and cash payments for the stamping fee.
- Benefit: A seamless, stress-free transition from airside to landside.
ποΈ
15+ Years
In service since 2008.
π‘οΈ
Money-Back
100% satisfaction guarantee.
π³
PayPal Protection
Secure payments with buyer protection.
β
Top Reviews
Trusted by thousands of travelers.
β‘οΈ Tip: Our Expedited Entry Service lets you skip this entire queue via a priority lane!’ }, ‘evisa-3’: { title: ‘Step 3: Baggage Claim’, content: ‘After immigration, check the screens for your flight number to find the correct carousel and collect your checked luggage.’ }, ‘evisa-4’: { title: ‘Step 4: Customs Check & Exit’, content: ‘With your bags, proceed through the Green Channel if you have nothing to declare. Welcome to Quang Binh!’ }, ‘voa-1’: { title: ‘Step 1: Landing Visa Counter’, content: ‘Important: Do NOT go to the main immigration queue first. Find the “Visa on Arrival” counter. You will need your approval letter, passport, one 4x6cm photo, and cash for the stamping fee (US$25 or US$50).
β‘οΈ Problem? No cash or photo? Our Expedited Service team can solve this on the spot.’ }, ‘voa-2’: { title: ‘Step 2: Immigration Checkpoint’, content: ‘Once your visa is stamped in your passport, proceed to the main immigration line to get your official entry stamp.
β‘οΈ Tip: Our service includes fast-tracking this queue too!’ }, ‘voa-3’: { title: ‘Step 3: Baggage Claim’, content: ‘After getting your entry stamp, head to baggage claim. Find your flight on the monitors and collect your luggage.’ }, ‘voa-4’: { title: ‘Step 4: Customs Check & Exit’, content: ‘With your bags, proceed through the Green Channel if you have nothing to declare. You\’ve made it!’ } }; const btnEvisa = document.getElementById(‘btn-evisa’); const btnVoa = document.getElementById(‘btn-voa’); const flowEvisa = document.getElementById(‘flow-evisa’); const flowVoa = document.getElementById(‘flow-voa’); const stepDescriptionEl = document.getElementById(‘step-description’); let currentFlow = ‘evisa’; function updateActiveFlow() { if (currentFlow === ‘evisa’) { btnEvisa.classList.replace(‘btn-inactive’, ‘btn-active’); btnVoa.classList.replace(‘btn-active’, ‘btn-inactive’); flowEvisa.classList.remove(‘hidden’); flowVoa.classList.add(‘hidden’); updateDescription(‘evisa-1’); } else { btnVoa.classList.replace(‘btn-inactive’, ‘btn-active’); btnEvisa.classList.replace(‘btn-active’, ‘btn-inactive’); flowVoa.classList.remove(‘hidden’); flowEvisa.classList.add(‘hidden’); updateDescription(‘voa-1’); } } function updateDescription(stepKey) { const description = stepDescriptions[stepKey]; stepDescriptionEl.innerHTML = `
${description.title}
${description.content}
`; document.querySelectorAll(‘.flow-step’).forEach(step => { step.classList.remove(‘active’); }); document.querySelector(`.flow-step[data-step=”${stepKey}”]`).classList.add(‘active’); } btnEvisa.addEventListener(‘click’, () => { currentFlow = ‘evisa’; updateActiveFlow(); }); btnVoa.addEventListener(‘click’, () => { currentFlow = ‘voa’; updateActiveFlow(); }); document.getElementById(‘process-flow-container’).addEventListener(‘click’, (e) => { const stepEl = e.target.closest(‘.flow-step’); if (stepEl) { const stepKey = stepEl.getAttribute(‘data-step’); updateDescription(stepKey); } }); // Accordion Logic document.querySelectorAll(‘.accordion-header’).forEach(header => { header.addEventListener(‘click’, () => { const item = header.parentElement; const content = item.querySelector(‘.accordion-content’); const icon = item.querySelector(‘.accordion-icon’); if (content.style.maxHeight) { content.style.maxHeight = null; icon.style.transform = ‘rotate(0deg)’; } else { // Close other accordions document.querySelectorAll(‘.accordion-content’).forEach(c => c.style.maxHeight = null); document.querySelectorAll(‘.accordion-icon’).forEach(i => i.style.transform = ‘rotate(0deg)’); content.style.maxHeight = content.scrollHeight + “px”; icon.style.transform = ‘rotate(45deg)’; } }); }); // Chart.js implementation let timeChart; const chartObserver = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { if (!timeChart) { const ctx = document.getElementById(‘time-saving-chart’).getContext(‘2d’); timeChart = new Chart(ctx, { type: ‘doughnut’, data: { labels: [‘Standard Queue (mins)’, ‘With Expedited Service (mins)’], datasets: [{ label: ‘Time Spent’, data: [75, 10], backgroundColor: [ ‘#e5e7eb’, // gray-200 ‘#5d8b67’, // primary ], borderColor: ‘#f8f7f4’, borderWidth: 4, hoverOffset: 4 }] }, options: { responsive: true, maintainAspectRatio: false, cutout: ‘70%’, plugins: { legend: { position: ‘bottom’, labels: { padding: 20, boxWidth: 12, font: { size: 14 } } }, tooltip: { enabled: true, callbacks: { label: function(context) { let label = context.label || ”; if (label) { label += ‘: ‘; } if (context.parsed !== null) { label += context.parsed + ‘ mins’; } return label; } } } } } }); } observer.unobserve(entry.target); } }); }, { threshold: 0.5 }); chartObserver.observe(document.getElementById(‘time-saving-chart’)); // Initialize view updateActiveFlow(); });