---
title: "Update QR code"
method: PATCH
path: "/qr-code/{id}"
tags: ["QR Codes"]
---

# Update QR code

`PATCH /qr-code/{id}`

## Request

- Base URL: `https://api.qrcodly.de/api/v1`
- URL: `https://api.qrcodly.de/api/v1/qr-code/{id}`
- Auth: HTTP bearer

Partially updates a QR code. You can change the name, content, or styling configuration. For dynamic QR codes, updating the URL content also updates the linked short URL destination. Only the owner can update their QR codes.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `name` string, nullable: User-defined name for the QR code (max 50 characters)
  - `content` union: QR code content as a discriminated union — the "type" field determines which data schema applies
    - object
      - `type` 'url', required
      - `data` object, required
        - `url` string, uri, required: The target URL that the QR code points to
        - `isDynamic` boolean: If true, creates a dynamic QR code with a short URL redirect so the destination can be changed later
    - object
      - `type` 'text', required
      - `data` string, required
    - object
      - `type` 'wifi', required
      - `data` object, required
        - `ssid` string, required: WiFi network name (SSID)
        - `password` string, required: WiFi password (leave empty for open networks)
        - `encryption` 'WPA' | 'WEP' | 'nopass', required: WiFi encryption type: WPA, WEP, or nopass (open)
    - object
      - `type` 'vCard', required
      - `data` object, required
        - `title` string: Job title or honorific (e.g. Dr., Mr.)
        - `firstName` string: First name
        - `lastName` string: Last name
        - `email` string, email
        - `emailPrivate` string, email
        - `emailBusiness` string, email
        - `phone` string
        - `phonePrivate` string
        - `phoneMobile` string
        - `phoneBusiness` string
        - `fax` string
        - `company` string: Company or organization name
        - `job` string: Job title or position
        - `streetPrivate` string: Private street address
        - `cityPrivate` string: Private city
        - `zipPrivate` string: Private postal / ZIP code
        - `statePrivate` string: Private state or province
        - `countryPrivate` string: Private country
        - `streetBusiness` string: Business street address
        - `cityBusiness` string: Business city
        - `zipBusiness` string: Business postal / ZIP code
        - `stateBusiness` string: Business state or province
        - `countryBusiness` string: Business country
        - `website` string, uri: Personal or company website URL
        - `note` string: Free-form note or additional information
        - `isDynamic` boolean: If true, creates a dynamic vCard QR code with an editable short URL
    - object
      - `type` 'email', required
      - `data` object, required
        - `email` string, email, required: Recipient email address
        - `subject` string: Pre-filled email subject line
        - `body` string: Pre-filled email body text
    - object
      - `type` 'location', required
      - `data` object, required
        - `address` string, required: Human-readable address (e.g. "1600 Amphitheatre Parkway, Mountain View, CA")
        - `latitude` number: GPS latitude coordinate (-90 to 90)
        - `longitude` number: GPS longitude coordinate (-180 to 180)
    - object
      - `type` 'event', required
      - `data` object, required
        - `title` string, required: Event title or name
        - `description` string: Event description or details
        - `location` string: Event location or venue
        - `url` string, uri: URL with more information about the event
        - `startDate` string, date-time, required: Event start date and time as ISO 8601 string (e.g. "2025-06-15T14:00:00Z")
        - `endDate` string, date-time, required: Event end date and time as ISO 8601 string (must be after startDate)
    - object
      - `type` 'epc', required
      - `data` object, required
        - `name` string, required: Beneficiary name (payment recipient)
        - `iban` string, required: IBAN of the beneficiary (e.g. "DE89370400440532013000")
        - `bic` string: BIC/SWIFT code of the beneficiary bank
        - `amount` number: Payment amount in EUR
        - `purpose` string: Payment reference or purpose text
  - `config` object: QR code visual styling configuration (colors, shapes, dimensions, embedded image)
    - `width` number, required: QR code width in pixels
    - `height` number, required: QR code height in pixels
    - `margin` number, required: Quiet zone margin around the QR code in pixels
    - `image` string: Base64-encoded logo image to embed in the center of the QR code. Max size 1 MB.
    - `imageOptions` object, required: Options for the embedded logo image
      - `hideBackgroundDots` boolean, required: Whether to hide QR code dots behind the embedded logo image
    - `dotsOptions` object, required: Styling for the QR code data dots
      - `type` 'dots' | 'rounded' | 'classy' | 'classy-rounded' | 'square' | 'extra-rounded', required: Shape style of the QR code data dots: dots, rounded, classy, classy-rounded, square, or extra-rounded
      - `style` union, required: Color or gradient for the data dots
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
    - `cornersSquareOptions` object, required: Styling for the three corner squares (finder patterns)
      - `type` 'dot' | 'square' | 'extra-rounded', required: Shape style of the corner squares: dot, square, or extra-rounded
      - `style` union, required: Color or gradient for the corner squares
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
    - `cornersDotOptions` object, required: Styling for the dots inside the corner squares
      - `type` 'dot' | 'square', required: Shape style of the corner dots: dot or square
      - `style` union, required: Color or gradient for the corner dots
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
    - `backgroundOptions` object, required: QR code background styling
      - `style` union, required: Background color or gradient
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required

