1"use strict";(self.webpackChunkmy_website=self.webpackChunkmy_website||[]).push([["8455"],{7293:function(e,t,n){n.r(t),n.d(t,{frontMatter:()=>o,default:()=>u,toc:()=>d,metadata:()=>s,assets:()=>l,contentTitle:()=>c});var s=JSON.parse('{"id":"StorEdge/User Guides/Getting Started/storedge","title":"StorEdge Integration","description":"StoreEdge is a scalable property management system (PMS) from Storable designed for growth-focused self-storage operators. It provides comprehensive facility management, tenant management, and payment processing capabilities with automation solutions to simplify daily workflows. The KISS integration with StoreEdge enables you to manage units, tenants, and real-time access without manual updates or duplicate data entry.","source":"@site/docs/StorEdge/User Guides/Getting Started/storedge.mdx","sourceDirName":"StorEdge/User Guides/Getting Started","slug":"/storedge/getting-started/storedge/","permalink":"/storedge/getting-started/storedge/","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"StorEdge Integration","slug":"/storedge/getting-started/storedge/"},"sidebar":"sidebar-home-1759341017709","next":{"title":"Quick Start by Role","permalink":"/storedge/getting-started/quick-start"}}'),i=n(74132),a=n(93292),r=n(83456);let o={title:"StorEdge Integration",slug:"/storedge/getting-started/storedge/"},c=void 0,l={},d=[{value:"<strong>Adjusting StorEdge Settings for API Permissions</strong>",id:"adjusting-storedge-settings-for-api-permissions",level:2},{value:"Navigate to Corporate Level",id:"navigate-to-corporate-level",level:4},{value:"Access API Settings",id:"access-api-settings",level:4},{value:"Search for KISS APIs",id:"search-for-kiss-apis",level:4},{value:"Enable Access",id:"enable-access",level:4},{value:"Update Association",id:"update-association",level:4},{value:"Return to Facility Level",id:"return-to-facility-level",level:4},{value:"Access Gate Integration",id:"access-gate-integration",level:4},{value:"Copy Facility ID",id:"copy-facility-id",level:4},{value:"Submit to KISS",id:"submit-to-kiss",level:4},{value:"<strong>How to Add a Location to KISS Access Control</strong>",id:"how-to-add-a-location-to-kiss-access-control",level:2},{value:"<strong>Prerequisites</strong>",id:"prerequisites",level:3},{value:"<strong>Adding a New Location</strong>",id:"adding-a-new-location",level:3},{value:"Complete API setup",id:"complete-api-setup",level:4},{value:"Get API Key",id:"get-api-key",level:4},{value:"Navigate to locations",id:"navigate-to-locations",level:4},{value:"Start creation",id:"start-creation",level:4},{value:"Enter details",id:"enter-details",level:4},{value:"Create location",id:"create-location",level:4},{value:"Sync data",id:"sync-data",level:4},{value:"<strong>Configuration</strong>",id:"configuration",level:2},{value:"<strong>Unit & Tenant Synchronization</strong>",id:"unit--tenant-synchronization",level:3},{value:"<strong>Automatic Sync Schedule</strong>",id:"automatic-sync-schedule",level:4},{value:"<strong>Manual Sync Triggers</strong>",id:"manual-sync-triggers",level:4},{value:"<strong>Troubleshooting Sync Issues</strong>",id:"troubleshooting-sync-issues",level:4},{value:"<strong>Data Sources</strong>",id:"data-sources",level:4},{value:"<strong>Access Control Settings</strong>",id:"access-control-settings",level:3},{value:"<strong>Status-based Access</strong>",id:"status-based-access",level:4},{value:"<strong>Caching</strong>",id:"caching",level:4},{value:"<strong>Data Synchronization Overview</strong>",id:"data-synchronization-overview",level:2},{value:"<strong>Integration Specifics</strong>",id:"integration-specifics",level:2},{value:"<strong>StorEdge-Specific Features</strong>",id:"storedge-specific-features",level:3},{value:"<strong>Status Mapping</strong>",id:"status-mapping",level:3},{value:"<strong>Tenant Access Statuses</strong>",id:"tenant-access-statuses",level:4},{value:"<strong>Manager Access Statuses</strong>",id:"manager-access-statuses",level:4},{value:"<strong>Status Determination Logic</strong>",id:"status-determination-logic",level:4},{value:"<strong>Payment Integration</strong>",id:"payment-integration",level:2},{value:"<strong>Payment Flow</strong>",id:"payment-flow",level:4},{value:"Initiate payment",id:"initiate-payment",level:4},{value:"Process payment",id:"process-payment",level:4},{value:"Update status",id:"update-status",level:4},{value:"Restore access",id:"restore-access",level:4}];function h(e){let t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.Zb,{title:"Start with Our Full Platform Review Video",link:"https://www.loom.com/share/3c679b86e452428887f88832ef85c320",icon:"video",iconType:"regular",iconSize:"48px",type:"card",classname:"
1card-node"}),"\n",(0,i.jsx)(t.p,{children:"StoreEdge is a scalable property management system (PMS) from Storable designed for growth-focused self-storage operators. It provides comprehensive facility management, tenant management, and payment processing capabilities with automation solutions to simplify daily workflows. The KISS integration with StoreEdge enables you to manage units, tenants, and real-time access without manual updates or duplicate data entry."}),"\n",(0,i.jsx)(t.p,{children:"This integration keeps your access control system synchronized with StorEdge, ensuring that tenant access permissions are always up to date based on their lease status and payment history."}),"\n",(0,i.jsx)(t.h2,{id:"adjusting-storedge-settings-for-api-permissions",children:(0,i.jsx)("strong",{children:"Adjusting StorEdge Settings for API Permissions"})}),"\n",(0,i.jsx)(t.p,{children:"Configure StorEdge API permissions to enable the KISS integration. These settings allow KISS to synchronize unit data, tenant information, and access control permissions with your StorEdge property management system."}),"\n",(0,i.jsx)(r.nk,{src:"https://www.youtube.com/watch?v=XbPJliuszl8",width:"800px"}),"\n",(0,i.jsxs)(r.Rg,{titleSize:"h4",children:[(0,i.jsx)(t.h4,{id:"navigate-to-corporate-level",children:"Navigate to Corporate Level"}),(0,i.jsx)(t.p,{children:"Jump to the corporate level in StorEdge to make system-wide changes."}),(0,i.jsx)(t.h4,{id:"access-api-settings",children:"Access API Settings"}),(0,i.jsxs)(t.p,{children:["Go to ",(0,i.jsx)("strong",{children:"Settings"})," \u2192 ",(0,i.jsx)("strong",{children:"API"})," to configure API permissions."]}),(0,i.jsx)(t.h4,{id:"search-for-kiss-apis",children:"Search for KISS APIs"}),(0,i.jsxs)(t.p,{children:['Search for "keep" to find the relevant APIs. You\'ll see ',(0,i.jsx)("strong",{children:"Keyless Lock Management"})," and ",(0,i.jsx)("strong",{children:"Kiosk"})," in the results."]}),(0,i.jsx)(t.h4,{id:"enable-access",children:"Enable Access"}),(0,i.jsxs)(t.p,{children:["Check ",(0,i.jsx)("strong",{children:"Active"})," for both APIs, scroll to the bottom, and select the facilities you want to give KISS access to. For all facilities, check the ",(0,i.jsx)("strong",{children:"All Facilities"})," box."]}),(0,i.jsx)(t.h4,{id:"update-association",children:"Update Association"}),(0,i.jsxs)(t.p,{children:["Tap ",(0,i.jsx)("strong",{children:"Update the API Association"})," to save your changes."]}),(0,i.jsx)(t.h4,{id:"return-to-facility-level",children:"Return to Facility Level"}),(0,i.jsx)(t.p,{children:"Navigate back to the facility level and click into the target facility."}),(0,i.jsx)(t.h4,{id:"access-gate-integration",children:"Access Gate Integration"}),(0,i.jsxs)(t.p,{children:["Go to ",(0,i.jsx)("strong",{children:"Facility Settings"})," \u2192 ",(0,i.jsx)("strong",{children:"Gate Integration"})," to locate your API Facility ID."]}),(0,i.jsx)(t.h4,{id:"copy-facility-id",children:"Copy Facility ID"}),(0,i.jsxs)(t.p,{children:["Copy the ",(0,i.jsx)("strong",{children:"API Facility ID"})," string. You'll need this ID for each facility you're integrating with KISS."]}),(0,i.jsx)(t.h4,{id:"submit-to-kiss",children:"Submit to KISS"}),(0,i.jsx)(t.p,{children:"Use that Facility ID and input into the KISS Admin Panel to create a new location"})]}),"\n",(0,i.jsx)(r.UW,{type:"info",title:"Important Notes",children:(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"These changes must be made at the corporate level, not the facility level."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Both Keyless Lock Management and Kiosk APIs must be activated for the integration to work."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"You need the API Facility ID for every facility you're integrating with KISS."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Keep these IDs secure as they provide access to your facility data."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Contact KISS support if you need help locating the API settings in your StorEdge account."}),"\n"]}),"\n"]})}),"\n",(0,i.jsx)(t.h2,{id:"how-to-add-a-location-to-kiss-access-control",children:(0,i.jsx)("strong",{children:"How to Add a Location to KISS Access Control"})}),"\n",(0,i.jsx)(t.p,{children:"Add a new location to your KISS Access Control system b
1y connecting it with your StorEdge property management system."}),"\n",(0,i.jsx)(t.h3,{id:"prerequisites",children:(0,i.jsx)("strong",{children:"Prerequisites"})}),"\n",(0,i.jsxs)(t.p,{children:["Before adding a location, ensure you have the following requirements ready: an active StorEdge account with API access enabled (see ",(0,i.jsx)(t.a,{href:"#adjusting-storedge-settings-for-api-permissions",children:"Adjusting StorEdge Settings for API Permissions"}),"), a KISS Access Control system configured for your facility, your StorEdge API Key (obtained from your StorEdge support representative), and your Facility ID (obtained from StorEdge as shown in the API permissions setup). These credentials and accounts are essential for establishing the connection between your systems."]}),"\n",(0,i.jsx)(t.h3,{id:"adding-a-new-location",children:(0,i.jsx)("strong",{children:"Adding a New Location"})}),"\n",(0,i.jsx)(t.p,{children:"Follow these steps to connect your StorEdge location to KISS Access Control. This process establishes the integration between your property management system and access control platform."}),"\n",(0,i.jsxs)(r.Rg,{titleSize:"h4",children:[(0,i.jsx)(t.h4,{id:"complete-api-setup",children:"Complete API setup"}),(0,i.jsxs)(t.p,{children:["Follow the steps in ",(0,i.jsx)(t.a,{href:"https://github.com/writechoiceorg/wc-testing/blob/002-kiss-docs/003%20-%20KISS%20-%20PUBLIC%20DOCS/Integrations/storedge.md#adjusting-storedge-settings-for-api-permissions",children:"Adjusting StorEdge Settings for API Permissions"})," to enable API access and obtain your Facility ID."]}),(0,i.jsx)(t.h4,{id:"get-api-key",children:"Get API Key"}),(0,i.jsx)(t.p,{children:"Contact your StorEdge support representative to obtain your API Key for KISS integration."}),(0,i.jsx)(t.h4,{id:"navigate-to-locations",children:"Navigate to locations"}),(0,i.jsxs)(t.p,{children:["Go to ",(0,i.jsx)("strong",{children:"Company \u2192 Locations"})," in your KISS web portal."]}),(0,i.jsx)(t.h4,{id:"start-creation",children:"Start creation"}),(0,i.jsxs)(t.p,{children:["Click the ",(0,i.jsx)("strong",{children:"+ Create a location"})," button."]}),(0,i.jsx)(t.h4,{id:"enter-details",children:"Enter details"}),(0,i.jsx)(t.p,{children:"Fill in the location details:"}),(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Enter a name for your location (required)"}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Enter your StorEdge Facility ID in the ",(0,i.jsx)("strong",{children:"Facility ID"})," field (required)"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Upload an image (optional)"}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["Configure the ",(0,i.jsx)("strong",{children:"Allow custom payments"})," toggle if needed"]}),"\n"]}),"\n"]}),(0,i.jsx)(t.h4,{id:"create-location",children:"Create location"}),(0,i.jsxs)(t.p,{children:["Click ",(0,i.jsx)("strong",{children:"Submit"})," to create the location."]}),(0,i.jsx)(t.h4,{id:"sync-data",children:"Sync data"}),(0,i.jsx)(t.p,{children:"Run a unit & tenant sync to ensure data flows correctly between systems."})]}),"\n",(0,i.jsx)(r.UW,{type:"info",title:"Important Notes",children:(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)("strong",{children:"API Key"})," field is where you enter your StorEdge API key"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)("strong",{children:"Facility ID"})," field is where you enter your StorEdge facility ID"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)("strong",{children:"Allow custom payments"})," toggle controls whether tenants can pay custom amounts"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Image upload is optional and n
1ot required for the integration"}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Both API Key and Facility ID are required from StorEdge"}),"\n"]}),"\n"]})}),"\n",(0,i.jsx)(t.h2,{id:"configuration",children:(0,i.jsx)("strong",{children:"Configuration"})}),"\n",(0,i.jsx)(t.p,{children:"Configure the integration settings to ensure proper synchronization between StorEdge and KISS."}),"\n",(0,i.jsx)(t.h3,{id:"unit--tenant-synchronization",children:(0,i.jsx)("strong",{children:"Unit & Tenant Synchronization"})}),"\n",(0,i.jsx)(t.p,{children:"KISS automatically synchronizes unit and tenant data with StorEdge every 15 minutes on the hour to ensure your access control system stays current with your property management system."}),"\n",(0,i.jsx)(t.h4,{id:"automatic-sync-schedule",children:(0,i.jsx)("strong",{children:"Automatic Sync Schedule"})}),"\n",(0,i.jsx)(t.p,{children:"The system runs scheduled synchronization every 15 minutes (at :00, :15, :30, :45) to keep data current and accurate, syncing unit availability, tenant information, lease status, and payment history. Changes in StorEdge are reflected in KISS within 15 minutes."}),"\n",(0,i.jsx)(t.h4,{id:"manual-sync-triggers",children:(0,i.jsx)("strong",{children:"Manual Sync Triggers"})}),"\n",(0,i.jsxs)(t.p,{children:["Manual synchronization can be triggered in specific situations when immediate data updates are needed. A unit sync runs automatically the first time an integrated location is added to KISS, and you can manually trigger a sync by selecting ",(0,i.jsx)("strong",{children:"Sync Units or Sync Tenants"})," (maximum 2 runs per 30 minutes per property). In the Manager App, if a unit ID is not in the internal database, the user is prompted to refresh the unit sync."]}),"\n",(0,i.jsx)(t.h4,{id:"troubleshooting-sync-issues",children:(0,i.jsx)("strong",{children:"Troubleshooting Sync Issues"})}),"\n",(0,i.jsx)(t.p,{children:"If a tenant just rented a unit but can't log into the app or doesn't see their unit, follow these steps to resolve the issue."}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)("strong",{children:"Verify data"}),": The manager should verify the unit and tenant appear in the KISS system."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)("strong",{children:"Sync manually"}),": If the tenant/unit is missing, perform a manual sync."]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)("strong",{children:"Wait and refresh"}),": Wait approximately 30 seconds, then refresh and check again."]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.h4,{id:"data-sources",children:(0,i.jsx)("strong",{children:"Data Sources"})}),"\n",(0,i.jsx)(t.p,{children:"The synchronization process pulls customer information from StorEdge customer records, including lease status and payment history, and contact information (phone numbers and email addresses) to keep KISS updated."}),"\n",(0,i.jsx)(t.h3,{id:"access-control-settings",children:(0,i.jsx)("strong",{children:"Access Control Settings"})}),"\n",(0,i.jsx)(t.p,{children:"Ensure access control is always up to date by checking the latest unit and tenant status from StorEdge before granting access. These settings determine when and how users can access storage units."}),"\n",(0,i.jsx)(t.h4,{id:"status-based-access",children:(0,i.jsx)("strong",{children:"Status-based Access"})}),"\n",(0,i.jsx)(t.p,{children:"Access permissions are determined by the current status of units and tenant payment history. Tenants can only access units with Current status, overdue payments automatically restrict access until payment is made, and facility managers can override access restrictions when needed."}),"\n",(0,i.jsx)(t.h4,{id:"caching",children:(0,i.jsx)("strong",{children:"Caching"})}),"\n",(0,i.jsx)(t.p,{children:"Status is always fetched live via API when the app is launched (no fallback or cached status is used), with a 4-hour on-device cache for Manager App (not persisted between app restarts). Status is not stored in the KISS database for integrated locations."}),"\n",(0,i.jsx)(t.h2,{id:"data-synchronization-overview",children:(0,i.jsx)("strong",{children:"Data Synchronization Overview"})}),"\n",(0,i.jsx)(t.p,{children:"KISS automatically pulls and synchronizes the following data from StorEdge during each 15-minute sync cycle. This overview explains what information is synchronized to keep your access control system current."}),"\n",(0,i.jsxs)(r.bq,{children:[(0,i.jsx)(r.UQ,{title:"Unit Data",children:(0,i.jsx)(t.p,{children:"The system synchronizes unit-related information to maintain accurate availability and occupancy records, including unit availability and occupancy status, unit numbers and identifiers, and unit size and type information."})}),(0,i.jsx)(r.UQ,{title:"Tenant Data",children:(0,i.jsx)(t.p,{children:"Tenant information is synchronized to ensure access permissions and contact details are always current, including tenant contact information (name, phone, email), lease status and payment history, unit assignments and access permissions, and payment due dates and amounts."})}),(0,i.jsxs)(r.UQ,{title:"Access Control Data",children:[(0,i.jsx)(t.p,{children:"Access control data is synchronized to make real-time decisions about unit access permissions, including real-time unit status for access decisions, payment status for overlock management, and lease expiration dates and renewal information."}),(0,i.jsx)(t.p,{children:"This ensures that both tenants and managers always have access to the most current information when using the KISS applications."})]}),(0,i.jsx)(r.UQ,{title:"Tenant App Flow",children:(0,i.jsx)(t.p,{children:"Tenants interact with the integration through the OneLock Access app, where unit and tenant status is always fetched live from StorEdge. Access permissions are based on current lease status and payment history, and tenants can make payments directly through the OneLock Access app to restore access."})}),(0,i.jsxs)(r.UQ,{title:"Manager App Flow",children:[(0,i.jsx)(t.h3,{id:""}),(0,i.jsx)(t.p,{children:"Facility managers use the integration through the OneLock Manager app to view and manage all units with real-time occupancy status, monitor and control tenant access based on lease and payment status, and override access restrictions for maintenance or emergency situations."})]}),(0,i.jsx)(r.UQ,{title:"Data Synchronization",children:(0,i.jsx)(t.p,{children:"Data flows between StorEdge and KISS in real-time, with unit and tenant status always fetched live from StorEdge. Status is never stored in the KISS database to ensure accuracy. The Manager App uses a 4-hour on-device cache (not persisted between app restarts), changes in StorEdge are reflected immediately in KISS, and real-time webhook updates take priority over peri
1odic polling."})})]}),"\n",(0,i.jsx)(t.h2,{id:"integration-specifics",children:(0,i.jsx)("strong",{children:"Integration Specifics"})}),"\n",(0,i.jsx)(t.p,{children:"Learn about StorEdge-specific features and technical details of the integration."}),"\n",(0,i.jsx)(t.h3,{id:"storedge-specific-features",children:(0,i.jsx)("strong",{children:"StorEdge-Specific Features"})}),"\n",(0,i.jsx)(t.p,{children:"The StorEdge API and integration features a RESTful API with standard HTTP status codes, API key-based authentication with facility ID requirement, optimized field selection to minimize payload sizes, real-time contact updates with private key authentication, multi-field status determination (status + payment_status + auction_id + delinquency_exempt), payment processing through StorEdge's system rather than KISS, and no database storage of status for integrated locations."}),"\n",(0,i.jsx)(t.h3,{id:"status-mapping",children:(0,i.jsx)("strong",{children:"Status Mapping"})}),"\n",(0,i.jsx)(t.p,{children:"See how StorEdge lease statuses map to KISS unit statuses and access control. This mapping determines how different lease statuses in StorEdge translate to access permissions in KISS."}),"\n",(0,i.jsx)(t.h4,{id:"tenant-access-statuses",children:(0,i.jsx)("strong",{children:"Tenant Access Statuses"})}),"\n",(0,i.jsx)(t.p,{children:"The following statuses apply specifically to tenant access permissions based on their lease and payment status."}),"\n",(0,i.jsx)("table",{children:(0,i.jsxs)("tbody",{children:[(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:(0,i.jsx)("strong",{children:"StorEdge Conditions"})}),(0,i.jsx)("th",{children:(0,i.jsx)("strong",{children:"KISS Unit Status"})}),(0,i.jsx)("th",{children:(0,i.jsx)("strong",{children:"Tenant Access"})})]}),(0,i.jsxs)("tr",{children:[(0,i.jsxs)("td",{children:[(0,i.jsx)(t.code,{children:'status: "occupied"'})," + ",(0,i.jsx)(t.code,{children:'payment_status: "current"'})]}),(0,i.jsx)("td",{children:(0,i.jsx)(t.code,{children:"Current"})}),(0,i.jsx)("td",{children:"\u2705 Access granted"})]}),(0,i.jsxs)("tr",{children:[(0,i.jsxs)("td",{children:[(0,i.jsx)(t.code,{children:"delinquency_exempt: true"})," (regardless of other fields)"]}),(0,i.jsx)("td",{children:(0,i.jsx)(t.code,{children:"Current"})}),(0,i.jsx)("td",{children:"\u2705 Access granted"})]})]})}),"\n",(0,i.jsx)(t.h4,{id:"manager-access-statuses",children:(0,i.jsx)("strong",{children:"Manager Access Statuses"})}),"\n",(0,i.jsx)(t.p,{children:"The following statuses are used for unit management and display purposes. Manager access is strictly based on their role permissions, not unit status."}),"\n",(0,i.jsx)("table",{children:(0,i.jsxs)("tbody",{children:[(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:(0,i.jsx)("strong",{children:"StorEdge Conditions"})}),(0,i.jsx)("th",{children:(0,i.jsx)("strong",{children:"KISS Unit Status"})}),(0,i.jsx)("th",{children:(0,i.jsx)("strong",{children:"Manager Access"})})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(t.code,{children:'status: "vacant"'})}),(0,i.jsx)("td",{children:(0,i.jsx)(t.code,{children:"Vacant"})}),(0,i.jsx)("td",{children:"\u2705 Full management access"})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)(t.code,{children:'status: "reserved"'})}),(0,i.jsx)("td",{children:(0,i.jsx)(t.code,{children:"Reserved"})}),(0,i.jsx)("td",{children:"\u2705 Full management access"})]}),(0,i.jsxs)("tr",{children:[(0,i.jsxs)("td",{children:[(0,i.jsx)(t.code,{children:'status: "occupied"'})," + ",(0,i.jsx)(t.code,{children:'payment_status: "delinquent"'})]}),(0,i.jsx)("td",{children:(0,i.jsx)(t.code,{children:"Overlocked"})}),(0,i.jsx)("td",{children:"\u2705 Full management access"})]}),(0,i.jsxs)("tr",{children:[(0,i.jsxs)("td",{children:[(0,i.jsx)(t.code,{children:'status: "occupied"'})," + ",(0,i.jsx)(t.code,{children:"auction_id \u2260 null"})]}),(0,i.jsx)("td",{children:(0,i.jsx)(t.code,{children:"Auction"})}),(0,i.jsx)("td",{children:"\u2705 Full management access"})]})]})}),"\n",(0,i.jsx)(t.h4,{id:"status-determination-logic",children:(0,i.jsx)("strong",{children:"Status Determination Logic"})}),"\n",(0,i.jsxs)(t.p,{children:["Status is determined by evaluating multiple StorEdge fields in combination. ",(0,i.jsx)(t.code,{children:"delinquency_exempt: true"})," overrides all other status conditions, ",(0,i.jsx)(t.code,{children:"auction_id"})," presence takes priority over payment status, and payment status is only evaluated when ",(0,i.jsx)(t.code,{children:'status: "occupied"'}),"."]}),"\n",(0,i.jsx)(r.UW,{type:"info",title:"Access Control Note",children:(0,i.jsx)(t.p,{children:"Tenant access is granted only for units mapped to Current status. Manager access is based on role permissions, not unit status."})}),"\n",(0,i.jsx)(t.h2,{id:"payment-integration",children:(0,i.jsx)("strong",{children:"Payment Integration"})}),"\n",(0,i.jsx)(t.p,{children:"Learn how payment processing works through the StorEdge integration. This section explains how tenants can make payments and how the system handles payment processing and access restoration."}),"\n",(0,i.jsx)(t.p,{children:"Payment processing is seamlessly integrated
1with StorEdge. Since we're integrated with StorEdge, tenant card information is collected directly through the OneLock Access app and passed to StorEdge for processing. No payment link configuration is required\u2014the integration handles all payment processing automatically."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)("strong",{children:"Custom Payment Options:"})," When creating a location, you can enable the ",(0,i.jsx)("strong",{children:"Allow custom payments"})," toggle to allow tenants to pay custom amounts. This gives tenants flexibility in payment amounts while maintaining the seamless integration with StorEdge's payment processing."]}),"\n",(0,i.jsx)(t.h4,{id:"payment-flow",children:(0,i.jsx)("strong",{children:"Payment Flow"})}),"\n",(0,i.jsx)(t.p,{children:"Follow these steps to complete a payment through the integration."}),"\n",(0,i.jsxs)(r.Rg,{titleSize:"h4",children:[(0,i.jsx)(t.h4,{id:"initiate-payment",children:"Initiate payment"}),(0,i.jsxs)(t.p,{children:["The tenant selects the ",(0,i.jsx)("strong",{children:"Make Payment"})," option in the app."]}),(0,i.jsx)(t.h4,{id:"process-payment",children:"Process payment"}),(0,i.jsx)(t.p,{children:"Payment details are passed to StorEdge's payment system."}),(0,i.jsx)(t.h4,{id:"update-status",children:"Update status"}),(0,i.jsx)(t.p,{children:"Upon successful payment, the app automatically refreshes the tenant's lease status."}),(0,i.jsx)(t.h4,{id:"restore-access",children:"Restore access"}),(0,i.jsx)(t.p,{children:"Access is restored immediately if payment resolves any overdue amounts."})]}),"\n",(0,i.jsx)("strong",{children:"Overlock Reversal Timing"}),"\n",(0,i.jsx)(t.p,{children:"Access is restored quickly after payment completion, with overlock reversal occurring within 1 minute of successful payment. Access is restored without waiting for the 15-minute sync interval, and payment status is checked in real-time when tenants attempt to access their units."})]})}function u(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.