B2B vs UoP is the first question most developers face with a Polish offer. On an employment contract (umowa o pracę, UoP) your employer pays part of the contributions, and you get paid holiday, sick pay and notice periods under the Labour Code. On a B2B contract you run your own sole-trader business (JDG), invoice the company and keep more of each złoty, but you pay your own ZUS, take unpaid time off and lose most employee protection.
In money terms, B2B usually wins once the rate is set fairly. At PLN 20,000 gross a month on UoP you take home about PLN 12,562 a month. On B2B with the 12% ryczałt you need to invoice about PLN 17,000 for the same yearly net, or about PLN 18,500 if you take a month off unpaid each year. The rest of this guide shows where those numbers come from and what else to weigh.
This isn’t legal or tax advice. Rules change every year, and two tax bills now in the Sejm would change several numbers from 2027. Check the official links and talk to an accountant (księgowy) or tax adviser before you sign.
Work out your own figure: the salary after tax calculator shows take-home pay on UoP and on all three B2B tax options under the 2026 rules.
What UoP and B2B mean
UoP (umowa o pracę) is an employment contract under the Labour Code. Your offer shows a gross monthly salary (brutto). Your employer deducts income tax, your social contributions and the 9% health contribution, and pays its own contributions on top.
B2B (business-to-business) means you register a sole-trader business (jednoosobowa działalność gospodarcza, JDG) and sign a services contract with the company. The rate in the ad is usually net of VAT (netto + VAT). You choose a tax option, pay your own ZUS and health contribution, and usually hire an accountant. Our guide to setting up a JDG as a foreigner walks through registration.
A third type, the mandate contract (umowa zlecenie), is less common in tech and isn’t covered here.
B2B vs UoP calculator: take-home pay at 15k, 20k and 30k
These figures come from the calculator on this site, which uses the 2026 rules from the PIT Act, the Lump-sum Tax Act and the Social Insurance Act. UoP figures are the yearly net divided by 12; your payslips will be higher early in the year and lower once you pass PLN 120,000 of income. B2B figures assume full ZUS without sickness insurance, no business costs and no start-up relief.
| Monthly amount | UoP net | B2B ryczałt 12% net | B2B flat tax 19% net | B2B tax scale net |
|---|---|---|---|---|
| PLN 15,000 | PLN 10,017 | PLN 10,829 | PLN 10,177 | PLN 10,095 |
| PLN 20,000 | PLN 12,562 | PLN 15,229 | PLN 14,029 | PLN 13,045 |
| PLN 30,000 | PLN 18,082 | PLN 23,404 | PLN 21,692 | PLN 18,945 |
Source: salary after tax calculator, 2026 rules.
The same number means different things on each side. PLN 20,000 gross on UoP costs your employer about PLN 24,096 a month once its own pension, disability, accident, Labour Fund and FGŚP contributions are added. PLN 20,000 on B2B costs the client exactly PLN 20,000 (plus VAT, which it reclaims). That gap is why companies can offer a higher number on B2B.
For a full breakdown of each amount, see what 15k, 20k and 30k PLN take home on UoP and B2B.
Which B2B rate matches a UoP salary?
To compare offers fairly, find the B2B rate that gives you the same yearly net as the UoP salary. Then add the days you won’t be paid for.
| UoP gross a month | UoP net a year | B2B ryczałt 12%, same net, 12 months invoiced | Same net, 11 months invoiced |
|---|---|---|---|
| PLN 15,000 | PLN 120,200 | PLN 14,077 | PLN 15,357 |
| PLN 20,000 | PLN 150,746 | PLN 16,970 | PLN 18,512 |
| PLN 25,000 | PLN 182,450 | PLN 19,972 | PLN 21,787 |
| PLN 30,000 | PLN 216,982 | PLN 23,242 | PLN 25,355 |
We calculated these with the same 2026 rules. “11 months invoiced” is a simple way to cover about 20 working days of holiday you’d be paid for on UoP. If you also want to cover sick days and an accountant, ask for a little more.
A rough rule from the table: with ryczałt, a B2B rate 6% to 23% below the UoP gross gives the same cash before time off; the higher the salary, the bigger the discount. Once you add a month of unpaid leave, the B2B rate needs to be roughly 85% to 100% of the UoP gross. Offers below that usually leave you worse off than the employment contract.
What you give up on B2B
The Labour Code gives employees rights that a B2B contract doesn’t, unless you negotiate them into the contract:
- Paid holiday: 20 days a year, or 26 days once your counted work history reaches 10 years (Labour Code, art. 154). Many B2B contracts offer some paid “breaks”, but that’s a contract term, not a right.
- Sick pay: 80% of pay for up to 33 days a year from the employer, then sickness benefit from ZUS (Labour Code, art. 92). On B2B you only get ZUS sickness benefit if you pay the voluntary sickness contribution.
- Notice periods: 2 weeks, 1 month or 3 months, depending on how long you’ve worked for the employer (Labour Code, art. 36). On B2B, the notice period is whatever the contract says.
- Pension: on B2B you usually pay ZUS on the minimum base, so your future state pension is lower than on a high UoP salary.
One change in your favour: since 2026, years spent running a business (with ZUS paid) and on mandate contracts count towards your length of employment under the Labour Code. That affects holiday entitlement and notice periods if you later move to UoP. Private employers apply it from 1 May 2026, and you have 24 months to document your periods with a ZUS certificate (Dz.U. 2025 poz. 1423).
Can foreigners take B2B contracts?
It depends on your residence status. EU and EEA citizens can run a business in Poland on the same terms as Poles. Non-EU citizens can register a JDG only with certain statuses, including permanent residence, EU long-term residence, some temporary residence permits (such as one for family reunification with a Polish spouse) and, since 1 June 2025, the EU Blue Card (Act on foreign entrepreneurs, art. 4, amended by Dz.U. 2025 poz. 619). A standard work permit isn’t enough to run your own JDG.
If you need a visa or permit, the employer usually decides the contract type. See EU Blue Card and work permits in Poland and our guide to the Polish residence permit for work.
B2B taxes in brief
On B2B you choose one of three tax options when you register, and you can change it for the next year:
- Ryczałt (lump-sum tax) at 12% on revenue for most software services, with no deduction for costs and a fixed health contribution of PLN 498.35, 830.58 or 1,495.04 a month in 2026, by revenue (Lump-sum Tax Act, art. 12; ZUS).
- Flat tax (liniowy) at 19% on income after costs, with a 4.9% health contribution (PIT Act, art. 30c).
- Tax scale at 12% and 32%, with the PLN 30,000 tax-free amount and a 9% health contribution.
Social contributions are the same under all three: nothing for the first 6 months (ulga na start), PLN 456.18 a month for the next 24 months, then at least PLN 1,926.76 a month in 2026 with sickness insurance (ZUS). So your first two and a half years on B2B are cheaper than the table above shows.
Our guide to ryczałt 12% vs 19% flat tax vs the tax scale explains which option suits which income.
What may change in 2027
The government sent tax bills to the Sejm in September 2026. They had their first reading on 6 October 2026 and aren’t law yet, so treat these as proposals:
- Bill 3147: a new tax scale of 12% up to PLN 130,000, 24% up to PLN 150,000 and 32% above. The ryczałt entry limit would fall from EUR 2 million to EUR 250,000 of last year’s revenue, and revenue above EUR 300,000 in a year would be taxed at 17%. The 12% rate for IT services stays. The solidarity levy would rise from 4% to 5% (Sejm print 3147, legislative record).
- Bill 3137: IP Box income (taxed at 5%) would count towards the solidarity levy on income above PLN 1 million. An earlier draft would have limited IP Box to businesses employing at least 3 people; the government dropped that after consultation (Sejm print 3137, legislative record).
For most developers on B2B, the ryczałt changes don’t bite: EUR 250,000 is about PLN 1 million a year. The new 24% band would lower tax for UoP employees earning between PLN 120,000 and PLN 150,000. Check the Sejm pages above for the final text.
The PIP risk: when B2B is really employment
The Labour Code says work done under the employer’s direction, at a place and time it sets, for pay, is employment, whatever the contract is called. A civil-law contract can’t replace an employment contract on those terms (Labour Code, art. 22).
Since 8 July 2026, labour inspectors can order a company to sign an employment contract and, if it doesn’t, a district labour inspector can issue a decision that the relationship is employment (Dz.U. 2026 poz. 473). Our guide to PIP and B2B reclassification explains the process and what it means for you.
How to decide
B2B is usually better if:
- the rate is at least 85% to 100% of the UoP gross offer (the higher end at lower salaries), after you count unpaid time off;
- you have the residence status to run a JDG;
- you’re comfortable paying ZUS, health and tax yourself, with an accountant;
- you work like a contractor: you choose how and when to deliver.
UoP is usually better if:
- you’re on a work permit or need the employer to sponsor you;
- you want paid holiday, sick pay and notice protection;
- you plan a mortgage soon (ask your bank how it treats B2B income);
- the B2B rate is close to the UoP gross, so the cash gain is small.
Ask every employer which contract types they offer and whether the B2B rate includes paid days off. Then browse all jobs on Poland Dev Jobs. Browse jobs in Warsaw or Kraków, or remote jobs.
Frequently asked questions
Is B2B or UoP better for a programmer in Poland?
In cash, B2B usually wins when the rate is fair: at PLN 20,000 a month, ryczałt leaves about PLN 15,229 against PLN 12,562 on UoP. But B2B has no paid holiday, sick pay or Labour Code notice by default. Compare yearly net after unpaid time off, and check your residence status first.
What B2B rate equals a PLN 20,000 UoP salary?
About PLN 17,000 a month on 12% ryczałt gives the same yearly net, if you invoice all 12 months. If you take about 20 working days off unpaid, you need about PLN 18,500. On the 19% flat tax the figures are about PLN 18,100 and PLN 19,700. These use 2026 rules, full ZUS and no business costs.
How much does UoP cost the employer compared with B2B?
On UoP the employer pays its own contributions on top of your gross: pension 9.76%, disability 6.5%, accident insurance, the Labour Fund and FGŚP. At PLN 20,000 gross that’s about PLN 24,096 a month in total. On B2B the client pays only your invoice, plus VAT it can usually reclaim.
Can I have a B2B contract on a work permit in Poland?
Not through your own JDG. Non-EU citizens can register a sole-trader business only with certain statuses, such as permanent residence, EU long-term residence, some temporary permits or, since June 2025, the EU Blue Card. A standard work permit isn’t enough. Ask the employer whether the permit route they use allows B2B.
Does B2B work count towards my seniority on UoP?
Yes, since 2026. Periods of running a business with ZUS paid, and periods on mandate contracts, count towards your length of employment under the Labour Code. Private employers apply this from 1 May 2026. You need a ZUS certificate, and you have 24 months to document periods for a job you already held then.
Will B2B taxes change in 2027?
Possibly. Bills in the Sejm would cut the ryczałt entry limit to EUR 250,000, add a 17% rate above EUR 300,000 a year, add a 24% band to the tax scale and include IP Box income in the solidarity levy. They had a first reading on 6 October 2026 and aren’t law yet.
