Leasefold

Utvecklare

Er data i era egna verktyg

Hämta fastigheter, hyresavtal, fynd, fakturor och lagkrav till Power BI, egna AI-tjänster eller andra system – och låt Microsoft Entra ID sköta era användare i Leasefold.

Kom igång

  1. Organisationens ägare eller administratör skapar en klient under Inställningar → API och provisionering och väljer behörigheter och giltighetstid (högst 24 månader).
  2. Hemligheten visas en gång. Leasefold sparar bara en kontrollsumma.
  3. Hämta en åtkomsttoken (OAuth 2.0 client credentials, giltig 60 minuter) eller använd API-nyckeln direkt i verktyg utan OAuth.

Beskrivning i OpenAPI 3.1: https://leasefold.se/api/v1/openapi.json

Autentisering

POST https://leasefold.se/api/v1/oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=lf_…&client_secret=lfs_…&scope=read:portfolio
{ "access_token": "lfa_…", "token_type": "Bearer", "expires_in": 3600, "scope": "read:portfolio" }

Anrop: Authorization: Bearer lfa_… – eller med API-nyckeln: Authorization: Bearer lfk_…. All trafik över TLS 1.2 eller senare. Högst 600 anrop per minut och klient; därefter svarar API:t 429.

Behörigheter

API:t är bara läsande. En klient ser bara den egna organisationens data, och bara fälten nedan – aldrig dokumenttext, filer eller kontaktpersoners e-post. Klienter kan återkallas direkt; återkallade token slutar gälla omedelbart. Skapande, användning och återkallande loggas i organisationens historik.

Resurser

Alla listor: GET /api/v1/<resurs>?limit=1–1000&offset=…&since=ISO-tid (standard 100). Svaret är { "data": [...], "next": "…" | null }. En rad: GET /api/v1/<resurs>/<id>.

/properties – Fastigheter

Organisationens fastigheter. Behörighet read:portfolio. Filter: city.

id, name, designation, address, postal_code, city, municipality, country, built_year, created_at

/premises – Lokaler

Lokaler i fastigheterna. Behörighet read:portfolio. Filter: property_id, use.

id, property_id, building_id, name, use, area_sqm, floor, created_at

/tenants – Hyresgäster

Hyresgäster (företag). Kontaktpersoners e-post ingår inte. Behörighet read:portfolio.

id, name, org_number, created_at

/leases – Hyresavtal

Hyresavtal med villkor som Leasefold läst eller som lagts in. Behörighet read:portfolio. Filter: premise_id, tenant_id, status.

id, premise_id, tenant_id, reference, status, start_date, end_date, notice_months, extension_months, base_rent_annual, current_rent_annual, currency, index_clause, vat_registered, created_at

/findings – Fynd

AI-medarbetarnas fynd: motsägelser, frister, vidarefakturering, lagkrav m.m. Behörighet read:findings. Filter: property_id, lease_id, kind, severity, status.

id, property_id, lease_id, kind, severity, title, detail, suggestion, amount, currency, due_date, source_ref, status, decided_at, created_at, updated_at

/invoices – Leverantörsfakturor

Inlästa leverantörsfakturor. Behörighet read:invoices. Filter: property_id, lease_id, rebill_status.

id, property_id, lease_id, supplier_name, invoice_no, invoice_date, amount_excl_vat, currency, description, rebill_status, created_at

/compliance – Lagkrav och besiktningar

Lagkrav per fastighet med senaste och nästa kontroll. Behörighet read:compliance. Filter: property_id, rule_code, status.

id, property_id, building_id, rule_code, last_done, next_due, responsible, status, created_at

Versioner

v1 ändras bara bakåtkompatibelt (nya fält kan tillkomma). En ändrad eller borttagen resurs får en ny version, och v1 finns kvar oförändrad i minst sex månader efter att den nya versionen publicerats.

Power BI

Hämta data → Tom fråga → Avancerad redigerare. Klistra in och ersätt nyckeln (lägg nyckeln som parameter, inte i rapporten som delas):

let
  Key = "lfk_…",
  Page = (offset as number) => Json.Document(Web.Contents("https://leasefold.se/api/v1/", [
    RelativePath = "leases",
    Query = [limit = "1000", offset = Text.From(offset)],
    Headers = [Authorization = "Bearer " & Key]])),
  Pages = List.Generate(() => [o = 0, p = Page(0)], each List.Count([p][data]) > 0,
    each [o = [o] + 1000, p = Page([o] + 1000)], each [p][data]),
  Table = Table.FromRecords(List.Combine(Pages))
in
  Table

Fast bas-URL med RelativePath och Query gör att rapporten kan uppdateras schemalagt i Power BI-tjänsten. Byt leases mot den resurs ni vill hämta.

Användare från Microsoft Entra ID (SCIM 2.0)

  1. Verifiera er domän i Leasefold (Inställningar → Säkerhet och inloggning). Bara adresser på verifierade domäner kan provisioneras.
  2. Skapa en klient av typen Provisionering. Ni får en hemlig token.
  3. I Entra: Enterprise applications → er Leasefold-app → Provisioning → Automatic. Tenant URL https://leasefold.se/scim/v2, Secret Token = token från steg 2. Testa anslutningen och starta.
  4. Tilldela grupper till appen i Entra. När grupperna har kommit in kopplar ni varje grupp till en roll i Leasefold (förvaltare, tekniker, ekonomi, brandskyddsansvarig, revisor eller administratör).

En användare får rollerna för sina grupper. Avaktiveras eller tas hen bort i Entra förlorar hen rollerna och alla inloggningar avslutas direkt. Ägarrollen, hyresgäster och leverantörer hanteras aldrig via Entra. Stöd: Users och Groups (skapa, läsa, ändra med PATCH/PUT, ta bort), filter userName eq, externalId eq, displayName eq.

Frågor

Mejla info@leasefold.se. Så skyddas era uppgifter.