QR Hero Help center

API & integrations

Figma and Canva plugins

Put dynamic, trackable QR codes straight into a design without leaving Figma.

Designers usually get a QR code as a PNG in a chat message, drop it into the artwork, and never think about it again. That is how dead codes get printed: the file was a static code, or it was the wrong version, or the link changed three weeks after the poster went to press.

The QR Hero plugin puts your actual codes — the ones you can re-point and measure — inside the design tool, so the thing on the canvas is the same thing in your dashboard.

Install it

The plugin is not published yet — it is in development, and this guide describes how it will work. When it ships it will be in the Figma Community under QR Hero, and will run in Figma Design, Figma Slides, and Figma Buzz. A Canva version follows after that.

If you want to be told when it is ready, say so at [email protected].

Connect your account

The first time you open the panel it asks you to connect.

  1. Click Connect QR Hero. A browser tab opens.
  2. Sign in if you are not already.
  3. Check the code on the page matches the one the plugin is showing, pick which organization the plugin should see, and approve.
  4. Go back to Figma. The panel will have picked it up on its own.

The code is valid for a few minutes. If it expires, just start again.

If the browser tab does not open, your browser probably blocked the popup. Open /integrations/connect on the QR Hero app yourself and type the code the plugin is showing.

Connecting is per device. If you use Figma on a laptop and in a browser, you will connect once in each. That is expected.

What the plugin can see

Only the organization you picked when you approved it, and within that, only your QR codes and their saved styles. It cannot see your scan analytics, your billing details, or your team.

It also cannot do more than you can. If your role is read-only, the plugin can insert existing codes but the Create tab will tell you it cannot make new ones — ask an admin to connect it instead.

Insert a code you already have

The Library tab lists your codes, newest first, with a search box. Click one and it lands on the canvas.

Make a new code without leaving Figma

The Create tab takes a destination URL, an optional name, and one of your saved styles. It creates a real dynamic code in your QR Hero account and drops it into the design in the same step, so it is immediately editable and measurable from the dashboard afterwards.

If your plan's code limit is full, the tab will say so and link you to billing rather than failing when you press the button.

Vector or PNG

The toggle at the bottom of the panel controls what gets inserted.

Vector is the default and the right answer almost always. It stays sharp at any size, which matters the moment the design goes to print — a QR code that has been scaled up from a raster image scans worse, and sometimes not at all. An inserted vector code is a small handful of layers, not thousands.

PNG gives you one flat raster layer instead. Useful if you want something simple to mask or move around, but Figma caps images at 4096px, so do not use it for large-format print.

The Quick tab

Quick makes a static code without an account. It is there so you can try the plugin before signing up, and it is genuinely limited: the link is baked into the pattern itself, so once the artwork is printed the destination is fixed forever, nothing about it is measurable, and if the URL ever changes or breaks then every printed copy is dead.

Use it for a throwaway mockup. Do not use it for anything that gets printed.

Disconnect it

Open Settings → API tokens and delete the token named after the plugin — it looks like Figma plugin (a1b2c3). The connection stops working immediately. You can also click Disconnect in the plugin, which forgets the token on that device.

Something is not working

The panel says the connection was revoked. Somebody deleted the token, or you disconnected from another device. Connect again.

The code will not scan after printing. Check you inserted vector rather than PNG, and that nothing in the layout is sitting on top of the code or clipping its quiet zone — the pale margin around the pattern is part of the code.

Nothing appears in the Library. You have no codes in that organization yet, or you approved the connection for a different organization than you expected. Disconnect and connect again to pick a different one.

For developers

The technical detail — the pairing flow, every endpoint, and exactly what a connection is allowed to reach — is documented on the developer docs site under Design tool integrations.