KARACHI: The latest interbank exchange rates in Pakistan are being updated today, September 18, 2026, showing the official value of the Pakistani rupee (PKR) against major international currencies.
The interbank rates are being used by commercial banks for foreign exchange transactions, trade payments and other international dealings. The latest buying and selling rates are being provided for the US dollar (USD), euro (EUR), British pound (GBP), Saudi riyal (SAR), UAE dirham (AED) and other major currencies.
The updated interbank currency rates in Pakistan today are being provided in the table below.
${item.code}
${item.name}
${item.buy.toFixed(2)}
${item.sell.toFixed(2)}
`;
list.appendChild(row);
});
}
function pakFilterForex(){
const input=document.getElementById('pak-forex-search');
const query=input.value.toLowerCase().trim();
const filtered=pakForexData.filter(item=>
item.code.toLowerCase().includes(query) || item.name.toLowerCase().includes(query)
);
pakRenderForex(filtered);
}
function pakPopulateConverter(){
const select=document.getElementById('pak-calc-curr');
if(!select) return;
select.innerHTML='';
pakForexData.forEach(item=>{
const option=document.createElement('option');
option.value=item.code;
option.textContent=`${item.code} - ${item.name}`;
select.appendChild(option);
});
}
function pakCalculate(){
const select = document.getElementById('pak-calc-curr');
const amountInput = document.getElementById('pak-calc-amount');
const typeSelect = document.getElementById('pak-calc-type');
const output = document.getElementById('pak-calc-output');
if(!select || !amountInput || !typeSelect || !output) return;
const code = select.value;
const amount = parseFloat(amountInput.value) || 0;
const type = typeSelect.value;
const item = pakForexData.find(x => x.code === code);
if(!item) return;
if(type === 'buy') {
const total = amount * item.buy;
output.textContent = total.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}) + ' PKR';
} else {
const total = amount / item.sell;
output.textContent = total.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}) + ' ' + item.code;
}
}
function pakSwitchForex(view,button){
const views=['rates','converter','graph','faq'];
views.forEach(name=>{
const el=document.getElementById('pak-'+name+'-view');
if(el) el.classList.remove('active');
});
document.querySelectorAll('.pak-forex-btn').forEach(btn=>{
btn.classList.remove('active');
});
const selected=document.getElementById('pak-'+view+'-view');
if(selected) selected.classList.add('active');
if(button) button.classList.add('active');
if(view==='converter') pakCalculate();
if(view==='graph'){
if(!window.pakForexChart){
pakInitChart();
} else {
setTimeout(()=>{ window.pakForexChart.resize(); },50);
}
}
}
function pakToggleFaq(button){
button.parentElement.classList.toggle('open');
}
function pakUpdateChart(){
if(!window.pakForexChart) return;
const filter=document.getElementById('pak-chart-filter').value;
const top=["USD","EUR","GBP","AED","SAR","CAD","AUD","SGD"];
const data=filter==='top' ? pakForexData.filter(x=>top.includes(x.code)) : pakForexData;
window.pakForexChart.data.labels=data.map(x=>x.code);
window.pakForexChart.data.datasets[0].data=data.map(x=>x.buy);
window.pakForexChart.data.datasets[1].data=data.map(x=>x.sell);
window.pakForexChart.update();
}
function pakInitChart(){
const canvas=document.getElementById('pakForexChart');
if(!canvas || typeof Chart==='undefined') return;
const top=["USD","EUR","GBP","AED","SAR","CAD","AUD","SGD"];
const data=pakForexData.filter(x=>top.includes(x.code));
window.pakForexChart=new Chart(canvas.getContext('2d'),{
type:'bar',
data:{
labels:data.map(x=>x.code),
datasets:[
{label:'Buying',data:data.map(x=>x.buy),backgroundColor:'#198754',borderRadius:2},
{label:'Selling',data:data.map(x=>x.sell),backgroundColor:'#8a8f94',borderRadius:2}
]
},
options:{
responsive:true,
maintainAspectRatio:false,
plugins:{
legend:{
position:'top',
labels:{boxWidth:8,boxHeight:8,font:{family:"'Roboto',sans-serif",size:9}}
}
},
scales:{
x:{grid:{display:false},ticks:{font:{size:9}}},
y:{ticks:{font:{size:9}}}
}
}
});
}
function pakInitForex(){
pakRenderForex(pakForexData);
pakPopulateConverter();
pakCalculate();
}
if(document.readyState==='loading'){
document.addEventListener('DOMContentLoaded',pakInitForex);
}else{
pakInitForex();
}