Adults will be allowed to grow up to three plants each and buy up to 25 grams of the drug a day. But critics fear the measures will encourage more young people to consume it.
The German parliament has approved controversial plans to legalise the personal use of cannabis.
The measure was passed by Germany’s lower house, the Bundestag, on Friday.
From 1 April, adults will be able to buy up to 25 grams (one ounce) of the drug a day, or up to 50 grams (two ounces) per month for recreational use.
The figure will be capped at 30 grams a month for under-21s.
Users will also be able to grow up to three plants each for private consumption.
Bavaria’s conservative state government has also said it would examine whether legal action could be taken to halt the law.
The plans, part of German Chancellor Olaf Scholz’s social reform programme, passed by 407 votes to 226 on Friday.
The measures were previously scheduled to become law at the start of the year, but got held up following resistance from some lawmakers in Mr Scholz’s ruling three-party coalition.