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

# Scan to Assign a Credential

> Scans a physical card placed on the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) and assigns the scanned credential to an ACS user. Provide either an `acs_user_id` or a `user_identity_id`.



## OpenAPI

````yaml /openapi.json post /acs/encoders/scan_to_assign_credential
openapi: 3.0.0
info:
  title: Seam Connect
  version: 1.0.0
servers:
  - url: https://connect.getseam.com
security: []
tags:
  - description: access_codes
    name: /access_codes
  - description: acs
    name: /acs
  - description: action_attempts
    name: /action_attempts
  - description: client_sessions
    name: /client_sessions
  - description: connected_accounts
    name: /connected_accounts
  - description: connect_webviews
    name: /connect_webviews
  - description: devices
    name: /devices
  - description: events
    name: /events
  - description: health
    name: /health
  - description: locks
    name: /locks
  - description: networks
    name: /networks
  - description: noise_sensors
    name: /noise_sensors
  - description: phones
    name: /phones
  - description: thermostats
    name: /thermostats
  - description: user_identities
    name: /user_identities
  - description: webhooks
    name: /webhooks
  - description: workspaces
    name: /workspaces
paths:
  /acs/encoders/scan_to_assign_credential:
    post:
      tags:
        - /acs
      summary: Scan to Assign a Credential
      description: >-
        Scans a physical card placed on the specified
        [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners)
        and assigns the scanned credential to an ACS user. Provide either an
        `acs_user_id` or a `user_identity_id`.
      operationId: acsEncodersScanToAssignCredentialPost
      requestBody:
        content:
          application/json:
            schema:
              properties:
                acs_encoder_id:
                  description: ID of the `acs_encoder` to use to scan the credential.
                  format: uuid
                  type: string
                acs_user_id:
                  description: ID of the `acs_user` to assign the scanned credential to.
                  format: uuid
                  type: string
                salto_ks_metadata:
                  description: Salto KS-specific metadata for the scan action.
                  properties:
                    detect_new_tags:
                      default: false
                      description: >-
                        When true, activates tag registration mode on the
                        encoder to detect new, unregistered tags. When false,
                        only detects existing tags already registered in the
                        system. Defaults to false.
                      type: boolean
                  type: object
                user_identity_id:
                  description: >-
                    ID of the `user_identity` to assign the scanned credential
                    to. If the ACS system contains an ACS user linked to this
                    user identity, it is used. Otherwise, one is created.
                  format: uuid
                  type: string
              required:
                - acs_encoder_id
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  action_attempt:
                    type: object
                    description: >-
                      Tracks the progress of this operation. Poll using the
                      action_attempt_id.
                    properties:
                      action_attempt_id:
                        type: string
                        format: uuid
                        description: ID of the action attempt.
                      action_type:
                        type: string
                        enum:
                          - SCAN_TO_ASSIGN_CREDENTIAL
                        description: Type of action being tracked.
                      status:
                        type: string
                        enum:
                          - pending
                          - success
                          - error
                        description: Current status of the action.
                      result:
                        type: object
                        nullable: true
                        description: Result payload on success.
                      error:
                        type: object
                        nullable: true
                        description: Error details on failure.
                        properties:
                          type:
                            type: string
                          message:
                            type: string
                    required:
                      - action_attempt_id
                      - action_type
                      - status
                  ok:
                    type: boolean
                required:
                  - action_attempt
                  - ok
                type: object
          description: OK
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      security:
        - pat_with_workspace: []
        - console_session_with_workspace: []
        - api_key: []
        - client_session_with_customer: []
components:
  securitySchemes:
    pat_with_workspace:
      bearerFormat: API Token
      scheme: bearer
      type: http
    console_session_with_workspace:
      bearerFormat: Console Session Token
      scheme: bearer
      type: http
    api_key:
      bearerFormat: API Key
      scheme: bearer
      type: http
    client_session_with_customer:
      bearerFormat: Customer Client Session Token
      scheme: bearer
      type: http

````