Client Provisioning of Particle (eg Boron)

I’d like my client to be able to provision their particle using the (Particle) app and have the app upload the correct firmware for the hardware that I supply.

When they provision, and claim their particle using the app, perhaps they could scan a qrcode with the github repository url eg

to identify a private or public repo with the firmware to compile/load?

Or another way would be to have the new particle join the right Particle Product via a qrcode.

How else should I be doing this?

The key is that it is their particle account, so that they pay the cellular cloud fees.