diff --git a/proxies/live/apiproxy/policies/RaiseFault.400MissingRequestIdHeader.xml b/proxies/live/apiproxy/policies/RaiseFault.400MissingRequestIdHeader.xml
new file mode 100644
index 0000000..3ad87cf
--- /dev/null
+++ b/proxies/live/apiproxy/policies/RaiseFault.400MissingRequestIdHeader.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ {
+ "resourceType": "OperationOutcome",
+ "issue": [ {
+ "severity": "error",
+ "code": "invalid",
+ "details": {
+ "coding": [ {
+ "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode",
+ "code": "MISSING_OR_INVALID_HEADER",
+ "display": "There is a required header missing or invalid"
+ } ]
+ },
+ "diagnostics": "The X-Request-Id header is missing or invalid"
+ } ]
+ }
+
+ 400
+ Bad Request
+
+
+ true
+
diff --git a/proxies/live/apiproxy/proxies/default.xml b/proxies/live/apiproxy/proxies/default.xml
index f37806a..9e20b1a 100644
--- a/proxies/live/apiproxy/proxies/default.xml
+++ b/proxies/live/apiproxy/proxies/default.xml
@@ -28,6 +28,14 @@
(proxy.pathsuffix MatchesPath "/_status") and ((request.verb = "GET") or (request.verb = "HEAD"))
+
+
+
+ RaiseFault.400MissingRequestIdHeader
+
+
+ request.verb != "OPTIONS" and (request.header.X-Request-Id = null or request.header.X-Request-Id = "")
+
diff --git a/proxies/sandbox/apiproxy/policies/RaiseFault.400MissingRequestIdHeader.xml b/proxies/sandbox/apiproxy/policies/RaiseFault.400MissingRequestIdHeader.xml
new file mode 100644
index 0000000..3ad87cf
--- /dev/null
+++ b/proxies/sandbox/apiproxy/policies/RaiseFault.400MissingRequestIdHeader.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ {
+ "resourceType": "OperationOutcome",
+ "issue": [ {
+ "severity": "error",
+ "code": "invalid",
+ "details": {
+ "coding": [ {
+ "system": "https://fhir.nhs.uk/CodeSystem/Spine-ErrorOrWarningCode",
+ "code": "MISSING_OR_INVALID_HEADER",
+ "display": "There is a required header missing or invalid"
+ } ]
+ },
+ "diagnostics": "The X-Request-Id header is missing or invalid"
+ } ]
+ }
+
+ 400
+ Bad Request
+
+
+ true
+
diff --git a/proxies/sandbox/apiproxy/proxies/default.xml b/proxies/sandbox/apiproxy/proxies/default.xml
index 9673016..3f7b9bd 100644
--- a/proxies/sandbox/apiproxy/proxies/default.xml
+++ b/proxies/sandbox/apiproxy/proxies/default.xml
@@ -29,6 +29,14 @@
(proxy.pathsuffix MatchesPath "/_status") and ((request.verb = "GET") or (request.verb = "HEAD"))
+
+
+
+ RaiseFault.400MissingRequestIdHeader
+
+
+ request.verb != "OPTIONS" and (request.header.X-Request-Id = null or request.header.X-Request-Id = "")
+