Denne side beskriver det komplette flow for flytteformularen i Modstrøm-appen, inklusiv de tre formflows, deres fields, betingede sektioner og de Bemærkninger som kun fremgår af eksempel-JSON'erne (ikke fra live endpoints).
GetAgreements.MovingLocked.MovingLocked = true, må kunden ikke lave ny flytning på den adresse —
adressekortet skal låses og vise teksten: "Flytning behandles"
(dvs. kortet er ikke klikbart og datepickeren vises ikke).
| Valg i step 2 | FormName | FormGuid |
|---|---|---|
| Jeg ønsker at fortsætte min aftale hos Modstrøm | Flytteblanket - Tilflytning | d62e6f71-2299-4e37-8336-fc1c75bb3d3f |
| Jeg ønsker at opsige min aftale hos Modstrøm | Flytteblanket - Fraflytning | 47b0bfc4-8194-43e3-9af1-c379814d248b |
| Jeg er allerede kunde på min nye adresse | Flytteblanket - Fraflytning til anden eksist. adresse | fbae8332-0e86-4558-8845-90150e953a72 |
Formdata hentes fra dette endpoint – skift formGuid til det relevante guid:
GET https://dev.modstroem.dk/umbraco/api/ModstroemApp/GetFormData
?formGuid=d62e6f71-2299-4e37-8336-fc1c75bb3d3f
| Miljø | Base URL |
|---|---|
| Dev | https://dev.modstroem.dk |
| Test | https://test.modstroem.dk |
| Produktion | https://www.modstroem.dk |
Adresserne hentes fra kundens eksisterende aftaler via GetAgreements.
| Felt | Type | Beskrivelse |
|---|---|---|
fraflytningsadresse |
Auto | Adressen der svarer til den valgte kontrakt. Sendes som hidden felt til det valgte form. |
fraflytningsdato |
Påkrævet Datepicker | Brugervalgt fraflytningsdato. Sendes som hidden felt til det valgte form. |
kundenummer |
Auto | Kundens nummer som int (fx 591059) — hentes fra den valgte aftale. |
kontraktnummer |
Auto | Den valgte kontrakts guid — hentes fra den valgte aftale. |
kundetype |
Default: privat | Fast værdi privat (eller erhverv). |
product |
Auto | Produkt-guid fra den valgte aftale, hvis relevant. Angivet under DefaultValue i JSON'en. |
MovingLocked |
Ny property |
Returneres fra GetAgreements. Hvis true: adressekortet låses og er ikke klikbart —
vis teksten "Flytning behandles" i stedet for datepickeren.
Brugeren kan ikke starte et nyt flytteflow for denne adresse.
|
adressevaelger — se
confluence.kds.dk for opsætning.
input[type=date] — Datepicker fra dags dato og 3 måneder frem. Fortid deaktiveres.
| Alias | Kilde |
|---|---|
streetName | Gadenavn fra adressevælgeren |
houseNumber | Husnummer fra adressevælgeren |
floor | Etage fra adressevælgeren |
door | Dør fra adressevælgeren |
subCity | Stedbetegnelse fra adressevælgeren |
zipCode | Postnummer fra adressevælgeren |
cityName | Bynavn fra adressevælgeren |
| Alias | Bemærkning |
|---|---|
kundenummer | Fra step 1 — kundens nr som int, fx 591059 |
kontraktnummer | Fra step 1 — den valgte kontrakts guid |
fraflytningsadresse | Fra step 1 — adressen som den valgte kontrakt har |
fraflytningsdato | Fra step 1 — den valgte fraflytningsdato |
kundetype | Default: privat |
product | Evt. produkt-guid angivet under DefaultValue i JSON'en |
databowlSID | Default: 2 — formentlig irrelevant i app |
databowlCID | Default: 2971_TEST — formentlig irrelevant i app |
Tekst i headeren: "I forbindelse med din fraflytning af adressen [FULLADDRESS], har vi behov for at vide lidt om den nye ejer af adressen." — [FULLADDRESS] erstattes med fraflytningsadressen fra step 1.
| Alias | Type | Validering |
|---|---|---|
ejerName | text | Påkrævet Ejerens fulde navn |
ejerTelefon | number | Påkrævet ^\d{8}$ — 8 cifre |
ejerEmail | Påkrævet Gyldig email |
Privatperson | Virksomhed
| Alias | Type | Validering |
|---|---|---|
udlejerNavn | text | Påkrævet |
udlejerTelefon | number | Påkrævet ^\d{8}$ |
udlejerEmail | Påkrævet Gyldig email |
| Alias | Type | Validering |
|---|---|---|
udlejerFirmanavn | text | Påkrævet |
cVR | number | Påkrævet ^\d{8}$ — 8 cifre |
udlejerTelefon | number | Påkrævet ^\d{8}$ |
udlejerEmail | Påkrævet Gyldig email |
Viser en banner: "Tag os med på din nye adresse og få 500 kr. rabat på din næste strømregning"
true — Jeg ønsker at acceptere tilbuddet → viser ny adresse + solcellesektionfalse — Jeg ønsker ikke at acceptere tilbuddet → viser årsag-dropdown| Alias | Type | Validering |
|---|---|---|
tilflytningsadresse | adressevaelger | Påkrævet |
tilflytningsdato | date | Påkrævet Fra dags dato, 3 mdr. frem |
streetName … cityName | hidden | Auto Fra adressevælgeren |
| Alias | Bemærkning |
|---|---|
kundenummer | Fra step 1 — kundens nr som int, fx 591059 |
kontraktnummer | Fra step 1 — den valgte kontrakts guid |
fraflytningsadresse | Fra step 1 — adressen som den valgte kontrakt har |
fraflytningsdato | Fra step 1 — den valgte fraflytningsdato |
kundetype | Default: privat |
product | Evt. produkt-guid — ingen DefaultValue i dette flow |
rabat | Default: -500 — beløb inkl. moms. Formentlig irrelevant i app, aftal med Joakim |
gclid, utm_source, sideUrl | Web-tracking — formentlig irrelevant i app |
Identisk struktur som Flow A (Ejer / Udlejer med Privatperson / Virksomhed). Se afsnit 4 ovenfor.
Headertekst: "I forbindelse med din fraflytning af adressen [FULLADDRESS]…" — [FULLADDRESS] erstattes med fraflytningsadressen.
Flow C har ingen adressevælger og ingen datepicker — tilflytningsadressen er allerede registreret. Brugerens eneste input er ejerforholdet for fraflytningsadressen.
Headertekst: "I forbindelse med din fraflytning af adressen [FULLADDRESS]…"
Struktur identisk med Flow A's ejerforholdssektion. Se afsnit 4.
| Alias | Bemærkning |
|---|---|
kundenummer | Fra step 1 — kundens nr som int |
kontraktnummer | Fra step 1 — den valgte kontrakts guid |
fraflytningsadresse | Fra step 1 — adressen som den valgte kontrakt har |
fraflytningsdato | Fra step 1 — den valgte fraflytningsdato |
kundetype | Default: privat |
product | Evt. produkt-guid — tom DefaultValue i dette flow |
gclid, utm_source, sideUrl | Web-tracking — formentlig irrelevant i app |
| Alias | Titel | Vist i | Bemærkning |
|---|---|---|---|
produktion |
Har din nye bolig solceller? | Flow B (tilbud=true) | Informationspanel om produktionsaftale — ingen brugerinput. Vises ikke i Flow A per spec. |
energitjek |
Gratis energibesøg på din nye adresse | Flow A (fjernet per spec) | Tilbydes normalt til fortsæt-kunder — vises ikke i app per aftale. |
| Brug | URL |
|---|---|
| Ejer boligen (hus) | https://www.modstroem.dk/media/z5hfftho/hus.svg |
| Bor til leje (lejlighed) | https://www.modstroem.dk/media/uwzbswdf/lejlighed.svg |
| Step 2 – Fortsætte / Opsige | https://www.modstroem.dk/assets/images/svg/Flytteblanket/heart.svg + heart-hover.svg |
| Step 2 – Allerede kunde | https://www.modstroem.dk/assets/images/svg/Flytteblanket/hustype.svg + hustype-hover.svg |
Vises efter succesfuld indsendelse for alle tre flows:
CTA-knap: Tilbage til Aftaler
# Flow A – Fortsætte
curl "https://dev.modstroem.dk/umbraco/api/ModstroemApp/GetFormData \
?formGuid=d62e6f71-2299-4e37-8336-fc1c75bb3d3f"
# Flow B – Opsige
curl "https://dev.modstroem.dk/umbraco/api/ModstroemApp/GetFormData \
?formGuid=47b0bfc4-8194-43e3-9af1-c379814d248b"
# Flow C – Allerede kunde
curl "https://dev.modstroem.dk/umbraco/api/ModstroemApp/GetFormData \
?formGuid=fbae8332-0e86-4558-8845-90150e953a72"
Når brugeren klikker Send, POSTes data til:
POST {saveUrl}/umbraco/api/ModstroemApp/SubmitForm
Content-Type: application/json
Payload-struktur:
{
"formGuid": "<det valgte flow's formGuid>",
"values": {
"<alias>": "<value>",
...
}
}
"ejer": "true" + "udlejer": "false""ejer": "false" + "udlejer": "true"bool.Parse(Udlejer) → OwnerType.Udlejer eller OwnerType.Ejer.
curl -X POST "https://dev.modstroem.dk/umbraco/api/ModstroemApp/SubmitForm" \
-H "Content-Type: application/json" \
-d '{
"formGuid": "d62e6f71-2299-4e37-8336-fc1c75bb3d3f",
"values": {
"kundenummer": "174777",
"kontraktnummer": "885162",
"kundetype": "privat",
"fraflytningsadresse": "Tåsingegade 64 4. tv, 2100 København Ø",
"fraflytningsdato": "2026-10-24",
"product": "E19F93CC-8A31-4432-AB10-9398C1022444",
"tilflytningsadresse": "Egemosevej 40, 4571 Grevinge",
"tilflytningsdato": "2026-10-25",
"streetName": "Egemosevej",
"houseNumber": "40",
"floor": "",
"door": "",
"subCity": "",
"zipCode": "4571",
"cityName": "Grevinge",
"ejer": "true",
"udlejer": "false",
"ejerName": "Hans Hansen",
"ejerTelefon": "12345678",
"ejerEmail": "hans@example.dk"
}
}'
curl -X POST "https://dev.modstroem.dk/umbraco/api/ModstroemApp/SubmitForm" \
-H "Content-Type: application/json" \
-d '{
"formGuid": "d62e6f71-2299-4e37-8336-fc1c75bb3d3f",
"values": {
"kundenummer": "174777",
"kontraktnummer": "885162",
"kundetype": "privat",
"fraflytningsadresse": "Tåsingegade 64 4. tv, 2100 København Ø",
"fraflytningsdato": "2026-10-24",
"product": "E19F93CC-8A31-4432-AB10-9398C1022444",
"tilflytningsadresse": "Egemosevej 40, 4571 Grevinge",
"tilflytningsdato": "2026-10-25",
"streetName": "Egemosevej",
"houseNumber": "40",
"zipCode": "4571",
"cityName": "Grevinge",
"ejer": "false",
"udlejer": "true",
"udlejerValg": "Virksomhed",
"udlejerFirmanavn": "Firma A/S",
"cVR": "12345678",
"udlejerTelefon": "87654321",
"udlejerEmail": "firma@example.dk"
}
}'
curl -X POST "https://dev.modstroem.dk/umbraco/api/ModstroemApp/SubmitForm" \
-H "Content-Type: application/json" \
-d '{
"formGuid": "47b0bfc4-8194-43e3-9af1-c379814d248b",
"values": {
"kundenummer": "174777",
"kontraktnummer": "885162",
"kundetype": "privat",
"fraflytningsadresse": "Tåsingegade 64 4. tv, 2100 København Ø",
"fraflytningsdato": "2026-10-24",
"rabat": "-500",
"tilbud": "false",
"arsag": "Jeg har fundet en udbyder med lavere pris pr. kWh",
"ejer": "true",
"udlejer": "false",
"ejerName": "Hans Hansen",
"ejerTelefon": "12345678",
"ejerEmail": "hans@example.dk"
}
}'
curl -X POST "https://dev.modstroem.dk/umbraco/api/ModstroemApp/SubmitForm" \
-H "Content-Type: application/json" \
-d '{
"formGuid": "47b0bfc4-8194-43e3-9af1-c379814d248b",
"values": {
"kundenummer": "174777",
"kontraktnummer": "885162",
"kundetype": "privat",
"fraflytningsadresse": "Tåsingegade 64 4. tv, 2100 København Ø",
"fraflytningsdato": "2026-10-24",
"rabat": "-500",
"tilbud": "true",
"tilflytningsadresse": "Egemosevej 40, 4571 Grevinge",
"tilflytningsdato": "2026-10-25",
"streetName": "Egemosevej",
"houseNumber": "40",
"zipCode": "4571",
"cityName": "Grevinge",
"ejer": "true",
"udlejer": "false",
"ejerName": "Hans Hansen",
"ejerTelefon": "12345678",
"ejerEmail": "hans@example.dk"
}
}'
curl -X POST "https://dev.modstroem.dk/umbraco/api/ModstroemApp/SubmitForm" \
-H "Content-Type: application/json" \
-d '{
"formGuid": "fbae8332-0e86-4558-8845-90150e953a72",
"values": {
"kundenummer": "174777",
"kontraktnummer": "885162",
"kundetype": "privat",
"fraflytningsadresse": "Tåsingegade 64 4. tv, 2100 København Ø",
"fraflytningsdato": "2026-10-24",
"ejer": "false",
"udlejer": "true",
"udlejerValg": "Privatperson",
"udlejerNavn": "Hans Hansen",
"udlejerTelefon": "12345678",
"udlejerEmail": "hans@example.dk"
}
}'
| Regel | Detalje |
|---|---|
Felter med præfiks (3a-, 3b-, 3c-) | Springes over — kun UI-hjælpere, ikke data |
| Felter i skjulte betingede sektioner | Springes over — f.eks. udlejer-felter når ejer er valgt |
Tomme ejer/udlejer-felter | Springes over — kun den satte sendes |
| Checkboxes | Sendes som "true" eller "false" |
Skjulte radio-inputs (opacity:0 / position:absolute) | Springes over — drevet af synlige labels |
Nedenstående er de prompts der blev brugt til at generere og iterere på flytteform.html, i kronologisk rækkefølge:
<form id="form3x"> og brugte form.querySelector('[name="alias"]') i stedet for getElementById med præfiks.
e.preventDefault() og type="button" på Send-knapperne for at forhindre native form POST.
ejer og udlejer) — ikke ét kombineret felt. Tilføjede begge hidden inputs og satte dem korrekt i setupEjerforhold.