# 7.3. Create missing address for existing site or block process

[![create missing address for site or block.png](https://doc.rncv.lu/uploads/images/gallery/2025-10/scaled-1680-/create-missing-address-for-site-or-block.png)](https://doc.rncv.lu/uploads/images/gallery/2025-10/create-missing-address-for-site-or-block.png)

<table class="simple-table" id="bkmrk-name-create-missing-" style="width: 100%;"><thead class="simple-table-header"><tr id="bkmrk-name-create-missing--1"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-name" style="width: 14.776094%;">Name</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-create-missing-addre" style="width: 85.223906%;">Create missing address for existing site or block process</th></tr></thead><tbody><tr id="bkmrk-purpose-allow-editor"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-purpose" style="width: 14.776094%;">**Purpose**</th><td class="align-left" id="bkmrk-allow-editors-to-add" style="width: 85.223906%;">Allow Editors to add missing addresses for an existing site or block to the system, so that they are not blocked during the data ingestion processes.</td></tr><tr id="bkmrk-linked-user-stories-"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-linked-user-stories" style="width: 14.776094%;">**Linked user stories**</th><td class="align-left" id="bkmrk-4.29.-editor---creat" style="width: 85.223906%;">[4.29. Editor - Create an additional temporary address for an existing site](https://doc.rncv.lu/books/architecture-documentation/page/429-editor-create-an-additional-temporary-address-for-an-existing-site-canceled "4.29. Editor - Create an additional temporary address for an existing site")

[4.30. Editor - Create an additional temporary address for an existing block](https://doc.rncv.lu/books/architecture-documentation/page/430-editor-create-an-additional-temporary-address-for-an-existing-block "4.30. Editor - Create an additional temporary address for an existing block")

</td></tr><tr id="bkmrk-apis-used-post-%2Fsite"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-apis-used" style="width: 14.776094%;">**APIs used**</th><td class="align-left" id="bkmrk-post-%2Fsites%2F%3Csite-id" style="width: 85.223906%;">**POST** /sites/&lt;site-id&gt;/addresses  
**POST** /blocks/&lt;site-id&gt;/addresses</td></tr><tr id="bkmrk-scope-this-process-o"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-scope" style="width: 14.776094%;">**Scope**</th><td class="align-left" id="bkmrk-this-process-only-ha" style="width: 85.223906%;">This process only handles the creation of the address in a temporary state and link it to an existing site or block. This state will allow the Editors to enter data into the vertical cabling database for that temporary address.   
  
The process of validating and approving the temporary addresses is out of the scope of this process.</td></tr><tr id="bkmrk-roles-editor%2C-system"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-roles" style="width: 14.776094%;">**Roles**</th><td class="align-left" id="bkmrk-editor%2C-system" style="width: 85.223906%;">Editor, System</td></tr><tr id="bkmrk-input---site-id-or-b"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-input" style="width: 14.776094%;">**Input**</th><td class="align-left" id="bkmrk---site-id-or-block-i" style="width: 85.223906%;">- site id or block id (mandatory)  
- address (mandatory)</td></tr><tr id="bkmrk-output---temporary-a"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-output" style="width: 14.776094%;">**Output**</th><td class="align-left" id="bkmrk---temporary-address-" style="width: 85.223906%;">- temporary address linked to the given site or block  
- the site structure attached the address</td></tr></tbody></table>

## Detailed Process description

### Main process

<table class="simple-table" id="bkmrk-step-description-act" style="width: 100%;"><thead class="simple-table-header"><tr id="bkmrk-step-description-act-1"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-step" style="width: 5.959476%;">Step</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-description" style="width: 22.765197%;">Description</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-actor%28s%29" style="width: 8.939213%;">Actor(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-input%28s%29" style="width: 15.613826%;">Input(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-output%28s%29" style="width: 15.613117%;">Output(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-decision-points" style="width: 31.109172%;">Decision points</th></tr></thead><tbody><tr id="bkmrk-1-an-editor-sends-a-"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-1" style="width: 5.959476%;">**1**</th><td class="align-left" id="bkmrk-an-editor-sends-a-%E2%80%9Cc" style="width: 22.765197%;">An Editor sends a “create address request” for an existing site or block.</td><td class="align-left" id="bkmrk-editor" style="width: 8.939213%;">Editor</td><td class="align-left" id="bkmrk---site-id-or-block-i-1" style="width: 15.613826%;">- Site id or Block id  
- Address (mandatory)</td><td class="align-left" id="bkmrk--" style="width: 15.613117%;">-</td><td class="align-left" id="bkmrk--1" style="width: 31.109172%;"></td></tr><tr id="bkmrk-2-the-system-checks-"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-2" style="width: 5.959476%;">**2**</th><td class="align-left" id="bkmrk-the-system-checks-if" style="width: 22.765197%;">The system checks if the address already exists</td><td class="align-left" id="bkmrk-system" style="width: 8.939213%;">System</td><td class="align-left" id="bkmrk---site-id--address-%28" style="width: 15.613826%;">- Site id  
- Address (mandatory)</td><td class="align-left" id="bkmrk---yes-%2F-no" style="width: 15.613117%;">- yes / no</td><td class="align-left" id="bkmrk-if-the-address-does-" style="width: 31.109172%;">**If the address does not exist:**

- the ingestion process continues (Step 3)

**If the address exists:**

- An error is returned (E.1. Address exists)

</td></tr><tr id="bkmrk-3-the-system-checks-"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-3" style="width: 5.959476%;">**3**</th><td class="align-left" id="bkmrk-the-system-checks-if-1" style="width: 22.765197%;">The system checks if their are high confidence matches (e.g. potential spelling mistakes in the street / locality)</td><td class="align-left" id="bkmrk-system-1" style="width: 8.939213%;">System</td><td class="align-left" id="bkmrk---address" style="width: 15.613826%;">- Address</td><td class="align-left" id="bkmrk---list-of-high-confi" style="width: 15.613117%;">- list of high confidence matches (if any)</td><td class="align-left" id="bkmrk-if-no-high-confidenc" style="width: 31.109172%;">**If no high confidence matches:**

- the ingestion process continues (Step 4)

**If high confidence matches are found:**

- Matches are returned to the Editor for verification (secondary process: S.1. High confidence address verification)

</td></tr><tr id="bkmrk-4-the-system-creates"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-4" style="width: 5.959476%;">**4**</th><td class="align-left" id="bkmrk-the-system-creates-t" style="width: 22.765197%;">The system creates the address in the database with a flag indicating that it is a temporary address that is not yet validated.</td><td class="align-left" id="bkmrk-system-2" style="width: 8.939213%;">System</td><td class="align-left" id="bkmrk---address-%28with-flag" style="width: 15.613826%;">- Address (with flag validated=false)</td><td class="align-left" id="bkmrk---newly-created-addr" style="width: 15.613117%;">- Newly created address</td><td class="align-left" id="bkmrk--2" style="width: 31.109172%;"></td></tr><tr id="bkmrk-5-the-system-links-t"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-5" style="width: 5.959476%;">**5**</th><td class="align-left" id="bkmrk-the-system-links-the" style="width: 22.765197%;">The system links the address to the given site or block</td><td class="align-left" id="bkmrk-system-3" style="width: 8.939213%;">System</td><td class="align-left" id="bkmrk---create-address-req" style="width: 15.613826%;">- Create address request</td><td class="align-left" id="bkmrk---address-linked-to-" style="width: 15.613117%;">- Address linked to the given site or block</td><td class="align-left" id="bkmrk--3" style="width: 31.109172%;"></td></tr><tr id="bkmrk-6-the-system-returns"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-6" style="width: 5.959476%;">**6**</th><td class="align-left" id="bkmrk-the-system-returns-t" style="width: 22.765197%;">The system returns the created address and the site structure</td><td class="align-left" id="bkmrk-system-4" style="width: 8.939213%;">System</td><td class="align-left" id="bkmrk---1" style="width: 15.613826%;">-</td><td class="align-left" id="bkmrk---newly-created-addr-1" style="width: 15.613117%;">- Newly created address and site structure</td><td class="align-left" id="bkmrk--4" style="width: 31.109172%;"></td></tr><tr id="bkmrk-7-the-editor-gets-th"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-7" style="width: 5.959476%;">**7**</th><td class="align-left" id="bkmrk-the-editor-gets-the-" style="width: 22.765197%;">The Editor gets the newly requested address</td><td class="align-left" id="bkmrk-editor-1" style="width: 8.939213%;">Editor</td><td class="align-left" id="bkmrk---2" style="width: 15.613826%;">-</td><td class="align-left" id="bkmrk---newly-created-addr-2" style="width: 15.613117%;">- Newly created address and site structure</td><td class="align-left" style="width: 31.109172%;">  
</td></tr></tbody></table>

### Secondary Processes

#### S.1. High confidence address verification

<table class="simple-table" id="bkmrk-step-description-act-2" style="width: 100%;"><thead class="simple-table-header"><tr id="bkmrk-step-description-act-3"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-step-1" style="width: 5.721097%;">Step</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-description-1" style="width: 23.122765%;">Description</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-actor%28s%29-1" style="width: 8.820024%;">Actor(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-input%28s%29-1" style="width: 15.733015%;">Input(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-output%28s%29-1" style="width: 15.503292%;">Output(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-decision-points-1" style="width: 31.218997%;">Decision points</th></tr></thead><tbody><tr id="bkmrk-1-system-returns-a-l"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-1-1" style="width: 5.721097%;">**1**</th><td class="align-left" id="bkmrk-system-returns-a-lis" style="width: 23.122765%;">System returns a list of high confidence address matches</td><td class="align-left" id="bkmrk-system-5" style="width: 8.820024%;">System</td><td class="align-left" id="bkmrk---3" style="width: 15.733015%;">-</td><td class="align-left" id="bkmrk---list-of-high-confi-1" style="width: 15.503292%;">- list of high confidence matches</td><td class="align-left" id="bkmrk--5" style="width: 31.218997%;"></td></tr><tr id="bkmrk-2-editor-verifies-if"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-2-1" style="width: 5.721097%;">**2**</th><td class="align-left" id="bkmrk-editor-verifies-if-t" style="width: 23.122765%;">Editor verifies if the address is present in the list</td><td class="align-left" id="bkmrk-editor-2" style="width: 8.820024%;">Editor</td><td class="align-left" id="bkmrk---list-of-high-confi-2" style="width: 15.733015%;">- list of high confidence matches</td><td class="align-left" id="bkmrk---yes-%2F-no-1" style="width: 15.503292%;">- yes / no</td><td class="align-left" id="bkmrk-if-address-not-prese" style="width: 31.218997%;">**If address not present:**

- the secondary process continues (S.1. Step 3)

**If address present:**

- the ingestion process is canceled (E.2. Address exists)

</td></tr><tr id="bkmrk-3-the-editor-sends-a"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-3-1" style="width: 5.721097%;">**3**</th><td class="align-left" id="bkmrk-the-editor-sends-aga" style="width: 23.122765%;">The Editor sends again a “create address request” but this time flags it as forced (force = true)</td><td class="align-left" id="bkmrk-editor-3" style="width: 8.820024%;">Editor</td><td class="align-left" id="bkmrk---address-%28mandatory" style="width: 15.733015%;">- Address (mandatory)  
- Site structure (optional)</td><td class="align-left" id="bkmrk---4" style="width: 15.503292%;">-</td><td class="align-left" id="bkmrk--6" style="width: 31.218997%;"></td></tr><tr id="bkmrk-4-the-system-checks-"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-4-1" style="width: 5.721097%;">**4**</th><td class="align-left" id="bkmrk-the-system-checks-if-2" style="width: 23.122765%;">The system checks if the address already exists</td><td class="align-left" id="bkmrk-system-6" style="width: 8.820024%;">System</td><td class="align-left" id="bkmrk---address-%28mandatory-1" style="width: 15.733015%;">- Address (mandatory)  
- Site structure (optional)</td><td class="align-left" id="bkmrk---yes-%2F-no-2" style="width: 15.503292%;">- yes / no</td><td class="align-left" id="bkmrk-if-the-address-does--1" style="width: 31.218997%;">**If the address does not exist:**

- the main process continues (Step 4)

**If the address exists:**

- An error is returned (E.1. Address exists)

</td></tr></tbody></table>

### Error Processes

#### E.1. Address exists (System error)

<table class="simple-table" id="bkmrk-step-description-act-4" style="width: 100%;"><thead class="simple-table-header"><tr id="bkmrk-step-description-act-5"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-step-2" style="width: 5.959476%;">Step</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-description-2" style="width: 22.526818%;">Description</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-actor%28s%29-2" style="width: 8.820024%;">Actor(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-input%28s%29-2" style="width: 15.613826%;">Input(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-output%28s%29-2" style="width: 15.162609%;">Output(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-decision-points-2" style="width: 31.917248%;">Decision points</th></tr></thead><tbody><tr id="bkmrk-1-system-returns-an-"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-1-2" style="width: 5.959476%;">**1**</th><td class="align-left" id="bkmrk-system-returns-an-er" style="width: 22.526818%;">System returns an error indicating that the address already exists including the site it is attached to.</td><td class="align-left" id="bkmrk-system-7" style="width: 8.820024%;">System</td><td class="align-left" id="bkmrk---5" style="width: 15.613826%;">-</td><td class="align-left" id="bkmrk-error%3A-address-exist" style="width: 15.162609%;">**Error: Address exists**</td><td class="align-left" style="width: 31.917248%;">  
</td></tr></tbody></table>

#### E.2. Address exists (Editor cancel)

<table class="simple-table" id="bkmrk-step-description-act-6" style="width: 100%; height: 197px;"><thead class="simple-table-header"><tr id="bkmrk-step-description-act-7" style="height: 29px;"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-step-3" style="width: 6.078665%; height: 29px;">Step</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-description-3" style="width: 23.003576%; height: 29px;">Description</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-actor%28s%29-3" style="width: 8.700551%; height: 29px;">Actor(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-input%28s%29-3" style="width: 15.137352%; height: 29px;">Input(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-output%28s%29-3" style="width: 14.66031%; height: 29px;">Output(s)</th><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-decision-points-3" style="width: 32.419547%; height: 29px;">Decision points</th></tr></thead><tbody><tr id="bkmrk-1-editor-finds-the-a" style="height: 139px;"><th class="simple-table-header-color simple-table-header align-left" id="bkmrk-1-3" style="width: 6.078665%; height: 139px;">**1**</th><td class="align-left" id="bkmrk-editor-finds-the-add" style="width: 23.003576%; height: 139px;">Editor finds the address in the high confidence matches returned by the system including the site it is attached to.   
  
The process is canceled.</td><td class="" id="bkmrk-editor-4" style="width: 8.700551%; height: 139px;">Editor</td><td class="" id="bkmrk---6" style="width: 15.137352%; height: 139px;">-</td><td class="" id="bkmrk---7" style="width: 14.66031%; height: 139px;">-</td><td style="height: 139px; width: 32.419547%;">  
</td></tr></tbody></table>

## Additional Information

### Address matching processes

Exact match (link to algorithm or process)

High confidence match (link to algorithm or process)

### Exceptions

#### \[400 Bad Request\] Invalid input:

If mandatory fields are missing or fields are invalid, the system returns an error message.

#### \[409 Already Exists\] Address already exists

If the **Editor** attempts to add an address that already exists, an error is returned.

#### \[300 Similar exists\] High confidence matches

If the **Editor** attempts to add an address for which the system detects high confidence matches and the force flag is set to false, the system return an error 300 and the list of high confidence matches.

#### \[500 Internal Server Error\] System Error

If the system fails to save changes due to an internal error, it displays an appropriate message and logs the error for further investigation.