A logo works in a QR code because of error correction: the code carries spare data so that up to 7, 15, 25 or 30 percent of it (levels L, M, Q, H) can be missing or wrong. Put the logo in the middle, clear the modules under it so they do not read as noise, and keep the lost area well under that budget. Adding a logo here switches the code to level Q; take it to H for a bigger mark.
Three things decide whether a logo code scans on a cheap phone in bad light: the logo size (stay under about 22 percent of the code width), the plate behind it (a rounded or circular plate in the background colour gives the decoder a clean edge) and the quiet zone around the whole code. The scan check tests your exact file at small size, blurred and tilted; if it drops below 4 of 5, shrink the logo a notch.
Export SVG for print: the logo stays embedded and the dots stay sharp at any size. The PNG export is fine for screens, email signatures and social posts.
Questions
How big can the logo be?
Up to about 22 percent of the code width is safe with error correction H and a plate behind it. 30 percent sometimes works on a good phone and fails on a bad one. The scan check is the arbiter.
Should the logo have a white background?
The plate option draws one for you in the code’s background colour, so a transparent PNG logo is ideal. Square or round logos fit best; a wide wordmark wastes error correction.
Can I colour the code to match the logo?
Yes, in the Colour tab. Keep the dots dark enough: the scan check warns when contrast gets low.