If you freelance from Pakistan, receiving money is usually the easy part. The harder part is the trail behind the payment. Which service does the bank record? Which purpose code appears on the remittance? How is the tax deducted? Can you prove later where the money came from?
My own process is deliberately simple. I want every foreign payment to have a clean chain from the invoice to the Pakistani bank account and then into my tax records. This is a record of what I do, not tax or legal advice.
Start with your FBR setup
Before worrying about bank codes or registering with the Pakistan Software Export Board (PSEB), I would first make sure the Federal Board of Revenue (FBR) side is in place. That means having a personal NTN (National Tax Number) and filing the return correctly for the relevant tax year.
One distinction is easy to miss. Having an NTN, filing a return, and appearing on the Active Taxpayers List are related, but they are not the same thing.
Where PSEB fits in
For IT and IT-enabled services (ITeS) exporters, PSEB registration matters because it sets the tax rate under Section 154A of the Income Tax Ordinance.
Under Section 154A, tax on export proceeds is a final tax, usually deducted by the bank when the money arrives. The rate is 0.25% if you are registered with PSEB and 1% if you are not. The reduced rate came in with the Finance Act 2022, as Business Recorder reported from the FBR’s explanatory circular. Rates can change with each budget, so confirm the current rate with your tax adviser before you file.
My practical order
Have the basic FBR registration in place first.
Register under the freelancer route if your work falls within the eligible IT/ITeS category.
Tell the bank what services you export and make sure the appropriate purpose code is tagged.
Keep a copy for every foreign receipt and check it before filing it away.
Get the bank setup right before the next payment
This is one of the few parts I would not leave vague. The purpose code attached to the remittance decides how the receipt is classified. For freelance computer and information services, the State Bank of Pakistan (SBP) purpose code is 9186, set in SBP’s December 2018 circular.
Since April 2026, banks must take a one-time declaration of the service you provide. They then tag your account with the matching purpose code (EPD Circular Letter No. 06 of 2026). If you sell more than one kind of service, tell the bank when a payment is for something different.
What went wrong in my own account
This happened to me. Payouts that came through Wise arrived under purpose code 2280. Local bank transfers (IBFT) carrying the same client’s money arrived as 9471, a home-remittance code. Neither was 9186, and some receipts had no PRC at all.
The bank codes the route the money took, not the work it paid for. That matters at filing time. Declared as home remittances, these receipts would have dropped out of my export income. I declared them by what they were: the same work for the same client, so the same export income. No tax had been deducted on some of them, so that tax was settled in my return.
I have asked the bank to recode them to 9186 and to issue the missing PRCs.
The PRC is the document I care about most
When a payment arrives, I check the PRC or ePRC (its electronic version) instead of assuming the remittance was recorded correctly. At minimum, I want the foreign amount, exchange rate, purpose, purpose code, tax deduction and realized PKR amount to make sense.
| Field | What I check |
|---|---|
| Foreign amount | Does it match the payment or is there an intermediary-bank deduction? |
| FX rate | What conversion rate did the bank actually use? |
| Purpose | Does the description match the service I actually provided? |
| Purpose code | For my IT freelance receipts, is the expected code shown? |
| Tax | What rate and amount were deducted? |
Wise, Payoneer and other intermediaries
I do not treat an intermediary as a separate tax rule. What matters to me is what ultimately reaches the Pakistani bank, how that bank classifies the receipt, and what documentary trail I receive.
Two people can both say they were paid through the same service and still end up with different documentation. It depends on the route used to deliver the money. The route can even change the purpose code, as it did with my own Wise payouts.
ESFCA is useful if you have recurring foreign expenses
If you regularly pay for software, hosting, certifications or other foreign expenses, an Exporters’ Special Foreign Currency Account (ESFCA) is useful. Under SBP’s April 2026 rules, IT exporters and freelancers can keep USD 5,000 a month or 50% of their export proceeds, whichever is higher, in this account. The bank credits that share by default unless you ask in writing for less.
Freelancers can spend from it on work and personal payments such as digital services, subscriptions, certification fees and education, without SBP approval. You can convert the balance to PKR at any time. You cannot withdraw cash from it in Pakistan or move it to an ordinary foreign-currency account.
I see this less as a tax feature and more as a cash-flow tool. It avoids converting everything to PKR and then buying foreign currency again for legitimate expenses.
Do not compare banks by the visible fee alone
A bank can charge a visible intermediary fee and still leave you with more PKR than a bank that receives the full USD amount but converts it at a weaker rate. Here is an example with made-up rates.
| Bank A | Bank B | |
|---|---|---|
| Client sends | $5,000 | $5,000 |
| Intermediary deduction | $30 | $0 |
| Amount converted | $4,970 | $5,000 |
| FX rate | 279 | 274 |
| PKR before tax | 1,386,630 | 1,370,000 |
| Effective rate | 277.33 | 274.00 |
Effective FX rate = PKR realized before tax ÷ original foreign paymentIn this example, the bank that apparently “lost” $30 still leaves you with PKR 16,630 more before tax.
The useful question is not “which bank charges less?” It is “how many rupees did I actually receive for each dollar the client sent?”
Keep your own payment record
I would not rely on being able to reconstruct everything from bank statements months later. A simple payment tracker makes tax filing and bank comparisons much easier.
| Field | Example |
|---|---|
| Payment date | 12 Aug 2026 |
| Client / invoice | Client A · INV-042 |
| Foreign amount | USD 5,000 |
| Intermediary fee | USD 30 |
| FX rate | 279.00 |
| Purpose code | 9186 |
| PRC | Saved |
The exact spreadsheet is not important. The useful part is being able to connect the client invoice, the remittance and the PRC without guessing later.