> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getqr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QR-kodedata per type

> Dataformatet, et eksempel på forespørsel og hva som kan endres etter trykk, for hver av de 16 QR-kodetypene.

> [!NOTE]
>
> GetQR API-et er i beta og er tilgjengelig for utvalgte arbeidsområder. Detaljer kan endres før den generelle lanseringen.

Hver QR-kode har en `qrType`, og typen bestemmer hva `data` må inneholde. Denne veiledningen viser formatet for hver type, en body som fungerer, og hva du fortsatt kan endre etter at koden er trykt.

Eksemplene er body for [Opprett en QR-kode](https://docs.getqr.com/no/api/endpoints/qr-codes.md#opprett-en-qr-kode). Send dem slik:

```bash theme={null}
curl -X POST "https://getqr.com/api/v1/qrs" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "qrType": "website", "data": "https://example.com/menu", "title": "Menu" }'
```

## Alle typer i oversikt

| `qrType` | `data` | Kan endres etter trykk |
| - | - | - |
| [`website`](#website) | http(s)-URL | Ja |
| [`feedback`](#feedback) | http(s)-URL til skjemaet | Ja |
| [`payment`](#payment) | URL hos betalingsleverandøren | Ja |
| [`whatsapp`](#whatsapp) | `wa.me`-lenke | Ja |
| [`location`](#location) | Kart-URL | Ja |
| [`app`](#app-link) | Butikk-URL eller tom, pluss `link.ios` / `link.android` | Ja |
| [`email`](#email) | `mailto:`-URI | Ja |
| [`sms`](#sms) | `sms:`-URI | Ja |
| [`wifi`](#wifi) | `WIFI:`-payload | **Nei** |
| [`pdf`, `image`, `video`](#pdf-bilde-og-video) | Tom, med en `fileId` | Ja |
| [`vcard`](#vcard) | vCard 3.0-tekst | Ja |
| [`social`](#social-media) | JSON-streng | Ja |
| [`multilink`](#multi-link) | JSON-streng | Ja |
| [`event`](#event) | JSON-streng | Ja |

## Slik løses en QR-kode

Hver QR-kode er en kortlenke pluss en payload. To felt bærer innholdet:

| Felt | Hva det er |
| - | - |
| `link.url` | Hvor kortlenken sender den besøkende. Dette er det faktiske målet for alle typer unntatt `wifi`. |
| `data` | Typens payload, kontrollert mot `qrType`. Den lagres slik den ble sendt bare for `wifi`, `vcard`, `social`, `multilink`, `event` og `sms`. For alle andre typer leverer den bare `link.url`, og den lagrede `data` blir kortlenken. Les målet fra `url` i svaret. |

Regler for alle typer:

* **Standardverdier.** Ved oppretting blir en utelatt eller tom `link.url` satt til `data`, og du kan utelate hele `link`-objektet. Når begge sendes og er ulike, vinner `link.url`. Send dem like, eller send bare `data`.
* **Hva bildet koder.** Bildet koder kortlenken for alle typer unntatt `wifi`. Derfor kan du endre hvor en trykt kode fører, og skanningene registreres. En WiFi-QR-kode koder selve nettverket: du kan ikke endre den etter trykk, og skanningene registreres ikke.
* **Skjemaer.** `link.url` godtar bare `http:`, `https:`, `wifi:`, `mailto:`, `sms:` og `begin:`. Alt annet, også `geo:`, `smsto:`, `matmsg:` og `tel:`, gir `422 Invalid destination URL`, selv der `data` godtar det.
* **Tom data.** En tom `data` hopper over typekontrollen. For en videresendingstype må `link.url` da være satt, ellers gir kallet `400 Missing destination URL`.
* **Form.** Utover typekontrollen validerer ikke serveren payloaden. En JSON-type må bare kunne tolkes som et JSON-objekt, og et vCard må bare starte med `BEGIN:VCARD`.

> [!TIP]
>
> Grenser merket **Byggeren** nedenfor er det redigeringsverktøyet i dashbordet håndhever. API-et godtar payloader som ignorerer dem, men de kan vises merkelig på landingssiden eller i redigeringsverktøyet.

## Website

`qrType`: `"website"`. Veiledning for dashbordet: [Website-QR-kode](https://docs.getqr.com/no/qr-types/website.md).

| Felt | Virkemåte |
| - | - |
| `data` | En http(s)-URL. |
| `link.url` | Målet. Standard er `data`. |
| `fileId` | Ikke tillatt. |
| Koder | Kortlenken, som videresender til `link.url`. Skanninger registreres. |
| Etter trykk | Kan endres. Send `data` eller `link.url` for å flytte målet. Det holder med `data`. |

```json Request body theme={null}
{
  "qrType": "website",
  "data": "https://example.com/menu",
  "title": "Menu"
}
```

Feil:

* `422 Expected an http(s) URL, e.g. "https://example.com" for qrType "website".`
* `422 Invalid destination URL`

## Feedback

`qrType`: `"feedback"`. Veiledning for dashbordet: [Tilbakemeldings-QR-kode](https://docs.getqr.com/no/qr-types/feedback.md).

`data` er http(s)-URL-en til tilbakemeldingsskjemaet, for eksempel et Google-skjema eller en anmeldelsesside. Alt annet fungerer som for [Website](#website).

```json Request body theme={null}
{
  "qrType": "feedback",
  "data": "https://forms.gle/abc123"
}
```

## Payment

`qrType`: `"payment"`. Veiledning for dashbordet: [Betalings-QR-kode](https://docs.getqr.com/no/qr-types/payment.md).

`data` er betalings-URL-en hos leverandøren, for eksempel:

```text theme={null}
https://paypal.me/<user>/25EUR
```

Redigeringsverktøyet i dashbordet gjenkjenner disse vertene: `paypal.me`, `paypal.com/paypalme`, `cash.app`, `venmo.com`, `buy.stripe.com`, `stripe.com`, `square.link` og `payoneer.com`. For PayPal er beløpet det siste segmentet i banen. Alle andre http(s)-URL-er fungerer også, men redigeringsverktøyet deler dem ikke opp i leverandør og beløp. Alt annet fungerer som for [Website](#website).

```json Request body theme={null}
{
  "qrType": "payment",
  "data": "https://paypal.me/acme/25EUR"
}
```

## WhatsApp

`qrType`: `"whatsapp"`. Veiledning for dashbordet: [WhatsApp-QR-kode](https://docs.getqr.com/no/qr-types/whatsapp.md).

`data` er en `wa.me`-lenke: det internasjonale nummeret i sifre uten `+`, eventuelt med en forhåndsutfylt tekst.

```text theme={null}
https://wa.me/<digits>
https://wa.me/<digits>?text=<urlencoded>
```

Serveren sjekker bare at det er en http(s)-URL. Dashbordet leser også `api.whatsapp.com/send`-lenker. Alt annet fungerer som for [Website](#website).

```json Request body theme={null}
{
  "qrType": "whatsapp",
  "data": "https://wa.me/14155550123?text=Hi%20there"
}
```

## Location

`qrType`: `"location"`. Veiledning for dashbordet: [Steds-QR-kode](https://docs.getqr.com/no/qr-types/location.md).

`data` er en kart-URL. Bruk dette formatet for at QR-koden fortsatt skal kunne redigeres i dashbordet (`query_place_id` er valgfritt):

```text theme={null}
https://www.google.com/maps/search/?api=1&query=<address>&query_place_coords=<lat>,<lng>&query_place_id=<id>
```

Alle andre http(s)-URL-er videresender også. En `geo:`-URI består `data`-kontrollen, men avvises som mål, så ikke bruk den. Alt annet fungerer som for [Website](#website).

```json Request body theme={null}
{
  "qrType": "location",
  "data": "https://www.google.com/maps/search/?api=1&query=Golden+Gate+Bridge&query_place_coords=37.8199,-122.4783"
}
```

## App Link

`qrType`: `"app"`. Veiledning for dashbordet: [App Link-QR-kode](https://docs.getqr.com/no/qr-types/app-link.md).

| Felt | Virkemåte |
| - | - |
| `link.ios`, `link.android` | URL-er til App Store og Google Play. Besøkende på iOS går til `ios`, besøkende på Android til `android`. Disse går foran alt annet ved skanning. |
| `link.url` | Reserve for andre enheter. Standard er `data`, deretter `ios` eller `android`. |
| `data` | En http(s)-URL (dashbordet sender butikk-URL-en), eller tom. Minst én av `link.ios`, `link.android`, `link.url` eller `data` må være satt, ellers gir kallet `400 Missing destination URL`. |
| `fileId` | Ikke tillatt. |
| Koder | Kortlenken. Skanninger registreres. |
| Etter trykk | Kan endres. `link.ios` og `link.android` brukes uavhengig av hverandre, hver bare når den sendes. `null` fjerner en av dem. Du trenger ikke sende `qrType` på nytt. Bytter du til en annen type, fjernes begge butikklenkene. |

```json Request body theme={null}
{
  "qrType": "app",
  "data": "https://apps.apple.com/app/id123456789",
  "link": {
    "ios": "https://apps.apple.com/app/id123456789",
    "android": "https://play.google.com/store/apps/details?id=com.acme.app"
  }
}
```

Feil:

* `422 Invalid URL`
* `400 Missing destination URL`

## Email

`qrType`: `"email"`. Veiledning for dashbordet: [E-post-QR-kode](https://docs.getqr.com/no/qr-types/email.md).

```text theme={null}
mailto:<address>?subject=<subject>&body=<body>
```

| Felt | Virkemåte |
| - | - |
| `data` | En `mailto:`-URI med valgfritt emne og brødtekst. Kod mellomrom som `%20`: dashbordet skriver dem som `+`, og det leser ikke alle e-postapper som mellomrom. `matmsg:` avvises som mål. |
| `link.url` | `mailto:`-URI-en. Standard er `data`. |
| `fileId` | Ikke tillatt. |
| Koder | Kortlenken, som åpner en side som sender videre til e-postappen. |
| Etter trykk | Kan endres. Send `data` eller `link.url` for å endre meldingen. Det holder med `data`. |

```json Request body theme={null}
{
  "qrType": "email",
  "data": "mailto:hi@example.com?subject=Hello&body=Hi%20there"
}
```

Feil:

* `422 Expected a mailto URI, e.g. "mailto:hi@example.com?subject=Hello" for qrType "email".`

## SMS

`qrType`: `"sms"`. Veiledning for dashbordet: [SMS-QR-kode](https://docs.getqr.com/no/qr-types/sms.md).

```text theme={null}
sms:+<digits>
sms:+<digits>?body=<encodeURIComponent(text)>
```

| Felt | Virkemåte |
| - | - |
| `data` | En `sms:`-URI med valgfri brødtekst. Dashbordet leser bare nøyaktig denne formen. `smsto:` avvises som mål. |
| `link.url` | `sms:`-URI-en. Standard er `data`. |
| `fileId` | Ikke tillatt. |
| Koder | Kortlenken, som åpner en side som sender videre til meldingsappen. |
| Etter trykk | Kan endres. Send `data` eller `link.url` for å endre meldingen. Det holder med `data`. |

```json Request body theme={null}
{
  "qrType": "sms",
  "data": "sms:+14155550123?body=Table%2012"
}
```

Feil:

* `422 Expected an SMS URI, e.g. "sms:+14155550123?body=Hello" for qrType "sms".`

## WiFi

`qrType`: `"wifi"`. Veiledning for dashbordet: [WiFi-QR-kode](https://docs.getqr.com/no/qr-types/wifi.md).

```text theme={null}
WIFI:T:<WPA|WEP|nopass>;S:<ssid>;P:<password>;H:<true|false>;;
```

| Felt | Virkemåte |
| - | - |
| `data` | Påkrevd. Behold rekkefølgen `T`, `S`, `P`, `H`: redigeringsverktøyet og listen i dashbordet er avhengige av den. Escape `\`, `;`, `"` og `:` i SSID og passord med en omvendt skråstrek. For et åpent nettverk bruker du `T:nopass` med en tom `P:`. Skannere avviser `T:none`. **Byggeren:** SSID påkrevd, passord på minst 8 tegn med mindre `nopass`. |
| `link.url` | Brukes ikke ved skanning. Standard er `data`. |
| `fileId` | Ikke tillatt. |
| Koder | Den rå `WIFI:`-payloaden, ikke kortlenken. Skanninger registreres ikke. |
| Etter trykk | **Kan ikke endres.** Ny `data` endrer bare fremtidige nedlastinger. Trykte koder beholder det gamle nettverket. |

```json Request body theme={null}
{
  "qrType": "wifi",
  "data": "WIFI:T:WPA;S:Cafe Guest;P:espresso42;H:false;;"
}
```

Feil:

* `422 Expected a Wi-Fi payload, e.g. "WIFI:T:WPA;S:MyNetwork;P:secret;H:false;" for qrType "wifi".`

> [!WARNING]
>
> Ikke bytt type på en trykt WiFi-QR-kode. De trykte kodene beholder det gamle nettverket.

## PDF, bilde og video

`qrType`: `"pdf"`, `"image"` eller `"video"`. Veiledninger for dashbordet: [PDF](https://docs.getqr.com/no/qr-types/pdf.md), [Image](https://docs.getqr.com/no/qr-types/image.md), [Video](https://docs.getqr.com/no/qr-types/video.md).

| Felt | Virkemåte |
| - | - |
| `fileId` | Filen. Last den opp med det target som passer til typen: `pdf`, `image` eller `video`. Med en `fileId` blir `link.url` filens URL, og alt du sender i den, ignoreres. |
| `data` | Hva som helst unntatt en annen types payload (`WIFI:`, `BEGIN:VCARD`, `sms:`, `mailto:`, et JSON-objekt). Tom er greit. |
| `link.url` | Uten en `fileId` brukes `link.url` (eller `data`) som eksternt mål. Det fungerer, men dashbordet viser da ingen fil. |
| Koder | Kortlenken, som videresender rett til filen. En PDF åpnes som rå fil, ikke i en visningsside. |
| Etter trykk | Kan endres. Send en ny `fileId` for å erstatte filen. Den gamle frigjøres. |

Én fil per QR-kode: PDF-pakker og bildegallerier er ikke tilgjengelige i API-et. Se [Ikke støttet via API-et](#ikke-støttet-via-api-et).

```json pdf theme={null}
{
  "qrType": "pdf",
  "data": "",
  "fileId": "file_9f8e7d6c5b4a",
  "title": "Brochure"
}
```

```json image theme={null}
{
  "qrType": "image",
  "data": "",
  "fileId": "file_3c2b1a0f9e8d",
  "title": "Floor plan"
}
```

```json video theme={null}
{
  "qrType": "video",
  "data": "",
  "fileId": "file_5e4d3c2b1a0f",
  "title": "Product demo"
}
```

Se [Filer](https://docs.getqr.com/no/api/endpoints/files.md) for hvordan du laster opp filen og får `fileId`.

## vCard

`qrType`: `"vcard"`. Veiledning for dashbordet: [vCard-QR-kode](https://docs.getqr.com/no/qr-types/vcard.md).

| Felt | Virkemåte |
| - | - |
| `data` | Påkrevd. vCard 3.0-tekst som starter med `BEGIN:VCARD`, med linjer adskilt av `\r\n` (`\n` fungerer også). |
| `fileId` | Valgfritt profilbilde (target `logo`), brukes når `data` ikke har noen `PHOTO`- eller `X-GETQR-IMAGE-FILEID`-linje. |
| `link.url` | Ignoreres og erstattes med den hostede siden. Utelat den. |
| Koder | Kortlenken, som åpner den hostede kontaktsiden med en nedlasting for å lagre kontakten (`.vcf`). |
| Etter trykk | Kan endres. Send ny `data` for å oppdatere siden. |

Landingssiden og redigeringsverktøyet leser bare linjeformene nedenfor. Andre varianter, som `TEL;CELL:` eller `EMAIL;TYPE=INTERNET:`, lagres, men vises ikke på siden.

* `N:<last>;<first>;;;`: etternavn og fornavn. **Byggeren:** begge påkrevd, opptil 40 tegn.
* `FN:<first> <last>`: leses ikke av siden. Etiketten i listen i dashbordet kommer herfra.
* `ORG:<company>` og `TITLE:<role>`: firma og stilling. **Byggeren:** opptil 40 tegn.
* `TEL;TYPE=HOME:`, `TEL;TYPE=CELL:`, `TEL;TYPE=WORK:`, `TEL;TYPE=FAX:`: telefon-, mobil-, jobb- og faksnumre (`+` og sifre).
* `EMAIL:<email>`: e-postadresse.
* `URL:<url>`: nettsted.
* `NOTE:<text>`: sammendrag. Escape `\\`, `\n`, `\;` og `\,`. **Byggeren:** opptil 200 tegn.
* `ADR:;;<street>;<city>;<state>;<zip>;<country>`: adresse.
* `X-SOCIALPROFILE;TYPE=<platform>:<url>` eller `URL;TYPE=<PLATFORM>:<url>`: sosiale lenker, én linje per plattform.
* `PHOTO;VALUE=URI:<url>`: URL til profilbilde. Går foran enhver fil-ID.
* `X-GETQR-IMAGE-FILEID:<fileId>`: profilbilde (target `logo`).
* `X-GETQR-PAGE-LOGO-FILEID:<fileId>`: sidelogo (target `logo`).
* `X-GETQR-LANDING-THEME:p|<0-4>` eller `X-GETQR-LANDING-THEME:c|#RRGGBB|#RRGGBB|#RRGGBB`: tema for landingssiden, enten en indeks for et ferdig tema (0 til 4) eller egne farger for bakgrunn, knapper og ikoner.

Sosiale plattformer: `facebook`, `whatsapp`, `instagram`, `youtube`, `tiktok`, `messenger`, `snapchat`, `linkedin`, `x`, `reddit`, `pinterest`, `telegram`, `wechat`, `viber`, `line`.

```json Request body theme={null}
{
  "qrType": "vcard",
  "data": "BEGIN:VCARD\r\nVERSION:3.0\r\nN:Doe;Jane;;;\r\nFN:Jane Doe\r\nORG:Acme\r\nTITLE:CTO\r\nTEL;TYPE=CELL:+14155550123\r\nEMAIL:jane@acme.com\r\nURL:https://acme.com\r\nX-GETQR-LANDING-THEME:p|0\r\nEND:VCARD",
  "title": "Jane Doe"
}
```

Feil:

* `422 Expected a vCard payload starting with "BEGIN:VCARD" for qrType "vcard".`

## Social Media

`qrType`: `"social"`. Veiledning for dashbordet: [Social Media-QR-kode](https://docs.getqr.com/no/qr-types/social.md).

| Felt | Virkemåte |
| - | - |
| `data` | Påkrevd. En JSON-streng som koder et objekt. Bygg den med `JSON.stringify`. |
| `fileId` | Valgfritt profilbilde på toppnivå (target `logo`). |
| `link.url` | Ignoreres og erstattes med den hostede siden. Utelat den. |
| Koder | Kortlenken, som åpner den hostede sosiale siden. |
| Etter trykk | Kan endres. Send ny `data` for å oppdatere siden. |

Felt i `data`:

| Felt | Type | Merknader |
| - | - | - |
| `firstName` | string | Sidens overskrift og det eneste navnet som vises. **Byggeren:** påkrevd, opptil 40. |
| `lastName` | string | Opptil 40. Vises ikke på siden. |
| `summary` | string | Opptil 200. |
| `socialLinks` | `{ platform, url }[]` | `platform` er en av [de sosiale plattformene for vCard](#vcard). **Byggeren:** hver plattform bare én gang. |
| `customItems` | `{ name, url, logoFileId }[]` | **Byggeren:** `name` opptil 40, en http(s)-`url` og en `logoFileId`. Minst én sosial lenke eller ett eget element totalt. |
| `fileId` | string | Profilbilde (target `logo`). `fileId` på toppnivå er reserven. |
| `imageUrl` | string | Ekstern URL til profilbilde, brukes bare når det ikke finnes noen fil-ID. |
| `pageLogoFileId` | string | Sidelogo (target `logo`). |
| `landingThemeMode` | `"preset" \| "custom"` | Standard er `preset`. |
| `landingPresetIndex` | 0–4 | Standard er 0. |
| `landingCustomBg`, `landingCustomButton`, `landingCustomIcon` | `#RRGGBB` | Brukes når modusen er `custom`. |

```json Request body theme={null}
{
  "qrType": "social",
  "data": "{\"firstName\":\"Acme Coffee\",\"summary\":\"Follow us\",\"socialLinks\":[{\"platform\":\"instagram\",\"url\":\"https://instagram.com/acme\"}],\"customItems\":[]}"
}
```

Feil:

* `422 Expected a JSON object describing the social profile page for qrType "social".`

## Multi-Link

`qrType`: `"multilink"`. Veiledning for dashbordet: [Multi-Link-QR-kode](https://docs.getqr.com/no/qr-types/multi-link.md).

| Felt | Virkemåte |
| - | - |
| `data` | Påkrevd. En JSON-streng som koder et objekt. |
| `fileId` | Valgfritt profilbilde på toppnivå (target `logo`). |
| `link.url` | Ignoreres og erstattes med den hostede siden. Utelat den. |
| Koder | Kortlenken, som åpner den hostede multilenkesiden. |
| Etter trykk | Kan endres. Send ny `data` for å oppdatere siden. |

Feltene i `data` er de samme som for [Social Media](#social-media), bortsett fra at `firstName`, `lastName` og `summary` erstattes av:

| Felt | Type | Merknader |
| - | - | - |
| `title` | string | Sidens overskrift. **Byggeren:** påkrevd, opptil 40. |
| `description` | string | Opptil 200. |

I `customItems` er `logoFileId` valgfri: et reserveikon vises. **Byggeren:** minst én sosial lenke eller ett eget element som ikke er tomt.

```json Request body theme={null}
{
  "qrType": "multilink",
  "data": "{\"title\":\"Acme links\",\"description\":\"Everything in one place\",\"socialLinks\":[],\"customItems\":[{\"name\":\"Shop\",\"url\":\"https://acme.com/shop\",\"logoFileId\":\"\"}]}"
}
```

Feil:

* `422 Expected a JSON object describing the multi-link page for qrType "multilink".`

## Event

`qrType`: `"event"`. Veiledning for dashbordet: [Arrangements-QR-kode](https://docs.getqr.com/no/qr-types/event.md).

| Felt | Virkemåte |
| - | - |
| `data` | Påkrevd. En JSON-streng som koder et objekt. Ukjente eller ugyldige verdier faller tilbake til standardverdier. |
| `fileId` | Valideres (target `logo`) og lagres, men arrangementssiden leser forsidebildet bare fra `data.fileId`. Legg ID-en til forsidebildet i payloaden. |
| `link.url` | Ignoreres og erstattes med den hostede siden. Utelat den. |
| Koder | Kortlenken, som åpner den hostede arrangementssiden med en `.ics`-nedlasting. |
| Etter trykk | Kan endres. Send ny `data` for å oppdatere siden. |

Felt i `data`:

| Felt | Type | Merknader |
| - | - | - |
| `name` | string | **Byggeren:** påkrevd. |
| `eventType` | string | En av arrangementstypene nedenfor, eller tom. |
| `start`, `end` | `"YYYY-MM-DDTHH:mm"` | Lokalt klokkeslett i `timezone`. **Byggeren:** begge påkrevd, slutt etter start. |
| `timezone` | IANA, for eksempel `"Europe/Berlin"` | Plasserer start og slutt i `.ics`-filen. Send den alltid: med en tom eller ukjent sone tolker `.ics` tidene som UTC. |
| `street`, `zip`, `city`, `state`, `country` | string | **Byggeren:** `city` og `country` påkrevd, opptil 40 hver. |
| `facilities` | string\[] | ID-er fra listen nedenfor. Ukjente ID-er forkastes. |
| `notes` | string | Fritekst. |
| `fileId` | string | Forsidebilde (target `logo`). |
| `pageLogoFileId` | string | Sidelogo (target `logo`). |
| `organizerName`, `organizerEmail`, `mobile`, `work` | string | `mobile` og `work` opptil 40. |
| `socialLinks` | `{ platform, url }[]` | [De sosiale plattformene for vCard](#vcard), pluss `website`. |
| `ticketsUrl` | http(s)-URL | Lenke for å kjøpe billetter. |
| `ticketsLabel` | string | Opptil 20 tegn. Lengre etiketter kuttes. Tom viser standardetiketten. |

> [accordion] Arrangementstyper
>
> `conference`, `seminar`, `workshop`, `training`, `webinar`, `meetup`, `networking`, `corporateEvent`, `productLaunch`, `tradeShow`, `jobFair`, `fundraiser`, `charity`, `wedding`, `engagement`, `birthday`, `anniversary`, `babyShower`, `graduation`, `reunion`, `party`, `religious`, `funeralMemorial`, `ceremony`, `concert`, `festival`, `clubNight`, `theater`, `comedy`, `filmScreening`, `exhibition`, `sports`, `tournament`, `raceMarathon`, `fitnessClass`, `foodDrink`, `market`, `openHouse`, `community`, `schoolEvent`, `kids`, `travelTour`

> [accordion] Fasiliteter
>
> | Gruppe | ID-er |
> | - | - |
> | Inngang | `freeEntry`, `idRequired`, `invitationOnly`, `plusOneAllowed`, `reEntryAllowed` |
> | Alder (velg én) | `adultsOnly`, `age18Plus`, `age21Plus`, `kidsWelcome` |
> | På stedet | `parking`, `publicTransport`, `shuttle`, `wheelchairAccess`, `evCharging`, `wifi`, `foodDrinks`, `alcoholServed`, `atm`, `coatCheck`, `pool`, `phoneCharging`, `firstAid`, `wc` |
> | Regler | `petsAllowed`, `noPets`, `smokingArea`, `noSmoking`, `noPhotos` |
> | Antrekk (velg én) | `dressCasual`, `dressSmartCasual`, `dressBusiness`, `dressCocktail`, `dressThemed` |

```json Request body theme={null}
{
  "qrType": "event",
  "data": "{\"name\":\"Launch party\",\"eventType\":\"productLaunch\",\"start\":\"2026-11-20T18:00\",\"end\":\"2026-11-20T22:00\",\"timezone\":\"Europe/Berlin\",\"city\":\"Berlin\",\"country\":\"Germany\",\"facilities\":[\"freeEntry\"],\"socialLinks\":[],\"ticketsUrl\":\"https://acme.com/tickets\"}"
}
```

Feil:

* `422 Expected a JSON object describing the event page for qrType "event".`

## Filer i QR-koder

Registrer en fil med [Filer](https://docs.getqr.com/no/api/endpoints/files.md), last den opp, og send deretter `fileId`. Bruk det target som passer til bruken:

* **`pdf`, `image`, `video`.** Innholdet i en PDF-, bilde- eller video-QR-kode.
* **`logo`.** Profilbilder, sidelogoer, ikoner for egne lenker og logoer i midten.

Filer som aldri knyttes til en QR-kode, slettes etter en frist.

`fileId`-feil, som returneres ved oppretting og ved `PATCH` når `fileId` sendes:

| Status | Årsak |
| - | - |
| `422 unprocessable_entity` | Typen tar ingen fil. Bare `pdf`, `image`, `video`, `vcard`, `social`, `multilink` og `event` godtar en. |
| `404 not_found` | Ingen fil med denne ID-en. Registrer den først med `POST /api/v1/files`. |
| `422 unprocessable_entity` | Filen ble lastet opp for et annet target. For eksempel en `image`-opplasting på en PDF-QR-kode, eller en `pdf`-, `image`- eller `video`-opplasting brukt som vCard-bilde. |
| `422 unprocessable_entity` | Filen er registrert, men opplastingen til `uploadUrl` ble aldri fullført. |

Fil-ID-er inne i en payload (`fileId`, `pageLogoFileId`, `customItems[].logoFileId`, `X-GETQR-*-FILEID`-linjer) valideres ikke. De vises bare når de er lastet opp med target `logo`. QR-koden gjør krav på dem, så oppryddingen lar dem være.

## Bytte type

Du kan endre `qrType` med [Oppdater en QR-kode](https://docs.getqr.com/no/api/endpoints/qr-codes.md#oppdater-en-qr-kode). Send `data` som passer til den nye typen: den lagrede payloaden tilhører den gamle typen, så et bytte uten den avvises.

Etter en oppdatering bestemmes målet i denne rekkefølgen:

1. `vcard`, `social`, `multilink`, `event`: alltid den hostede siden.
2. En PDF-pakke eller et bildegalleri laget i dashbordet: landingssiden til den.
3. `pdf`, `image`, `video`: filens URL (en ny `fileId`, ellers den lagrede).
4. `link.url`, når den sendes.
5. Endret `data`.
6. Den lagrede URL-en.

Dette gjør hvert bytte:

* **Bort fra `pdf`, `image` eller `video`.** `fileId` og eventuell pakke eller galleri fjernes.
* **Til `pdf`, `image` eller `video`.** Send også `fileId`, ellers gjenbrukes den lagrede, som kan være et vCard-bilde.
* **Bort fra `app`.** Appnavnet, `link.ios` og `link.android` fjernes, så telefoner følger det nye målet.
* **Til `wifi`.** Bildet bytter til den rå payloaden. Koder som allerede er trykt, inneholder fortsatt kortlenken, som nå videresender til en `wifi:`-URL.
* **Bort fra `wifi`.** Trykte koder beholder det gamle nettverket.
* **Til `vcard`, `social`, `multilink` eller `event`.** Kortlenken pekes mot den nye hostede siden.
* **Bort fra `vcard`, `social`, `multilink` eller `event`.** Send den nye `data`. Målet følger den.

Statiske QR-koder laget i dashbordet har ingen kortlenke, så å endre `link.url` for dem gir `422`.

## Ikke støttet via API-et

Disse funksjonene i dashbordet er ikke en del av v1-API-et. Ukjente felt forkastes uten feil, så det har ingen effekt å sende dem.

| Felt | Beskrivelse |
| - | - |
| `appName` | Visningsnavnet til en App Link-QR-kode. App Link-QR-koder opprettet via API-et viser butikk-URL-en sin i listen i dashbordet. |
| `isStatic` | En statisk QR-kode uten kortlenke. Hver QR-kode API-et oppretter, har en, så den kan redigeres og spores etter trykk (unntatt `wifi`). |
| `pdfBundle` | En PDF-QR-kode med to eller flere filer. API-et oppretter bare PDF-QR-koder med én fil. |
| `imageGallery` | En Image-QR-kode med to eller flere bilder. API-et oppretter bare QR-koder med ett bilde. |

Pakker og gallerier laget i dashbordet kan fortsatt hentes, settes på pause og slettes via API-et, men filene deres kan ikke endres via det.

## Vanlige problemer

> [accordion] 422 Invalid destination URL
>
> `link.url` bruker et skjema som kortlenken ikke kan videresende til, for eksempel `geo:`, `smsto:`, `matmsg:` eller `tel:`. Bruk formatene på denne siden.

> [accordion] 400 Missing destination URL
>
> `data` er tom, og det finnes ingen `link.url`. For `app` setter du minst én av `link.ios`, `link.android`, `link.url` eller `data`.

> [accordion] data i svaret er en kortlenke, ikke URL-en min
>
> For lenketyper er den lagrede `data` kortlenken. Les målet fra `url`.

> [accordion] Landingssiden mangler detaljer fra payloaden min
>
> Siden leser bare feltene og linjeformene som er oppført for typen. Andre felt lagres, men vises ikke.

## Neste steg

> [card] [QR-koder](https://docs.getqr.com/no/api/endpoints/qr-codes.md)

> [card] [Filer](https://docs.getqr.com/no/api/endpoints/files.md)

> [card] [Tilpasning](https://docs.getqr.com/no/api/guides/customization.md)

> [card] [Tilgangsregler](https://docs.getqr.com/no/api/guides/access-rules.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.