Error correction determines the amount of data to be corrected. When you create the QR code, you also create some redundant data that will help a QR reader accurately read the code even if part of it is unreadable. There are four levels of error correction that you can choose from.

L
L is the least amount of error correction. A QR code created with level L can be read even if 7% of the QR code is unreadable.

M
M provides more error correction – 15% of the QR code might be unreadable but it will still work.

Q
Q provides still more error correction, up to 25% of the QR code might be unreadable and still work.

H
H provides the most error correction, with up to 30% of the QR code being unreadable but still working.

If you wanted to embed a logo inside your QR code, level H might be a good place to start. But always test your generated QR code on many different devices before you print or use it anywhere. The quality of QR code readers varies greatly!