Save up to 10% off Business Class fares & 5% off Economy Class fares*

Earn triple Velocity Points on eligible bookings with Star RV³
Make your next adventure even more rewarding with Star RV. Earn 9 Points per $1 AUD spend on eligible motorhome bookings across Australia and New Zealand.* Use code 9BONUS at checkout.³
Earn 2,000 bonus Velocity Points for your business⁴
When you join Virgin Australia Business Flyer by 9 April 2025, thanks to our hotel partner IHG Business Edge. T&Cs apply.⁴
Earn double Velocity Points on your next travel insurance policy⁵
Purchase your next eligible travel insurance policy with Cover-More via the Virgin Australia website and receive 6 Velocity Points per $1. Book by 31 March 2025. T&Cs apply.⁵
Not yet a Velocity Frequent Flyer?
It's free and fast to join Velocity. Join now, earn Points, Redeem tomorrow*
/*script 2*/ function getQueryParamCaseInsensitive(paramName) { const urlParams = new URLSearchParams(window.location.search); const params = Array.from(urlParams.keys()); const foundKey = params.find(key => key.toLowerCase() === paramName.toLowerCase()); return foundKey ? urlParams.get(foundKey) : null; } function passOnQueryParameters(paramName, linkText) { const paramValue = getQueryParamCaseInsensitive(paramName); if (paramValue !== null) { const links = document.querySelectorAll(`a[aria-label='${linkText}']`); links.forEach(element => { let href = element.href.trim(); const paramNameLowerCase = paramName.toLowerCase(); const re = new RegExp(`[?&]${paramNameLowerCase}=([^&#]*)`, 'i'); const match = href.match(re); if (match) { // Parameter exists, so append new value with encoded | const existingValue = match[1]; // Get the current value of the parameter const newValue = `${existingValue}%7C${encodeURIComponent(paramValue)}`; element.href = href.replace(re, `${match[0].charAt(0)}${paramNameLowerCase}=${newValue}`); } else if (href) { // Parameter does not exist, so add it element.href = href + (href.includes('?') ? '&' : '?') + `${paramNameLowerCase}=${encodeURIComponent(paramValue)}`; } }); } } setTimeout(() => { passOnQueryParameters('PROMO_CODE', 'Book flights'); passOnQueryParameters('promocode', 'Book flights'); passOnQueryParameters('icmpid', 'Book flights'); passOnQueryParameters('cmpid', 'Book flights'); }, 2000);