@seamapi/types 1.887.0 → 1.889.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -700,13 +700,19 @@ var provider_service_unavailable = common_connected_account_warning.extend({
700
700
  }).describe(
701
701
  "Indicates that the connected account's provider service is temporarily unavailable. Seam will automatically retry and reconnect when the service becomes available again."
702
702
  );
703
+ var setup_required = common_connected_account_warning.extend({
704
+ warning_code: zod.z.literal("setup_required").describe(warning_code_description)
705
+ }).describe(
706
+ "Indicates that the connected account requires additional setup before it can be fully operational. Follow the instructions in the warning message to complete the setup."
707
+ );
703
708
  var connected_account_warning = zod.z.discriminatedUnion("warning_code", [
704
709
  scheduled_maintenance_window,
705
710
  unknown_issue_with_connected_account,
706
711
  salto_ks_subscription_limit_almost_reached,
707
712
  account_reauthorization_requested,
708
713
  being_deleted,
709
- provider_service_unavailable
714
+ provider_service_unavailable,
715
+ setup_required
710
716
  ]).describe("Warning associated with the connected account.");
711
717
  zod.z.object({
712
718
  scheduled_maintenance_window: scheduled_maintenance_window.nullable().optional(),
@@ -714,7 +720,8 @@ zod.z.object({
714
720
  salto_ks_subscription_limit_almost_reached: salto_ks_subscription_limit_almost_reached.nullable().optional(),
715
721
  account_reauthorization_requested: account_reauthorization_requested.nullable().optional(),
716
722
  being_deleted: being_deleted.nullable().optional(),
717
- provider_service_unavailable: provider_service_unavailable.nullable().optional()
723
+ provider_service_unavailable: provider_service_unavailable.nullable().optional(),
724
+ setup_required: setup_required.nullable().optional()
718
725
  });
719
726
  var connected_account = zod.z.object({
720
727
  connected_account_id: zod.z.string().uuid().describe("ID of the connected account."),
@@ -2836,6 +2843,8 @@ var access_code = zod.z.object({
2836
2843
  Seam supports programming two types of access codes: [ongoing](https://docs.seam.co/low-level-apis/smart-locks/access-codes#ongoing-access-codes) and [time-bound](https://docs.seam.co/low-level-apis/smart-locks/access-codes#time-bound-access-codes). To differentiate between the two, refer to the \`type\` property of the access code. Ongoing codes display as \`ongoing\`, whereas time-bound codes are labeled \`time_bound\`. An ongoing access code is active, until it has been removed from the device. To specify an ongoing access code, leave both \`starts_at\` and \`ends_at\` empty. A time-bound access code will be programmed at the \`starts_at\` time and removed at the \`ends_at\` time.
2837
2844
 
2838
2845
  In addition, for certain devices, Seam also supports [offline access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection\u2014and you do not need to be near the locks\u2014to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code.
2846
+
2847
+ For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.
2839
2848
  `);
2840
2849
  var unmanaged_access_code = access_code.pick({
2841
2850
  workspace_id: true,
@@ -3782,6 +3791,8 @@ var acs_credential = common_acs_credential.merge(
3782
3791
  An access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.
3783
3792
 
3784
3793
  For each \`acs_credential\`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.
3794
+
3795
+ For granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.
3785
3796
  `);
3786
3797
  var unmanaged_acs_credential = common_acs_credential.merge(
3787
3798
  zod.z.object({
@@ -4171,15 +4182,22 @@ var time_zone_does_not_match_location = common_acs_system_warning.extend({
4171
4182
  }).describe(
4172
4183
  "Indicates the [access control system](https://docs.seam.co/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details)."
4173
4184
  );
4185
+ var setup_required2 = common_acs_system_warning.extend({
4186
+ warning_code: zod.z.literal("setup_required").describe(warning_code_description9)
4187
+ }).describe(
4188
+ "Indicates that the access control system requires additional setup before it can be fully operational. Follow the instructions in the warning message to complete the setup."
4189
+ );
4174
4190
  var acs_system_warning = zod.z.discriminatedUnion("warning_code", [
4175
4191
  salto_ks_subscription_limit_almost_reached3,
4176
- time_zone_does_not_match_location
4192
+ time_zone_does_not_match_location,
4193
+ setup_required2
4177
4194
  ]).describe(
4178
4195
  "Warning associated with the [access control system](https://docs.seam.co/low-level-apis/access-systems)."
4179
4196
  );
4180
4197
  zod.z.object({
4181
4198
  salto_ks_subscription_limit_almost_reached: salto_ks_subscription_limit_almost_reached3.optional().nullable(),
4182
- time_zone_does_not_match_location: time_zone_does_not_match_location.optional().nullable()
4199
+ time_zone_does_not_match_location: time_zone_does_not_match_location.optional().nullable(),
4200
+ setup_required: setup_required2.optional().nullable()
4183
4201
  });
4184
4202
  var acs_system = zod.z.object({
4185
4203
  default_credential_manager_acs_system_id: zod.z.string().uuid().nullable().optional().describe(
@@ -7302,7 +7320,7 @@ var openapi = {
7302
7320
  components: {
7303
7321
  schemas: {
7304
7322
  access_code: {
7305
- description: "Represents a smart lock [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nAn access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. Using the Seam Access Code API, you can easily generate access codes on the hundreds of door lock models with which we integrate.\n\nSeam supports programming two types of access codes: [ongoing](https://docs.seam.co/low-level-apis/smart-locks/access-codes#ongoing-access-codes) and [time-bound](https://docs.seam.co/low-level-apis/smart-locks/access-codes#time-bound-access-codes). To differentiate between the two, refer to the `type` property of the access code. Ongoing codes display as `ongoing`, whereas time-bound codes are labeled `time_bound`. An ongoing access code is active, until it has been removed from the device. To specify an ongoing access code, leave both `starts_at` and `ends_at` empty. A time-bound access code will be programmed at the `starts_at` time and removed at the `ends_at` time.\n\nIn addition, for certain devices, Seam also supports [offline access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection\u2014and you do not need to be near the locks\u2014to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code.",
7323
+ description: "Represents a smart lock [access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes).\n\nAn access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly. Using the Seam Access Code API, you can easily generate access codes on the hundreds of door lock models with which we integrate.\n\nSeam supports programming two types of access codes: [ongoing](https://docs.seam.co/low-level-apis/smart-locks/access-codes#ongoing-access-codes) and [time-bound](https://docs.seam.co/low-level-apis/smart-locks/access-codes#time-bound-access-codes). To differentiate between the two, refer to the `type` property of the access code. Ongoing codes display as `ongoing`, whereas time-bound codes are labeled `time_bound`. An ongoing access code is active, until it has been removed from the device. To specify an ongoing access code, leave both `starts_at` and `ends_at` empty. A time-bound access code will be programmed at the `starts_at` time and removed at the `ends_at` time.\n\nIn addition, for certain devices, Seam also supports [offline access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes#offline-access-codes). Offline access (PIN) codes are designed for door locks that might not always maintain an internet connection. For this type of access code, the device manufacturer uses encryption keys (tokens) to create server-based registries of algorithmically-generated offline PIN codes. Because the tokens remain synchronized with the managed devices, the locks do not require an active internet connection\u2014and you do not need to be near the locks\u2014to create an offline access code. Then, owners or managers can share these offline codes with users through a variety of mechanisms, such as messaging applications. That is, lock users do not need to install a smartphone application to receive an offline access code.\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.",
7306
7324
  properties: {
7307
7325
  access_code_id: {
7308
7326
  description: "Unique identifier for the access code.",
@@ -10715,7 +10733,7 @@ var openapi = {
10715
10733
  "x-route-path": "/acs/access_groups"
10716
10734
  },
10717
10735
  acs_credential: {
10718
- description: "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.",
10736
+ description: "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.",
10719
10737
  properties: {
10720
10738
  access_method: {
10721
10739
  description: "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.",
@@ -12021,6 +12039,27 @@ var openapi = {
12021
12039
  },
12022
12040
  required: ["created_at", "message", "warning_code"],
12023
12041
  type: "object"
12042
+ },
12043
+ {
12044
+ description: "Indicates that the access control system requires additional setup before it can be fully operational. Follow the instructions in the warning message to complete the setup.",
12045
+ properties: {
12046
+ created_at: {
12047
+ description: "Date and time at which Seam created the warning.",
12048
+ format: "date-time",
12049
+ type: "string"
12050
+ },
12051
+ message: {
12052
+ description: "Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.",
12053
+ type: "string"
12054
+ },
12055
+ warning_code: {
12056
+ description: "Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.",
12057
+ enum: ["setup_required"],
12058
+ type: "string"
12059
+ }
12060
+ },
12061
+ required: ["created_at", "message", "warning_code"],
12062
+ type: "object"
12024
12063
  }
12025
12064
  ]
12026
12065
  },
@@ -13197,7 +13236,7 @@ var openapi = {
13197
13236
  nullable: true,
13198
13237
  oneOf: [
13199
13238
  {
13200
- description: "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.",
13239
+ description: "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.",
13201
13240
  properties: {
13202
13241
  access_method: {
13203
13242
  description: "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.",
@@ -14207,7 +14246,7 @@ var openapi = {
14207
14246
  description: "Result of an encoding attempt. If the attempt was successful, includes the credential data that was encoded onto the card.",
14208
14247
  oneOf: [
14209
14248
  {
14210
- description: "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.",
14249
+ description: "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.",
14211
14250
  properties: {
14212
14251
  access_method: {
14213
14252
  description: "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.",
@@ -18739,6 +18778,27 @@ var openapi = {
18739
18778
  },
18740
18779
  required: ["created_at", "message", "warning_code"],
18741
18780
  type: "object"
18781
+ },
18782
+ {
18783
+ description: "Indicates that the connected account requires additional setup before it can be fully operational. Follow the instructions in the warning message to complete the setup.",
18784
+ properties: {
18785
+ created_at: {
18786
+ description: "Date and time at which Seam created the warning.",
18787
+ format: "date-time",
18788
+ type: "string"
18789
+ },
18790
+ message: {
18791
+ description: "Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.",
18792
+ type: "string"
18793
+ },
18794
+ warning_code: {
18795
+ description: "Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.",
18796
+ enum: ["setup_required"],
18797
+ type: "string"
18798
+ }
18799
+ },
18800
+ required: ["created_at", "message", "warning_code"],
18801
+ type: "object"
18742
18802
  }
18743
18803
  ]
18744
18804
  },
@@ -31138,7 +31198,7 @@ var openapi = {
31138
31198
  acs_credentials: {
31139
31199
  description: "Access system credentials associated with the phone provider session.",
31140
31200
  items: {
31141
- description: "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.",
31201
+ description: "Means by which an [access control system user](https://docs.seam.co/low-level-apis/access-systems/user-management) gains access at an [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details). The `acs_credential` object represents a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) that provides an ACS user access within an [access control system](https://docs.seam.co/low-level-apis/access-systems).\n\nAn access control system generally uses digital means of access to authorize a user trying to get through a specific entrance. Examples of credentials include plastic key cards, mobile keys, biometric identifiers, and PIN codes. The electronic nature of these credentials, as well as the fact that access is centralized, enables both the rapid provisioning and rescinding of access and the ability to compile access audit logs.\n\nFor each `acs_credential`, you define the access method. You can also specify additional properties, such as a PIN code, depending on the credential type.\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach. Use the lower-level ACS credential API directly only when you specifically need to manage individual credentials.",
31142
31202
  properties: {
31143
31203
  access_method: {
31144
31204
  description: "Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.",
@@ -37785,7 +37845,7 @@ var openapi = {
37785
37845
  },
37786
37846
  "/access_codes/create_multiple": {
37787
37847
  post: {
37788
- description: "Creates new [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).",
37848
+ description: "Creates new [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.",
37789
37849
  operationId: "accessCodesCreateMultiplePost",
37790
37850
  requestBody: {
37791
37851
  content: {
@@ -37892,7 +37952,7 @@ var openapi = {
37892
37952
  "x-title": "Create Multiple Linked Access Codes"
37893
37953
  },
37894
37954
  put: {
37895
- description: "Creates new [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).",
37955
+ description: "Creates new [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes) that share a common code across multiple devices.\n\nUsers with more than one door lock in a property may want to create groups of linked access codes, all of which have the same code (PIN). For example, a short-term rental host may want to provide guests the same PIN for both a front door lock and a back door lock.\n\nIf you specify a custom code, Seam assigns this custom code to each of the resulting access codes. However, in this case, Seam does not link these access codes together with a `common_code_key`. That is, `common_code_key` remains null for these access codes.\n\nIf you want to change these access codes that are not linked by a `common_code_key`, you cannot use `/access_codes/update_multiple`. However, you can update each of these access codes individually, using `/access_codes/update`.\n\nSee also [Creating and Updating Multiple Linked Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/creating-and-updating-multiple-linked-access-codes).\n\nFor granting a person access to a space, [Access Grants](https://docs.seam.co/use-cases/granting-access) are the default and recommended approach and work across both standalone smart locks and access systems. Use the lower-level Access Codes API directly only when you specifically need to manage individual PIN codes.",
37896
37956
  operationId: "accessCodesCreateMultiplePut",
37897
37957
  requestBody: {
37898
37958
  content: {