## Response `200`

Default Response

- object
  - `id` string, uuid, required: Unique identifier (UUID v4)
  - `createdAt` string, date-time, required: Timestamp when the resource was created (ISO 8601)
  - `updatedAt` string, date-time, nullable, required: Timestamp when the resource was last updated (ISO 8601), or null if never updated
  - `name` string, nullable, required: User-defined name for the QR code (max 50 characters)
  - `config` object, required: QR code visual styling configuration (colors, shapes, dimensions, embedded image)
    - `width` number, required: QR code width in pixels
    - `height` number, required: QR code height in pixels
    - `margin` number, required: Quiet zone margin around the QR code in pixels
    - `image` string: Base64-encoded logo image to embed in the center of the QR code. Max size 1 MB.
    - `imageOptions` object, required: Options for the embedded logo image
      - `hideBackgroundDots` boolean, required: Whether to hide QR code dots behind the embedded logo image
    - `dotsOptions` object, required: Styling for the QR code data dots
      - `type` 'dots' | 'rounded' | 'classy' | 'classy-rounded' | 'square' | 'extra-rounded', required: Shape style of the QR code data dots: dots, rounded, classy, classy-rounded, square, or extra-rounded
      - `style` union, required: Color or gradient for the data dots
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
    - `cornersSquareOptions` object, required: Styling for the three corner squares (finder patterns)
      - `type` 'dot' | 'square' | 'extra-rounded', required: Shape style of the corner squares: dot, square, or extra-rounded
      - `style` union, required: Color or gradient for the corner squares
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
    - `cornersDotOptions` object, required: Styling for the dots inside the corner squares
      - `type` 'dot' | 'square', required: Shape style of the corner dots: dot or square
      - `style` union, required: Color or gradient for the corner dots
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
    - `backgroundOptions` object, required: QR code background styling
      - `style` union, required: Background color or gradient
        - object
          - `type` 'hex', required
          - `value` string, required
        - object
          - `type` 'rgba', required
          - `value` string, required
        - object
          - `type` 'gradient', required
          - `gradientType` 'radial' | 'linear', required
          - `rotation` number, nullable, required
          - `colorStops` object[], required
            - `offset` number, required
            - `color` string, required
  - `content` union, required: QR code content as a discriminated union — the "type" field determines which data schema applies
    - object
      - `type` 'url', required
      - `data` object, required
        - `url` string, uri, required: The target URL that the QR code points to
        - `isDynamic` boolean: If true, creates a dynamic QR code with a short URL redirect so the destination can be changed later
    - object
      - `type` 'text', required
      - `data` string, required
    - object
      - `type` 'wifi', required
      - `data` object, required
        - `ssid` string, required: WiFi network name (SSID)
        - `password` string, required: WiFi password (leave empty for open networks)
        - `encryption` 'WPA' | 'WEP' | 'nopass', required: WiFi encryption type: WPA, WEP, or nopass (open)
    - object
      - `type` 'vCard', required
      - `data` object, required
        - `title` string: Job title or honorific (e.g. Dr., Mr.)
        - `firstName` string: First name
        - `lastName` string: Last name
        - `email` string, email
        - `emailPrivate` string, email
        - `emailBusiness` string, email
        - `phone` string
        - `phonePrivate` string
        - `phoneMobile` string
        - `phoneBusiness` string
        - `fax` string
        - `company` string: Company or organization name
        - `job` string: Job title or position
        - `streetPrivate` string: Private street address
        - `cityPrivate` string: Private city
        - `zipPrivate` string: Private postal / ZIP code
        - `statePrivate` string: Private state or province
        - `countryPrivate` string: Private country
        - `streetBusiness` string: Business street address
        - `cityBusiness` string: Business city
        - `zipBusiness` string: Business postal / ZIP code
        - `stateBusiness` string: Business state or province
        - `countryBusiness` string: Business country
        - `website` string, uri: Personal or company website URL
        - `note` string: Free-form note or additional information
        - `isDynamic` boolean: If true, creates a dynamic vCard QR code with an editable short URL
    - object
      - `type` 'email', required
      - `data` object, required
        - `email` string, email, required: Recipient email address
        - `subject` string: Pre-filled email subject line
        - `body` string: Pre-filled email body text
    - object
      - `type` 'location', required
      - `data` object, required
        - `address` string, required: Human-readable address (e.g. "1600 Amphitheatre Parkway, Mountain View, CA")
        - `latitude` number: GPS latitude coordinate (-90 to 90)
        - `longitude` number: GPS longitude coordinate (-180 to 180)
    - object
      - `type` 'event', required
      - `data` object, required
        - `title` string, required: Event title or name
        - `description` string: Event description or details
        - `location` string: Event location or venue
        - `url` string, uri: URL with more information about the event
        - `startDate` string, date-time, required: Event start date and time as ISO 8601 string (e.g. "2025-06-15T14:00:00Z")
        - `endDate` string, date-time, required: Event end date and time as ISO 8601 string (must be after startDate)
    - object
      - `type` 'epc', required
      - `data` object, required
        - `name` string, required: Beneficiary name (payment recipient)
        - `iban` string, required: IBAN of the beneficiary (e.g. "DE89370400440532013000")
        - `bic` string: BIC/SWIFT code of the beneficiary bank
        - `amount` number: Payment amount in EUR
        - `purpose` string: Payment reference or purpose text
  - `qrCodeData` string, nullable, required: Raw data string encoded in the QR code
  - `previewImage` string, nullable, required: URL to a preview image of the rendered QR code
  - `createdBy` string, nullable, required: User ID of the QR code owner
  - `shortUrl` object, nullable, required: Linked short URL for dynamic QR codes, or null for static QR codes
    - `id` string, uuid, required: Unique identifier (UUID v4)
    - `createdAt` string, date-time, required: Timestamp when the resource was created (ISO 8601)
    - `updatedAt` string, date-time, nullable, required: Timestamp when the resource was last updated (ISO 8601), or null if never updated
    - `shortCode` string, required: Unique 5-character short code (e.g. "Ab3xZ")
    - `name` string, nullable, required: User-defined name for the short URL (max 50 characters)
    - `destinationUrl` string, uri, nullable, required: The target URL that the short URL redirects to
    - `qrCodeId` string, uuid, nullable, required: ID of the linked QR code, or null for standalone short URLs
    - `customDomainId` string, uuid, nullable, required: ID of the custom domain used for this short URL, or null for the default domain
    - `isActive` boolean, required: Whether the short URL is currently active and redirecting
    - `createdBy` string, required: User ID of the short URL owner
    - `deletedAt` string, date-time, nullable, required: Soft-delete timestamp, or null if the short URL is active
    - `safetyStatus` 'unchecked' | 'clean' | 'blocked', required: Result of the destination safety screening. "blocked" means we disabled the link and the owner cannot re-enable it
    - `safetyBlockedAt` string, date-time, nullable, required: When the link was blocked for safety reasons, or null
    - `safetyThreatTypes` string, nullable, required: Comma-separated Google Web Risk threat types behind the block, or null
  - `tags` object[], required: Tags assigned to this QR code
    - `id` string, uuid, required: Unique identifier (UUID v4)
    - `createdAt` string, date-time, required: Timestamp when the resource was created (ISO 8601)
    - `updatedAt` string, date-time, nullable, required: Timestamp when the resource was last updated (ISO 8601), or null if never updated
    - `name` string, required: Tag display name (max 32 characters)
    - `color` string, required: Tag color as hex code (e.g. "#FF5733")
    - `createdBy` string, required: User ID of the tag owner
    - `qrCodeCount` number: Number of QR codes assigned to this tag

## Other responses

- `400`: Bad Request — invalid input or validation failure
- `401`: Unauthorized — missing or invalid Bearer token.
- `403`: Forbidden — you do not have permission to access this resource.
- `404`: Not Found — the requested resource does not exist.
- `429`: Too Many Requests — rate limit exceeded. Retry after the rate limit window resets.

---

[API](https://skmtc.dev/qrcodly/apis/qrcodly-api.md) · [All operations](https://skmtc.dev/qrcodly/apis/qrcodly-api/llms.txt) · [OpenAPI document](https://skmtc.dev/qrcodly/apis/qrcodly-api/revisions/b7e95eb68866?raw)
