Record an F10 notification
curl --request POST \
--url https://api.ctrl-hub.com/v3/f10-notifications \
--header 'Content-Type: application/vnd.api+json' \
--header 'X-Session-Token: <api-key>' \
--data '
{
"data": {
"type": "f10-notifications",
"attributes": {
"sent_on": "2023-12-25",
"hse_reference": "<string>",
"notes": "<string>"
},
"relationships": {
"pre_construction_information": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "pre-construction-informations"
}
}
}
}
}
'import requests
url = "https://api.ctrl-hub.com/v3/f10-notifications"
payload = { "data": {
"type": "f10-notifications",
"attributes": {
"sent_on": "2023-12-25",
"hse_reference": "<string>",
"notes": "<string>"
},
"relationships": { "pre_construction_information": { "data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "pre-construction-informations"
} } }
} }
headers = {
"X-Session-Token": "<api-key>",
"Content-Type": "application/vnd.api+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Session-Token': '<api-key>', 'Content-Type': 'application/vnd.api+json'},
body: JSON.stringify({
data: {
type: 'f10-notifications',
attributes: {sent_on: '2023-12-25', hse_reference: '<string>', notes: '<string>'},
relationships: {
pre_construction_information: {
data: {
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
type: 'pre-construction-informations'
}
}
}
}
})
};
fetch('https://api.ctrl-hub.com/v3/f10-notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ctrl-hub.com/v3/f10-notifications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'type' => 'f10-notifications',
'attributes' => [
'sent_on' => '2023-12-25',
'hse_reference' => '<string>',
'notes' => '<string>'
],
'relationships' => [
'pre_construction_information' => [
'data' => [
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'type' => 'pre-construction-informations'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/vnd.api+json",
"X-Session-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ctrl-hub.com/v3/f10-notifications"
payload := strings.NewReader("{\n \"data\": {\n \"type\": \"f10-notifications\",\n \"attributes\": {\n \"sent_on\": \"2023-12-25\",\n \"hse_reference\": \"<string>\",\n \"notes\": \"<string>\"\n },\n \"relationships\": {\n \"pre_construction_information\": {\n \"data\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"pre-construction-informations\"\n }\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Session-Token", "<api-key>")
req.Header.Add("Content-Type", "application/vnd.api+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ctrl-hub.com/v3/f10-notifications")
.header("X-Session-Token", "<api-key>")
.header("Content-Type", "application/vnd.api+json")
.body("{\n \"data\": {\n \"type\": \"f10-notifications\",\n \"attributes\": {\n \"sent_on\": \"2023-12-25\",\n \"hse_reference\": \"<string>\",\n \"notes\": \"<string>\"\n },\n \"relationships\": {\n \"pre_construction_information\": {\n \"data\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"pre-construction-informations\"\n }\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ctrl-hub.com/v3/f10-notifications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Session-Token"] = '<api-key>'
request["Content-Type"] = 'application/vnd.api+json'
request.body = "{\n \"data\": {\n \"type\": \"f10-notifications\",\n \"attributes\": {\n \"sent_on\": \"2023-12-25\",\n \"hse_reference\": \"<string>\",\n \"notes\": \"<string>\"\n },\n \"relationships\": {\n \"pre_construction_information\": {\n \"data\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"pre-construction-informations\"\n }\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "f10-notifications",
"attributes": {
"kind": "initial",
"sent_on": "2023-12-25",
"sender": {
"acting_role": "client_and_principal_designer",
"organisation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"at": "2023-11-07T05:31:56Z",
"principal_type": "users",
"principal_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"revision": 123,
"created_at": "2023-11-07T05:31:56Z",
"hse_reference": "<string>",
"notes": "<string>"
},
"relationships": {
"organisation": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "organisations"
}
},
"scheme": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "schemes"
}
},
"pre_construction_information": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "pre-construction-informations"
}
},
"media_folder": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "folders"
}
}
}
},
"jsonapi": {
"version": "1.0"
}
}{
"id": "98ca4a78-b66f-4234-9719-aaf832ee6669",
"status": "400",
"title": "A validation error was encountered",
"source": {
"parameter": "include"
},
"meta": {
"resource": "wrong_value"
}
}{
"id": "05fc9c8d-73b9-4697-9337-57f7a567a48f",
"status": "401",
"title": "You are not authorised to access this resource",
"detail": "In order to access this resource, you need the 'admin' role.",
"code": "AUTH.001"
}{
"errors": [
{
"id": "1b3f2c30-2d56-4d3a-9c44-9be9c2cbf2f0",
"status": "403",
"title": "Forbidden",
"detail": "You do not hold the grant required for this action.",
"code": "AUTH.002"
}
]
}{
"id": "7b4c8f12-3e9a-4d5b-8c6f-1a2b3c4d5e6f",
"status": "404",
"title": "Resource not found",
"detail": "The requested resource could not be found or does not exist.",
"code": "NOT_FOUND.001"
}{
"id": "fe9d9a69-f0a7-4fdc-bb2c-176027f316c5",
"status": "500",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server."
}Pre-Construction Information
Record an F10 notification
Record an F10 notification sent to HSE. Only the Client can. The sender is the authenticated principal, and the record carries the pack’s current revision. A record cannot be changed or deleted afterwards: a correction is an update notification. Attach the submitted notification with the attachments endpoint.
POST
/
v3
/
f10-notifications
Record an F10 notification
curl --request POST \
--url https://api.ctrl-hub.com/v3/f10-notifications \
--header 'Content-Type: application/vnd.api+json' \
--header 'X-Session-Token: <api-key>' \
--data '
{
"data": {
"type": "f10-notifications",
"attributes": {
"sent_on": "2023-12-25",
"hse_reference": "<string>",
"notes": "<string>"
},
"relationships": {
"pre_construction_information": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "pre-construction-informations"
}
}
}
}
}
'import requests
url = "https://api.ctrl-hub.com/v3/f10-notifications"
payload = { "data": {
"type": "f10-notifications",
"attributes": {
"sent_on": "2023-12-25",
"hse_reference": "<string>",
"notes": "<string>"
},
"relationships": { "pre_construction_information": { "data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "pre-construction-informations"
} } }
} }
headers = {
"X-Session-Token": "<api-key>",
"Content-Type": "application/vnd.api+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Session-Token': '<api-key>', 'Content-Type': 'application/vnd.api+json'},
body: JSON.stringify({
data: {
type: 'f10-notifications',
attributes: {sent_on: '2023-12-25', hse_reference: '<string>', notes: '<string>'},
relationships: {
pre_construction_information: {
data: {
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
type: 'pre-construction-informations'
}
}
}
}
})
};
fetch('https://api.ctrl-hub.com/v3/f10-notifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ctrl-hub.com/v3/f10-notifications",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'type' => 'f10-notifications',
'attributes' => [
'sent_on' => '2023-12-25',
'hse_reference' => '<string>',
'notes' => '<string>'
],
'relationships' => [
'pre_construction_information' => [
'data' => [
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'type' => 'pre-construction-informations'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/vnd.api+json",
"X-Session-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.ctrl-hub.com/v3/f10-notifications"
payload := strings.NewReader("{\n \"data\": {\n \"type\": \"f10-notifications\",\n \"attributes\": {\n \"sent_on\": \"2023-12-25\",\n \"hse_reference\": \"<string>\",\n \"notes\": \"<string>\"\n },\n \"relationships\": {\n \"pre_construction_information\": {\n \"data\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"pre-construction-informations\"\n }\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Session-Token", "<api-key>")
req.Header.Add("Content-Type", "application/vnd.api+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.ctrl-hub.com/v3/f10-notifications")
.header("X-Session-Token", "<api-key>")
.header("Content-Type", "application/vnd.api+json")
.body("{\n \"data\": {\n \"type\": \"f10-notifications\",\n \"attributes\": {\n \"sent_on\": \"2023-12-25\",\n \"hse_reference\": \"<string>\",\n \"notes\": \"<string>\"\n },\n \"relationships\": {\n \"pre_construction_information\": {\n \"data\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"pre-construction-informations\"\n }\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ctrl-hub.com/v3/f10-notifications")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Session-Token"] = '<api-key>'
request["Content-Type"] = 'application/vnd.api+json'
request.body = "{\n \"data\": {\n \"type\": \"f10-notifications\",\n \"attributes\": {\n \"sent_on\": \"2023-12-25\",\n \"hse_reference\": \"<string>\",\n \"notes\": \"<string>\"\n },\n \"relationships\": {\n \"pre_construction_information\": {\n \"data\": {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"type\": \"pre-construction-informations\"\n }\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "f10-notifications",
"attributes": {
"kind": "initial",
"sent_on": "2023-12-25",
"sender": {
"acting_role": "client_and_principal_designer",
"organisation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"at": "2023-11-07T05:31:56Z",
"principal_type": "users",
"principal_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"revision": 123,
"created_at": "2023-11-07T05:31:56Z",
"hse_reference": "<string>",
"notes": "<string>"
},
"relationships": {
"organisation": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "organisations"
}
},
"scheme": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "schemes"
}
},
"pre_construction_information": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "pre-construction-informations"
}
},
"media_folder": {
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"type": "folders"
}
}
}
},
"jsonapi": {
"version": "1.0"
}
}{
"id": "98ca4a78-b66f-4234-9719-aaf832ee6669",
"status": "400",
"title": "A validation error was encountered",
"source": {
"parameter": "include"
},
"meta": {
"resource": "wrong_value"
}
}{
"id": "05fc9c8d-73b9-4697-9337-57f7a567a48f",
"status": "401",
"title": "You are not authorised to access this resource",
"detail": "In order to access this resource, you need the 'admin' role.",
"code": "AUTH.001"
}{
"errors": [
{
"id": "1b3f2c30-2d56-4d3a-9c44-9be9c2cbf2f0",
"status": "403",
"title": "Forbidden",
"detail": "You do not hold the grant required for this action.",
"code": "AUTH.002"
}
]
}{
"id": "7b4c8f12-3e9a-4d5b-8c6f-1a2b3c4d5e6f",
"status": "404",
"title": "Resource not found",
"detail": "The requested resource could not be found or does not exist.",
"code": "NOT_FOUND.001"
}{
"id": "fe9d9a69-f0a7-4fdc-bb2c-176027f316c5",
"status": "500",
"title": "Internal Server Error",
"detail": "An unexpected error occurred on the server."
}Authorizations
SessionOAuth2Cookie
Session token for authentication.
Body
application/vnd.api+json
Record an F10 notification sent to HSE. Only the Client can. The sender and the pack revision are set by the server and are not accepted here.
Show child attributes
Show child attributes