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

# Attach Form to QR Code

## Overview

Attaches a form to a QR code. When users scan the QR code, they will be prompted to fill out the form before accessing the content.

## Path Parameters

| Parameter | Type   | Required | Description | Example             |
| --------- | ------ | -------- | ----------- | ------------------- |
| `qrid`    | string | Yes      | QR code ID  | `Qc3ca09e1a5574caf` |

## Request Body

| Field  | Type    | Required | Description                      | Example |
| ------ | ------- | -------- | -------------------------------- | ------- |
| `form` | integer | Yes      | Form ID to attach to the QR code | `301`   |

## Examples

### Attach Form to QR Code

```bash theme={null}
curl -X PATCH "https://management.scanova.io/qr/Qc3ca09e1a5574caf/" \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "form": 301
  }'
```

## Response

Returns the updated QR code object with the form information included in the `dynamic_url_object`.

## Form Behavior

When a form is attached to a QR code:

1. **User scans QR code**
2. **Form is displayed** (based on form configuration)
3. **User fills out the form** (or skips if allowed)
4. **User is redirected** to the original QR code content
5. **Submission data is captured** and stored

## Important Notes

* **One Form Per QR Code**: Each QR code can only have one form attached
* **Multiple QR Codes**: One form can be attached to multiple QR codes
* **Active Forms Only**: Only active forms can be attached
* **Immediate Effect**: Changes take effect immediately

## Use Cases

* **Lead Generation**: Capture leads from QR code scans
* **Event Registration**: Collect attendee information at events
* **Customer Feedback**: Gather feedback before accessing content
* **Contact Collection**: Build contact lists from QR code interactions
* **Survey Data**: Collect survey responses through QR codes

<Note>
  The form must be active (`is_active: true`) to be attached to a QR code. If you try to attach an inactive form, the request will fail.
</Note>

<Warning>
  Attaching a form to a QR code will immediately start capturing submissions. Make sure your form is properly configured before attaching.
</Warning>


## OpenAPI

````yaml PATCH /qr/{qrid}/
openapi: 3.1.0
info:
  title: Scanova Form API
  description: Form management endpoints for creating, updating, and managing forms
  version: 1.0.0
servers:
  - url: https://management.scanova.io
    description: Production server
security:
  - apiKeyAuth: []
tags:
  - name: Form
    description: Form management operations
paths:
  /qr/{qrid}/:
    patch:
      tags:
        - Form
      summary: Attach/Detach Form to QR Code
      description: Attaches or detaches a form to/from a QR code. Requires authentication.
      parameters:
        - name: qrid
          in: path
          required: true
          description: QR code ID
          schema:
            type: string
          example: Qc3ca09e1a5574caf
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/AttachFormRequest'
                - $ref: '#/components/schemas/DetachFormRequest'
            examples:
              attach_form:
                summary: Attach form to QR code
                value:
                  form: 301
              detach_form:
                summary: Detach form from QR code
                value:
                  form: null
      responses:
        '200':
          description: QR code updated successfully
          content:
            application/json:
              schema:
                type: object
                description: Updated QR code object with form information
        '400':
          description: Bad request - Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
        '401':
          description: Unauthorized - Invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationErrorResponse'
        '404':
          description: QR code or form not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKeyAuth: []
components:
  schemas:
    AttachFormRequest:
      type: object
      required:
        - form
      properties:
        form:
          type: integer
          description: Form ID to attach to the QR code
          example: 301
    DetachFormRequest:
      type: object
      properties:
        form:
          type: 'null'
          description: Set to null to detach form from QR code
          example: null
    ValidationErrorResponse:
      type: object
      properties:
        field_name:
          type: array
          items:
            type: string
          description: Field-specific validation errors
          example:
            - This field is required.
            - Invalid value provided.
      additionalProperties:
        type: array
        items:
          type: string
        description: Additional field validation errors
    AuthenticationErrorResponse:
      type: object
      properties:
        detail:
          type: string
          description: Authentication error message
          example: Invalid token.
    ErrorResponse:
      type: object
      properties:
        detail:
          type: string
          description: Error message
          example: Not found.
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key authentication. Enter your API key directly in the Authorization
        header.

````