{
  "openapi": "3.0.3",
  "info": {
    "title": "Stratum Transactions API",
    "version": "1.0.0",
    "description": "A whole job (a letting, a sale, a finance or business client, a screening list) in one place: the people, companies and property in it, the checks chosen, one run, and one signed certificate. Paid per check from your Stratum credit."
  },
  "servers": [
    {
      "url": "https://api.stratumapis.com"
    }
  ],
  "security": [
    {
      "accountKey": []
    }
  ],
  "paths": {
    "/v1/transactions": {
      "post": {
        "operationId": "createTransaction",
        "summary": "Start a transaction.",
        "description": "`type` is `letting`, `sale`, `finance` or `screening`. Optional: `jurisdiction` (`england`, `scotland`, `wales`, `ni`), `rentPence` for a letting, and `\"preset\": \"kyb\"` with `finance` to open with a company and the KYB package chosen. Free.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "type": "letting",
                "jurisdiction": "england"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "example": {
                  "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
                  "createdAt": "2026-10-06T22:51:00.736Z"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorised"
          }
        }
      },
      "get": {
        "operationId": "listTransactions",
        "summary": "Your transactions, newest first.",
        "responses": {
          "200": {
            "description": "Your transactions.",
            "content": {
              "application/json": {
                "example": {
                  "transactions": [
                    {
                      "customerId": "user_your_account",
                      "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
                      "brand": "stratum",
                      "type": "letting",
                      "status": "complete",
                      "createdAt": "2026-10-06T22:51:00.736Z",
                      "updatedAt": "2026-10-06T22:51:12.795Z",
                      "jurisdiction": "england",
                      "reference": {
                        "matterRef": "LET-0042"
                      },
                      "parties": [
                        {
                          "kind": "individual",
                          "name": "Jo Proof-Tenant",
                          "partyId": "tenant-1",
                          "role": "tenant"
                        },
                        {
                          "kind": "individual",
                          "name": "Sam Proof-Landlord",
                          "partyId": "landlord-1",
                          "role": "landlord"
                        }
                      ],
                      "property": {
                        "addressLine1": "1 Park Row",
                        "postcode": "LS1 5HN"
                      },
                      "selectedCheckKeys": [
                        "sanctions",
                        "propertyPack"
                      ],
                      "results": [
                        {
                          "checkId": "b09476da-5240-41e0",
                          "checkKey": "sanctions",
                          "costPence": 5,
                          "findings": {
                            "sanctions": 0
                          },
                          "inputKey": "sanctions-screening|jo proof-tenant||||",
                          "partyId": "tenant-1",
                          "ranAt": "2026-10-06T22:51:01.045Z",
                          "status": "success"
                        },
                        {
                          "checkId": "fe610b1b-a257-40cf",
                          "checkKey": "sanctions",
                          "costPence": 5,
                          "findings": {
                            "sanctions": 0
                          },
                          "inputKey": "sanctions-screening|sam proof-landlord||||",
                          "partyId": "landlord-1",
                          "ranAt": "2026-10-06T22:51:02.282Z",
                          "status": "success"
                        },
                        {
                          "checkId": "a38140e3-489b-4b08",
                          "checkKey": "propertyPack",
                          "costPence": 59,
                          "detail": "Postcode, crime & flood",
                          "inputKey": "postcode-intelligence|ls1 5hn||||",
                          "ranAt": "2026-10-06T22:51:02.415Z",
                          "status": "success"
                        },
                        {
                          "checkId": "9d37932e-66c8-45ae",
                          "checkKey": "propertyPack",
                          "costPence": 0,
                          "detail": "EPC certificate",
                          "inputKey": "epc-energy|ls1 5hn||||1 park row",
                          "ranAt": "2026-10-06T22:51:11.839Z",
                          "status": "success"
                        }
                      ],
                      "certHash": "d7ee0894793d051928a6",
                      "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
                      "cert": {
                        "checksSummary": [
                          {
                            "label": "Sanctions screening",
                            "status": "Complete"
                          },
                          {
                            "label": "Property risk pack",
                            "status": "Complete"
                          }
                        ],
                        "firmName": "Proof Lettings Ltd",
                        "fullHash": "d7ee0894793d051928a6684511ab7b3f8ade983093ac6a6abb9f9b997ee48fdf",
                        "generatedAt": "2026-10-06T22:51:12.782Z",
                        "hashPrefix": "d7ee0894793d051928a6",
                        "listVersions": {
                          "epcQueriedAt": "2026-10-06",
                          "postcodeQueriedAt": "2026-10-06",
                          "sanctions": "screened 2026-10-06"
                        },
                        "reference": "LET-0042",
                        "summaryVerdict": "PASS"
                      },
                      "chargedPence": 69
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorised"
          }
        }
      }
    },
    "/v1/transactions/{id}": {
      "get": {
        "operationId": "getTransaction",
        "summary": "One transaction: its people, checks, results, certificate and watch.",
        "description": "Each row of `results` is one check on one party (or the property): `status`, `costPence`, `ranAt` and, for screens, `findings` (how many possible matches). Open a row with `GET /v1/transactions/{id}/checks/{checkId}` for the detail.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `txnId` from creating the transaction.",
            "schema": {
              "type": "string"
            },
            "example": "8b53c8a4-bc54-447a-acd7-f97d1f704468"
          }
        ],
        "responses": {
          "200": {
            "description": "The transaction.",
            "content": {
              "application/json": {
                "example": {
                  "transaction": {
                    "customerId": "user_your_account",
                    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
                    "brand": "stratum",
                    "type": "letting",
                    "status": "complete",
                    "createdAt": "2026-10-06T22:51:00.736Z",
                    "updatedAt": "2026-10-06T22:51:12.795Z",
                    "jurisdiction": "england",
                    "reference": {
                      "matterRef": "LET-0042"
                    },
                    "parties": [
                      {
                        "kind": "individual",
                        "name": "Jo Proof-Tenant",
                        "partyId": "tenant-1",
                        "role": "tenant"
                      },
                      {
                        "kind": "individual",
                        "name": "Sam Proof-Landlord",
                        "partyId": "landlord-1",
                        "role": "landlord"
                      }
                    ],
                    "property": {
                      "addressLine1": "1 Park Row",
                      "postcode": "LS1 5HN"
                    },
                    "selectedCheckKeys": [
                      "sanctions",
                      "propertyPack"
                    ],
                    "results": [
                      {
                        "checkId": "b09476da-5240-41e0",
                        "checkKey": "sanctions",
                        "costPence": 5,
                        "findings": {
                          "sanctions": 0
                        },
                        "inputKey": "sanctions-screening|jo proof-tenant||||",
                        "partyId": "tenant-1",
                        "ranAt": "2026-10-06T22:51:01.045Z",
                        "status": "success"
                      },
                      {
                        "checkId": "fe610b1b-a257-40cf",
                        "checkKey": "sanctions",
                        "costPence": 5,
                        "findings": {
                          "sanctions": 0
                        },
                        "inputKey": "sanctions-screening|sam proof-landlord||||",
                        "partyId": "landlord-1",
                        "ranAt": "2026-10-06T22:51:02.282Z",
                        "status": "success"
                      },
                      {
                        "checkId": "a38140e3-489b-4b08",
                        "checkKey": "propertyPack",
                        "costPence": 59,
                        "detail": "Postcode, crime & flood",
                        "inputKey": "postcode-intelligence|ls1 5hn||||",
                        "ranAt": "2026-10-06T22:51:02.415Z",
                        "status": "success"
                      },
                      {
                        "checkId": "9d37932e-66c8-45ae",
                        "checkKey": "propertyPack",
                        "costPence": 0,
                        "detail": "EPC certificate",
                        "inputKey": "epc-energy|ls1 5hn||||1 park row",
                        "ranAt": "2026-10-06T22:51:11.839Z",
                        "status": "success"
                      }
                    ],
                    "certHash": "d7ee0894793d051928a6",
                    "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
                    "cert": {
                      "checksSummary": [
                        {
                          "label": "Sanctions screening",
                          "status": "Complete"
                        },
                        {
                          "label": "Property risk pack",
                          "status": "Complete"
                        }
                      ],
                      "firmName": "Proof Lettings Ltd",
                      "fullHash": "d7ee0894793d051928a6684511ab7b3f8ade983093ac6a6abb9f9b997ee48fdf",
                      "generatedAt": "2026-10-06T22:51:12.782Z",
                      "hashPrefix": "d7ee0894793d051928a6",
                      "listVersions": {
                        "epcQueriedAt": "2026-10-06",
                        "postcodeQueriedAt": "2026-10-06",
                        "sanctions": "screened 2026-10-06"
                      },
                      "reference": "LET-0042",
                      "summaryVerdict": "PASS"
                    },
                    "chargedPence": 69
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateTransaction",
        "summary": "Set the people, the property, your reference and the checks.",
        "description": "`parties`: each with your own `partyId`, a `role` (`tenant`, `landlord`, `guarantor`; `buyer`, `seller`, `payer`; `client`, `director`, `counterparty`), a `kind` (`individual` or `corporate`), a `name`, and for a company its `companyNumber`; optional `dob` (YYYY-MM-DD) and `nationality` (ISO alpha-2) sharpen a screen. `property`: `postcode`, `addressLine1`. `reference`: `matterRef`, `notes`. `selectedCheckKeys`: see the guide above; a check not sold on Stratum is refused by name (400 `not_offered`). Sending `parties` replaces the list. Free.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `txnId` from creating the transaction.",
            "schema": {
              "type": "string"
            },
            "example": "8b53c8a4-bc54-447a-acd7-f97d1f704468"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "parties": [
                  {
                    "partyId": "tenant-1",
                    "role": "tenant",
                    "kind": "individual",
                    "name": "Jo Proof-Tenant"
                  },
                  {
                    "partyId": "landlord-1",
                    "role": "landlord",
                    "kind": "individual",
                    "name": "Sam Proof-Landlord"
                  }
                ],
                "property": {
                  "postcode": "LS1 5HN",
                  "addressLine1": "1 Park Row"
                },
                "reference": {
                  "matterRef": "LET-0042"
                },
                "selectedCheckKeys": [
                  "sanctions",
                  "propertyPack"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Saved.",
            "content": {
              "application/json": {
                "example": {
                  "transaction": {
                    "customerId": "user_your_account",
                    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
                    "brand": "stratum",
                    "type": "letting",
                    "status": "draft",
                    "createdAt": "2026-10-06T22:51:00.736Z",
                    "updatedAt": "2026-10-06T22:51:00.840Z",
                    "jurisdiction": "england",
                    "reference": {
                      "matterRef": "LET-0042"
                    },
                    "parties": [
                      {
                        "partyId": "tenant-1",
                        "role": "tenant",
                        "kind": "individual",
                        "name": "Jo Proof-Tenant"
                      },
                      {
                        "partyId": "landlord-1",
                        "role": "landlord",
                        "kind": "individual",
                        "name": "Sam Proof-Landlord"
                      }
                    ],
                    "property": {
                      "postcode": "LS1 5HN",
                      "addressLine1": "1 Park Row"
                    },
                    "selectedCheckKeys": [
                      "sanctions",
                      "propertyPack"
                    ],
                    "results": []
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/transactions/{id}/quote": {
      "get": {
        "operationId": "quoteTransaction",
        "summary": "What a run will cost, at your prices, and your balance.",
        "description": "Assumes every chosen check runs; a run again charges only new, changed and failed checks. `monthVolume` is your account's checks of each kind this month; a line at the lower price carries `\"volumePrice\": true`. Free.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `txnId` from creating the transaction.",
            "schema": {
              "type": "string"
            },
            "example": "8b53c8a4-bc54-447a-acd7-f97d1f704468"
          }
        ],
        "responses": {
          "200": {
            "description": "The quote.",
            "content": {
              "application/json": {
                "example": {
                  "ok": true,
                  "lineItems": [
                    {
                      "checkKey": "sanctions",
                      "label": "Sanctions screening",
                      "qty": 2,
                      "unitPence": 5,
                      "subtotalPence": 10,
                      "priced": true
                    },
                    {
                      "checkKey": "propertyPack",
                      "label": "Property risk pack",
                      "qty": 1,
                      "unitPence": 59,
                      "subtotalPence": 59,
                      "priced": true
                    }
                  ],
                  "totalPence": 69,
                  "fromPence": 5,
                  "certIncluded": true,
                  "currency": "GBP",
                  "balancePence": 100,
                  "monthVolume": {}
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/transactions/{id}/run": {
      "post": {
        "operationId": "runTransaction",
        "summary": "Run the chosen checks, charge them from your credit, and issue the certificate.",
        "description": "Body optional: `{ \"recheck\": true }` runs every check again, charged; `{ \"continue\": true }` runs the next part when a reply said `\"more\": true`. A check that fails is not charged. With too little credit nothing runs: HTTP 402.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `txnId` from creating the transaction.",
            "schema": {
              "type": "string"
            },
            "example": "8b53c8a4-bc54-447a-acd7-f97d1f704468"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "example": {}
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ran. `certHash` is the certificate (stratumapis.com/verify/<first 20 characters>).",
            "content": {
              "application/json": {
                "example": {
                  "ok": true,
                  "status": "completed",
                  "totalChargedPence": 69,
                  "reusedCount": 0,
                  "balanceAfterPence": 31,
                  "watchFailed": [],
                  "certHash": "d7ee0894793d051928a6",
                  "transaction": {
                    "customerId": "user_your_account",
                    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
                    "brand": "stratum",
                    "type": "letting",
                    "status": "complete",
                    "createdAt": "2026-10-06T22:51:00.736Z",
                    "updatedAt": "2026-10-06T22:51:12.795Z",
                    "jurisdiction": "england",
                    "reference": {
                      "matterRef": "LET-0042"
                    },
                    "parties": [
                      {
                        "kind": "individual",
                        "name": "Jo Proof-Tenant",
                        "partyId": "tenant-1",
                        "role": "tenant"
                      },
                      {
                        "kind": "individual",
                        "name": "Sam Proof-Landlord",
                        "partyId": "landlord-1",
                        "role": "landlord"
                      }
                    ],
                    "property": {
                      "addressLine1": "1 Park Row",
                      "postcode": "LS1 5HN"
                    },
                    "selectedCheckKeys": [
                      "sanctions",
                      "propertyPack"
                    ],
                    "results": [
                      {
                        "checkKey": "sanctions",
                        "partyId": "tenant-1",
                        "checkId": "b09476da-5240-41e0",
                        "status": "success",
                        "costPence": 5,
                        "ranAt": "2026-10-06T22:51:01.045Z",
                        "inputKey": "sanctions-screening|jo proof-tenant||||",
                        "findings": {
                          "sanctions": 0
                        }
                      },
                      {
                        "checkKey": "sanctions",
                        "partyId": "landlord-1",
                        "checkId": "fe610b1b-a257-40cf",
                        "status": "success",
                        "costPence": 5,
                        "ranAt": "2026-10-06T22:51:02.282Z",
                        "inputKey": "sanctions-screening|sam proof-landlord||||",
                        "findings": {
                          "sanctions": 0
                        }
                      },
                      {
                        "checkKey": "propertyPack",
                        "checkId": "a38140e3-489b-4b08",
                        "status": "success",
                        "costPence": 59,
                        "ranAt": "2026-10-06T22:51:02.415Z",
                        "inputKey": "postcode-intelligence|ls1 5hn||||",
                        "detail": "Postcode, crime & flood"
                      },
                      {
                        "checkKey": "propertyPack",
                        "checkId": "9d37932e-66c8-45ae",
                        "status": "success",
                        "costPence": 0,
                        "ranAt": "2026-10-06T22:51:11.839Z",
                        "inputKey": "epc-energy|ls1 5hn||||1 park row",
                        "detail": "EPC certificate"
                      }
                    ],
                    "certHash": "d7ee0894793d051928a6",
                    "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
                    "cert": {
                      "hashPrefix": "d7ee0894793d051928a6",
                      "fullHash": "d7ee0894793d051928a6684511ab7b3f8ade983093ac6a6abb9f9b997ee48fdf",
                      "generatedAt": "2026-10-06T22:51:12.782Z",
                      "summaryVerdict": "PASS",
                      "firmName": "Proof Lettings Ltd",
                      "listVersions": {
                        "epcQueriedAt": "2026-10-06",
                        "postcodeQueriedAt": "2026-10-06",
                        "sanctions": "screened 2026-10-06"
                      },
                      "checksSummary": [
                        {
                          "label": "Sanctions screening",
                          "status": "Complete"
                        },
                        {
                          "label": "Property risk pack",
                          "status": "Complete"
                        }
                      ],
                      "reference": "LET-0042"
                    },
                    "chargedPence": 69
                  }
                }
              }
            }
          },
          "402": {
            "description": "Not enough credit: nothing ran, nothing was charged. `neededPence`, `balancePence`, `topUpPath`.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "reason": "insufficient_credit",
                  "message": "You do not have enough credit to run this transaction. Top up to continue.",
                  "neededPence": 64,
                  "balancePence": 31,
                  "topUpPath": "https://stratumapis.com/dashboard"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/transactions/{id}/checks/{checkId}": {
      "get": {
        "operationId": "getCheck",
        "summary": "The full answer behind one result row.",
        "description": "Who a screen matched and on which list, the EPC rating, the flood zone: `result` is the answer as the data source gave it (the same as the single APIs; `result.checkId` is the data source reference, kept on the certificate). Free.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `txnId` from creating the transaction.",
            "schema": {
              "type": "string"
            },
            "example": "8b53c8a4-bc54-447a-acd7-f97d1f704468"
          },
          {
            "name": "checkId",
            "in": "path",
            "required": true,
            "description": "A `checkId` from the transaction's `results`.",
            "schema": {
              "type": "string"
            },
            "example": "b09476da-5240-41e0"
          }
        ],
        "responses": {
          "200": {
            "description": "The check.",
            "content": {
              "application/json": {
                "examples": {
                  "sanctions": {
                    "summary": "A sanctions screen",
                    "value": {
                      "ok": true,
                      "checkId": "b09476da-5240-41e0",
                      "checkKey": "sanctions",
                      "partyId": "tenant-1",
                      "status": "success",
                      "ranAt": "2026-10-06T22:51:01.045Z",
                      "costPence": 5,
                      "source": "sanctions-screening",
                      "input": "Jo Proof-Tenant",
                      "result": {
                        "checkId": "chk_41f1a051-3af2-4784-8cdb-cf7825c39e2c",
                        "screenedAt": "2026-10-06T22:51:01.726Z",
                        "query": "Jo Proof-Tenant",
                        "count": 0,
                        "matches": [],
                        "screenedWith": {
                          "type": "any",
                          "minScore": 0.7
                        },
                        "listsScreened": [
                          "UK Sanctions List (FCDO) (updated 2026-10-06)",
                          "UN Security Council Consolidated Sanctions List (updated 2026-10-06)",
                          "EU Consolidated Financial Sanctions List (updated 2026-10-06)",
                          "US OFAC Sanctions Lists (SDN and non-SDN) (updated 2026-10-06)"
                        ],
                        "screenProvenance": "Screened against: UK Sanctions List (FCDO), UN Security Council Consolidated Sanctions List, EU Consolidated Financial Sanctions List and US OFAC Sanctions Lists (SDN and non-SDN).",
                        "listsSnapshotAt": "2026-10-06T04:00:47.663Z"
                      }
                    }
                  },
                  "property": {
                    "summary": "The property risk pack (postcode, crime and flood part)",
                    "value": {
                      "ok": true,
                      "checkId": "a38140e3-489b-4b08",
                      "checkKey": "propertyPack",
                      "detail": "Postcode, crime & flood",
                      "status": "success",
                      "ranAt": "2026-10-06T22:51:02.415Z",
                      "costPence": 59,
                      "source": "postcode-intelligence",
                      "input": "LS1 5HN",
                      "result": {
                        "postcode": "LS1 5HN",
                        "latitude": 53.797146,
                        "longitude": -1.546845,
                        "localAuthority": "Leeds",
                        "constituency": "Leeds Central and Headingley",
                        "lsoaCode": "E01033010",
                        "outcode": "LS1",
                        "crime": {
                          "monthsObserved": 1,
                          "totalCount": 1521,
                          "byCategory": {
                            "anti-social-behaviour": 149,
                            "bicycle-theft": 18,
                            "burglary": 54,
                            "criminal-damage-arson": 77,
                            "drugs": 64,
                            "other-theft": 116,
                            "possession-of-weapons": 10,
                            "public-order": 100,
                            "robbery": 42,
                            "shoplifting": 327,
                            "theft-from-the-person": 36,
                            "vehicle-crime": 91,
                            "violent-crime": 416,
                            "other-crime": 21
                          },
                          "nearbyCount": 1521,
                          "monthQueried": "2026-08",
                          "rating": {
                            "areaMonthlyCount": 1521,
                            "ukReferenceMonthlyCount": 80,
                            "ratio": 19.01,
                            "rating": "E",
                            "interpretation": "Recorded crimes are 1901% of the typical UK residential level. Significantly above average; common for city-centre or transport-hub 1-mile areas. Review the per-category breakdown for context.",
                            "methodology": "Compared to a typical UK residential 1-mile area. Does not density-adjust; city-centre postcodes will rate E even if safe for their setting."
                          }
                        },
                        "flood": {
                          "riverAndSea": "low",
                          "floodZone": "1",
                          "floodZoneSource": null,
                          "historicalEventCount": 0,
                          "nearestStation": "Batley Carlinghow",
                          "currentWarning": null,
                          "recommendation": "Flood Zone 1 at this postcode's centre: a low probability of flooding from rivers or the sea (under 0.1% a year). For the exact address, use the government's \"Check your long term flood risk\" service.",
                          "postcodeArea": "LS",
                          "source": "ea-flood-zones"
                        },
                        "radon": {
                          "band": "unknown",
                          "percentageAboveActionLevel": null,
                          "testRecommended": null,
                          "postcodeArea": "LS",
                          "source": "not-checked",
                          "screened": false,
                          "recommendation": "Not checked: we don't hold radon data for individual postcodes yet. The UKHSA radon map shows the risk for an address: ukradon.org."
                        },
                        "coalMining": {
                          "band": "low",
                          "matchedPolygonIds": [
                            "9577"
                          ],
                          "recommendation": "At the postcode centre this is in the coal mining reporting area (the coalfield), outside its high-risk areas. Lenders and the Law Society expect a CON29M coal mining report for a property in the coalfield. The exact address can be checked on the Mining Remediation Authority's map (https://datamine-cauk.hub.arcgis.com/).",
                          "screened": true,
                          "source": "Mining Remediation Authority",
                          "checkedAt": "2026-10-06T22:51:03.460Z"
                        },
                        "knotweed": {
                          "band": "unknown",
                          "postcodeArea": "LS",
                          "source": "not-checked",
                          "screened": false,
                          "recommendation": "Not checked: we don't hold Japanese knotweed data yet. Rely on the seller's answer in the property information form (TA6) and look for it when viewing.",
                          "disclaimer": "Knotweed band is proxy-derived from INNS / iRecord public sightings aggregated to postcode-area resolution. It is NOT a property-level survey. A buyer should still rely on the seller's TA6 disclosure + a chartered surveyor's field check before exchange."
                        },
                        "contaminatedLand": {
                          "band": "unknown",
                          "contaminatedLandRecords": [],
                          "landfill": {
                            "band": "unknown",
                            "approxNearbyCount": null,
                            "sites": [],
                            "postcodeArea": "LS",
                            "source": "not-checked",
                            "screened": false,
                            "recommendation": "Not checked: we don't hold the Environment Agency landfill register yet. An environmental search before exchange covers it."
                          },
                          "laAdapterAvailable": false,
                          "localAuthority": "Leeds",
                          "screened": false,
                          "recommendation": "Not checked: we don't hold council contaminated-land registers or the Environment Agency landfill register yet. An environmental search before exchange covers both.",
                          "disclaimer": "Contaminated-land register coverage is partial; only Local Authorities with a wired adapter are queried. EA landfill data is national. A \"low/none\" verdict from this lookup is NOT a guarantee that the property is uncontaminated; commission a full EA Environmental Search through a chartered surveyor before exchange."
                        },
                        "deprivation": {
                          "lsoaCode": "E01033010",
                          "outOf": 33755,
                          "source": "English Indices of Deprivation 2025 (MHCLG, published 30 October 2025)",
                          "decile": 3,
                          "rank": 9101,
                          "incomeDecile": 10,
                          "employmentDecile": 10
                        },
                        "retrievedAt": "2026-10-06T22:51:11.642Z"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/transactions/{id}/monitor": {
      "post": {
        "operationId": "startMonitoring",
        "summary": "Watch everyone named, daily, until the job is closed.",
        "description": "Each person is re-screened daily against the sanctions lists; you are emailed if one is added. Included.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `txnId` from creating the transaction.",
            "schema": {
              "type": "string"
            },
            "example": "8b53c8a4-bc54-447a-acd7-f97d1f704468"
          }
        ],
        "responses": {
          "200": {
            "description": "Watching.",
            "content": {
              "application/json": {
                "example": {
                  "ok": true,
                  "failed": [],
                  "transaction": {
                    "customerId": "user_your_account",
                    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
                    "brand": "stratum",
                    "type": "letting",
                    "status": "complete",
                    "createdAt": "2026-10-06T22:51:00.736Z",
                    "updatedAt": "2026-10-06T22:51:31.729Z",
                    "jurisdiction": "england",
                    "reference": {
                      "matterRef": "LET-0042"
                    },
                    "parties": [
                      {
                        "kind": "individual",
                        "name": "Jo Proof-Tenant",
                        "partyId": "tenant-1",
                        "role": "tenant"
                      },
                      {
                        "kind": "individual",
                        "name": "Sam Proof-Landlord",
                        "partyId": "landlord-1",
                        "role": "landlord"
                      }
                    ],
                    "property": {
                      "addressLine1": "1 Park Row",
                      "postcode": "LS1 5HN"
                    },
                    "selectedCheckKeys": [
                      "sanctions",
                      "propertyPack",
                      "monitoring"
                    ],
                    "results": [
                      {
                        "checkId": "b09476da-5240-41e0",
                        "checkKey": "sanctions",
                        "costPence": 5,
                        "findings": {
                          "sanctions": 0
                        },
                        "inputKey": "sanctions-screening|jo proof-tenant||||",
                        "partyId": "tenant-1",
                        "ranAt": "2026-10-06T22:51:01.045Z",
                        "status": "success"
                      },
                      {
                        "checkId": "fe610b1b-a257-40cf",
                        "checkKey": "sanctions",
                        "costPence": 5,
                        "findings": {
                          "sanctions": 0
                        },
                        "inputKey": "sanctions-screening|sam proof-landlord||||",
                        "partyId": "landlord-1",
                        "ranAt": "2026-10-06T22:51:02.282Z",
                        "status": "success"
                      },
                      {
                        "checkId": "a38140e3-489b-4b08",
                        "checkKey": "propertyPack",
                        "costPence": 59,
                        "detail": "Postcode, crime & flood",
                        "inputKey": "postcode-intelligence|ls1 5hn||||",
                        "ranAt": "2026-10-06T22:51:02.415Z",
                        "status": "success"
                      },
                      {
                        "checkId": "9d37932e-66c8-45ae",
                        "checkKey": "propertyPack",
                        "costPence": 0,
                        "detail": "EPC certificate",
                        "inputKey": "epc-energy|ls1 5hn||||1 park row",
                        "ranAt": "2026-10-06T22:51:11.839Z",
                        "status": "success"
                      }
                    ],
                    "certHash": "1044460adfdeb75df882",
                    "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
                    "cert": {
                      "hashPrefix": "1044460adfdeb75df882",
                      "fullHash": "1044460adfdeb75df8828cac937bb65320c83b9051e789f5c0251a7b306756ed",
                      "generatedAt": "2026-10-06T22:51:31.718Z",
                      "summaryVerdict": "PASS",
                      "firmName": "Proof Lettings Ltd",
                      "listVersions": {
                        "epcQueriedAt": "2026-10-06",
                        "postcodeQueriedAt": "2026-10-06",
                        "sanctions": "screened 2026-10-06"
                      },
                      "checksSummary": [
                        {
                          "label": "Sanctions screening",
                          "status": "Complete"
                        },
                        {
                          "label": "Property risk pack",
                          "status": "Complete"
                        }
                      ],
                      "reference": "LET-0042"
                    },
                    "monitoring": {
                      "enabled": true,
                      "entityIds": [],
                      "entries": [
                        {
                          "partyId": "tenant-1",
                          "entityId": "ent_6f4982d4-d95b-4053-8b42-00faa732bde5",
                          "name": "Jo Proof-Tenant"
                        },
                        {
                          "partyId": "landlord-1",
                          "entityId": "ent_ae6df2d0-ec94-4779-9de6-823ee2fa206c",
                          "name": "Sam Proof-Landlord"
                        }
                      ],
                      "startedAt": "2026-10-06T22:51:31.547Z",
                      "until": "2026-11-17",
                      "extendedWeeks": 0,
                      "chargedPence": 0
                    },
                    "chargedPence": 69
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "delete": {
        "operationId": "stopMonitoring",
        "summary": "Stop watching.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `txnId` from creating the transaction.",
            "schema": {
              "type": "string"
            },
            "example": "8b53c8a4-bc54-447a-acd7-f97d1f704468"
          }
        ],
        "responses": {
          "200": {
            "description": "Stopped.",
            "content": {
              "application/json": {
                "example": {
                  "ok": true,
                  "failed": [],
                  "transaction": {
                    "customerId": "user_your_account",
                    "txnId": "8b53c8a4-bc54-447a-acd7-f97d1f704468",
                    "brand": "stratum",
                    "type": "letting",
                    "status": "complete",
                    "createdAt": "2026-10-06T22:51:00.736Z",
                    "updatedAt": "2026-10-06T22:51:31.905Z",
                    "jurisdiction": "england",
                    "reference": {
                      "matterRef": "LET-0042"
                    },
                    "parties": [
                      {
                        "kind": "individual",
                        "name": "Jo Proof-Tenant",
                        "partyId": "tenant-1",
                        "role": "tenant"
                      },
                      {
                        "kind": "individual",
                        "name": "Sam Proof-Landlord",
                        "partyId": "landlord-1",
                        "role": "landlord"
                      }
                    ],
                    "property": {
                      "addressLine1": "1 Park Row",
                      "postcode": "LS1 5HN"
                    },
                    "selectedCheckKeys": [
                      "sanctions",
                      "propertyPack",
                      "monitoring"
                    ],
                    "results": [
                      {
                        "checkId": "b09476da-5240-41e0",
                        "checkKey": "sanctions",
                        "costPence": 5,
                        "findings": {
                          "sanctions": 0
                        },
                        "inputKey": "sanctions-screening|jo proof-tenant||||",
                        "partyId": "tenant-1",
                        "ranAt": "2026-10-06T22:51:01.045Z",
                        "status": "success"
                      },
                      {
                        "checkId": "fe610b1b-a257-40cf",
                        "checkKey": "sanctions",
                        "costPence": 5,
                        "findings": {
                          "sanctions": 0
                        },
                        "inputKey": "sanctions-screening|sam proof-landlord||||",
                        "partyId": "landlord-1",
                        "ranAt": "2026-10-06T22:51:02.282Z",
                        "status": "success"
                      },
                      {
                        "checkId": "a38140e3-489b-4b08",
                        "checkKey": "propertyPack",
                        "costPence": 59,
                        "detail": "Postcode, crime & flood",
                        "inputKey": "postcode-intelligence|ls1 5hn||||",
                        "ranAt": "2026-10-06T22:51:02.415Z",
                        "status": "success"
                      },
                      {
                        "checkId": "9d37932e-66c8-45ae",
                        "checkKey": "propertyPack",
                        "costPence": 0,
                        "detail": "EPC certificate",
                        "inputKey": "epc-energy|ls1 5hn||||1 park row",
                        "ranAt": "2026-10-06T22:51:11.839Z",
                        "status": "success"
                      }
                    ],
                    "certHash": "4ca9ca13a1aeeb80bc90",
                    "certUrl": "/transactions/8b53c8a4-bc54-447a-acd7-f97d1f704468/certificate",
                    "cert": {
                      "hashPrefix": "4ca9ca13a1aeeb80bc90",
                      "fullHash": "4ca9ca13a1aeeb80bc90f069c52b9b61937d2d2688b92c37c166c37ce93c1f43",
                      "generatedAt": "2026-10-06T22:51:31.897Z",
                      "summaryVerdict": "PASS",
                      "firmName": "Proof Lettings Ltd",
                      "listVersions": {
                        "epcQueriedAt": "2026-10-06",
                        "postcodeQueriedAt": "2026-10-06",
                        "sanctions": "screened 2026-10-06"
                      },
                      "checksSummary": [
                        {
                          "label": "Sanctions screening",
                          "status": "Complete"
                        },
                        {
                          "label": "Property risk pack",
                          "status": "Complete"
                        }
                      ],
                      "reference": "LET-0042"
                    },
                    "monitoring": {
                      "chargedPence": 0,
                      "enabled": false,
                      "entityIds": [],
                      "entries": [
                        {
                          "entityId": "ent_6f4982d4-d95b-4053-8b42-00faa732bde5",
                          "name": "Jo Proof-Tenant",
                          "partyId": "tenant-1"
                        },
                        {
                          "entityId": "ent_ae6df2d0-ec94-4779-9de6-823ee2fa206c",
                          "name": "Sam Proof-Landlord",
                          "partyId": "landlord-1"
                        }
                      ],
                      "extendedWeeks": 0,
                      "startedAt": "2026-10-06T22:51:31.547Z",
                      "until": "2026-11-17",
                      "stoppedAt": "2026-10-06T22:51:31.892Z"
                    },
                    "chargedPence": 69
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/transactions/{id}/results.csv": {
      "get": {
        "operationId": "resultsCsv",
        "summary": "The results as a spreadsheet (CSV).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "The `txnId` from creating the transaction.",
            "schema": {
              "type": "string"
            },
            "example": "8b53c8a4-bc54-447a-acd7-f97d1f704468"
          }
        ],
        "responses": {
          "200": {
            "description": "CSV, one row per person.",
            "content": {
              "text/csv": {
                "example": "Name,Type,Date of birth,Nationality,Your reference,Sanctions,PEP and adverse media,Checked at,Check IDs\r\nJo Proof-Tenant,Person,,,,No match,Not selected,2026-10-06 22:51 UTC,b09476da-5240-41e0\r\nSam Proof-Landlord,Person,,,,No match,Not selected,2026-10-06 22:51 UTC,fe610b1b-a257-40cf\r\n"
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v1/transactions/company-lookup": {
      "get": {
        "operationId": "companyLookup",
        "summary": "A company's name and the people its check would screen, before you add it.",
        "description": "From Companies House only, so you can show the price of PEP on its directors and owners first. Free.",
        "parameters": [
          {
            "name": "number",
            "in": "query",
            "required": true,
            "description": "Companies House number.",
            "schema": {
              "type": "string"
            },
            "example": "00445790"
          }
        ],
        "responses": {
          "200": {
            "description": "The company.",
            "content": {
              "application/json": {
                "example": {
                  "ok": true,
                  "companyNumber": "00445790",
                  "companyName": "TESCO PLC",
                  "companyStatus": "active",
                  "people": [
                    {
                      "name": "Christopher Jon Taylor",
                      "roles": [
                        "Secretary"
                      ],
                      "individual": true,
                      "idStatus": "no ID verification details on the register"
                    },
                    {
                      "name": "Melissa Bethell",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 9,
                        "year": 1974
                      },
                      "idStatus": "ID verified 29 Jul 2025"
                    },
                    {
                      "name": "Bertrand Jean Francois Bodson",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 6,
                        "year": 1975
                      },
                      "idStatus": "no ID verification details on the register"
                    },
                    {
                      "name": "Carolyn Julie Fairbairn",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 12,
                        "year": 1960
                      },
                      "idStatus": "no ID verification details on the register"
                    },
                    {
                      "name": "Stewart Charles Gilliland",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 2,
                        "year": 1957
                      },
                      "idStatus": "no ID verification details on the register"
                    },
                    {
                      "name": "Christopher John Kennedy",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 1,
                        "year": 1964
                      },
                      "idStatus": "ID verified 5 Sept 2025"
                    },
                    {
                      "name": "Gerard Martin Murphy",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 11,
                        "year": 1955
                      },
                      "idStatus": "no ID verification details on the register"
                    },
                    {
                      "name": "Ken Murphy",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 9,
                        "year": 1966
                      },
                      "idStatus": "no ID verification details on the register"
                    },
                    {
                      "name": "Imran Nawaz",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 9,
                        "year": 1973
                      },
                      "idStatus": "no ID verification details on the register"
                    },
                    {
                      "name": "Caroline Louise Silver",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 12,
                        "year": 1962
                      },
                      "idStatus": "no ID verification details on the register"
                    },
                    {
                      "name": "Karen Tracy Whitworth",
                      "roles": [
                        "Director"
                      ],
                      "individual": true,
                      "dateOfBirth": {
                        "month": 8,
                        "year": 1969
                      },
                      "idStatus": "ID verified 25 Jul 2025"
                    }
                  ],
                  "notScreened": 0,
                  "ownersUnavailable": false
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          }
        }
      }
    },
    "/v1/transactions/firm": {
      "get": {
        "operationId": "getFirm",
        "summary": "The firm name printed on your certificates.",
        "responses": {
          "200": {
            "description": "`certificateIssuer` is what the next certificate will print.",
            "content": {
              "application/json": {
                "example": {
                  "ok": true,
                  "firmName": null,
                  "firmAddress": null,
                  "certificateIssuer": "Stratum APIs customer"
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "setFirm",
        "summary": "Set the firm name (and address) printed on your certificates.",
        "description": "`firmName` and `firmAddress`, up to 200 characters each; `\"\"` clears one, a field left out is unchanged.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "example": {
                "firmName": "Proof Lettings Ltd",
                "firmAddress": "1 Park Row, Leeds LS1 5HN"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Saved.",
            "content": {
              "application/json": {
                "example": {
                  "ok": true,
                  "firmName": "Proof Lettings Ltd",
                  "firmAddress": "1 Park Row, Leeds LS1 5HN",
                  "certificateIssuer": "Proof Lettings Ltd"
                }
              }
            }
          },
          "400": {
            "description": "Not text, or nothing sent.",
            "content": {
              "application/json": {
                "example": {
                  "ok": false,
                  "reason": "bad_request",
                  "message": "firmName must be text (\"\" clears it)."
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "accountKey": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Stratum-Key",
        "description": "Your account key from the dashboard."
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Something in the request is wrong; `message` says what.",
        "content": {
          "application/json": {
            "example": {
              "ok": false,
              "reason": "not_offered",
              "checkKeys": [
                "epc"
              ],
              "message": "Not available on Stratum yet: epc."
            }
          }
        }
      },
      "NotFound": {
        "description": "No such transaction (or check) on your account.",
        "content": {
          "application/json": {
            "example": {
              "ok": false,
              "reason": "not_found",
              "message": "Transaction not found."
            }
          }
        }
      },
      "Unauthorised": {
        "description": "401: no key, or an invalid or revoked one. 403 `account_key_required`: a key for one API, not your account key.",
        "content": {
          "application/json": {
            "example": {
              "error": {
                "code": "missing_key",
                "message": "Send your account key as X-Stratum-Key. Create one at https://stratumapis.com/dashboard."
              }
            }
          }
        }
      }
    }
  }
}