GS1-identifikatorer & onboarding
GS1-identifikatorer & onboarding
qr3.app er baseret på en BYO-GTIN/BYO-GLN-model (Bring Your Own): Du medbringer dine eksisterende GS1-identifikatorer — qr3 overtager det digitale produktlag ovenpå.
Hvad gør GS1?
GS1 udsteder globalt unikke identifikatorer til produkter og lokationer:
| Identifikator | Beskrivelse | Eksempel |
|---|---|---|
| GTIN-14 | Global Trade Item Number (Produkt-ID) | 04012345678901 |
| GLN-13 | Global Location Number (Lokation/Virksomhed) | 4012345000009 |
| Company Prefix | Virksomhedspræfiks (7-12 cifre), som GTIN’er afledes fra | 4012345 |
For at få GTIN’er skal du have et GS1-medlemskab hos din nationale GS1-organisation (f.eks. GS1 Denmark, GS1 Germany).
Hvad gør qr3.app?
qr3.app bruger dine eksisterende GS1-identifikatorer og tilbyder:
- GS1-kompatibel resolver —
/01/{GTIN}/21/{Serial}med Content-Negotiation - EU Digital Product Passport — DPP-oprettelse, validering, forbrugervisning
- Trykklare QR-aktiver — SVG, PNG, vektor-PDF, EPS
- JSON-LD, DCAT-AP — Maskinlæsbare produktdata
Onboarding-flow
1. Registrer GS1-identifikatorer
Før du kan oprette DPP’er, skal du registrere dine GTIN’er (eller dit Company Prefix):
Per API:
curl -X POST https://qr3.app/v1/gs1/identifiers \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{"identifier_type": "company_prefix", "value": "4012345", "label": "GreenPower GmbH"}'Via dashboard:
- Gå til Dashboard → GS1
- Vælg type (GTIN, GLN eller Company Prefix)
- Indtast værdien — kontrolciffer-valideringen sker automatisk
- Klik på Tilføj identifikator
Din organisation har hver identifikator kun én gang, i et af sine workspaces. Registrerer du en fjernet identifikator igen, kommer den tilbage (201, samme id) som egen erklæring og ikke verificeret, også selvom den var verificeret, før den blev fjernet; lå den i et andet workspace, flytter den hertil. Er den stadig registreret, er svaret 409 med reason already_registered (i dette workspace) eller registered_in_other_workspace (i et andet; workspace nævner det, hvis du må åbne det). Arkiveres workspacet imens, er reason workspace_archived; der registreres intet.
2. Opret DPP’er
Så snart et GTIN er registreret (direkte eller via et Company Prefix), kan du oprette DPP’er med det:
curl -X POST https://qr3.app/v1/dpp \ -H "Authorization: Bearer qr3_sk_..." \ -H "Content-Type: application/json" \ -d '{"gtin": "04012345678901", "product_name": "EcoMax Battery", ...}'3. Ejerskabskontrol
qr3.app kontrollerer ved hver DPP-oprettelse, om det anvendte GTIN tilhører din organisation:
- Direkte registrering — GTIN’et er registreret som
identifier_type: "gtin" - Præfiks-match — GTIN’et begynder med et registreret Company Prefix (position 2..N i GTIN-14)
Uden en matchende registrering returneres en 422-fejl med besked om at registrere GTIN’et først.
Samme kontrol gælder for POST /v1/dpp/batch og POST /v1/dpp/import, synkront og som job i kø: ét GTIN uden registrering afviser hele forespørgslen med 422 (titel GTIN Not Registered, de afviste GTIN’er i gtins, deres antal i total); intet oprettes eller stilles i kø. Eksisterende pas berøres ikke. Indsendelse af et pas til EU-produktregisteret (POST /v1/dpp/:id/register) kræver desuden, at passets organisation er indehaver af GTIN’et (se afsnit 4); ellers er svaret 409 (titel GTIN Held by Another Organization).
4. Verificering
En registrering via API’et eller dashboardet er en selverklæring (verified_by: "self", verified_at: null). En verificeret identifikator har verified_at (verified_by: "gs1_registry" eller "admin"); det sætter qr3, når en anmodning med bevis er tjekket (se nedenfor). Et verificeret GTIN eller Company Prefix:
- binder den offentlige GS1-resolver for disse GTIN’er til din organisation, også selvom en anden organisation har oprettet et pas tidligere;
- spærrer for alle andre organisationer: oprettelse af et DPP for et sådant GTIN, også via batch eller import, giver
409(errors/conflict, titelGTIN Verified by Another Organization, de afviste GTIN’er igtins). Batch og import afvises i deres helhed.
Uden verificering tilhører et GTIN den organisation, der har haft det længst uden afbrydelse (detaljer: GS1-resolver). Opløses dit GTIN til en anden organisations pas, så anmod om at få det verificeret.
Anmod om verificering
I dashboardet under GS1, afsnittet Anmod om verificering: indtast typen (GTIN eller Company Prefix) og værdien, upload et bevis, og indsend anmodningen. Beviset viser, at din organisation har GTIN’et eller Company Prefix fra GS1, for eksempel licensbekræftelsen fra din GS1-organisation (PDF, PNG, JPEG eller WebP). Det gemmes privat; kun din organisation og qr3-teamet kan se det. Der er ingen automatisk forespørgsel hos GS1.
qr3-teamet tjekker beviset og godkender anmodningen eller afviser den med en begrundelse. Efter godkendelsen er identifikatoren verificeret (verified_by: "admin") og virker som beskrevet ovenfor. Du får en e-mail om hver afgørelse, sendt til din organisations notifikationsadresse eller ellers til ejerens adresse.
- Hvem: kun organisationsadministratorer (
org_admineller ejeren). Andre roller og direkte API-nøgler får403. Heller ikke qr3-support kan indsende en anmodning i dit navn. - Status:
pending(under behandling),approved,rejected,withdrawn(trukket tilbage af dig) ellerrevoked(verificering tilbagekaldt senere). En anmodning under behandling kan du trække tilbage. 409:reasonerrequest_pending(din organisation har allerede en anmodning for denne identifikator),already_verifiedellerverified_elsewhere(en anden organisation har verificeret den; den nævnes ikke). Har din organisation GS1-licensen til den, så skriv til [email protected]: qr3 tjekker begge sider og kan tilbagekalde en verificering. Ændres beviset, mens anmodningen indsendes, erreasonproof_changed; indsend så anmodningen igen.- Andet workspace: ved
request_pendingnævnerworkspace(id,name) ogrequest_idden åbne anmodning, hvis du må åbne dens workspace; træk den tilbage der. Ellers er beggenull. Arkiveres workspacet, mens du indsender anmodningen, erreasonworkspace_archived; der indsendes intet. - Arkivering: når et workspace arkiveres, trækkes dets anmodninger under behandling tilbage (
withdrawn, i auditloggen med årsagenworkspace archived). Beviset er derefter frit igen, og du kan anmode om identifikatoren igen fra et andet workspace. - Bevis: så længe anmodningen er under behandling eller godkendt, kan filen hverken erstattes eller slettes (
409,reason: "gs1_verification_proof"). Efter afvisning, tilbagetrækning eller tilbagekaldelse er den fri igen. - Fjern: en verificeret identifikator kan ikke fjernes (
409,reason: "verified"). Kun qr3 ophæver verificeringen ved at tilbagekalde den.
Hvornår har jeg brug for hvad?
| Opgave | GS1 | qr3.app |
|---|---|---|
| Få egne GTIN’er/GLN’er | ✅ Medlemskab påkrævet | — |
| Validere GTIN-kontrolciffer | — | ✅ API + Dashboard |
| Generere QR-kode til produkt | — | ✅ |
| Oprette DPP i henhold til EU-forordning | — | ✅ |
| Opløse GS1 Digital Link | — | ✅ Resolver + /.well-known/gs1resolver |
| Registrere i EU-registret | Planlagt (Q4 2026) | Planlagt (Fase 4c) |
API-reference
POST /v1/gs1/identifiers— RegistrerGET /v1/gs1/identifiers— Vis listeDELETE /v1/gs1/identifiers/:id— FjernPOST /v1/gs1/validate— Valider (uden registrering, ingen godkendelse)POST /v1/gs1/verifications— Anmod om verificering (organisationsadministratorer)GET /v1/gs1/verifications— List anmodningerGET /v1/gs1/verifications/:id— Hent en anmodningPOST /v1/gs1/verifications/:id/withdraw— Træk en anmodning tilbage
Se API-dokumentation for detaljer.