{"info":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","description":"<html><head></head><body><h1 id=\"eyworks-public-api\"><strong>eyworks Public API</strong></h1>\n<p>The eyworks Public API provides secure, authenticated access to selected data in the eyworks platform for customer integrations, reporting, business intelligence tools and connected applications.</p>\n<h2 id=\"before-you-start\"><strong>Before you start</strong></h2>\n<p>You will need:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Requirement</th>\n<th>Details</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>API licence</td>\n<td>An active API licence for each nursery you want to connect.</td>\n</tr>\n<tr>\n<td>API credentials</td>\n<td>A <code>clientId</code> and <code>clientSecret</code> issued by eyworks.</td>\n</tr>\n<tr>\n<td>Tenant address</td>\n<td>Your organisation's eyworks tenant address.</td>\n</tr>\n<tr>\n<td>Technical setup</td>\n<td>A system or technical team to make the API requests.</td>\n</tr>\n</tbody>\n</table>\n</div><p>API credentials are issued for your tenant and are limited to the nurseries and permissions covered by your licence.</p>\n<h2 id=\"request-api-access\"><strong>Request API access</strong></h2>\n<p>Once your API licence is active, the eyworks support team can generate your tenant-specific integration credentials.</p>\n<p>To discuss API licensing or arrange a licence, email <a href=\"mailto:sales@eyworks.co.uk\">sales@eyworks.co.uk</a>. For credentials, onboarding or technical questions, contact <a href=\"mailto:support@eyworks.co.uk\">support@eyworks.co.uk</a>.</p>\n<h2 id=\"set-up-the-collection\"><strong>Set up the collection</strong></h2>\n<p>Fork or import this collection into your own Postman workspace and set these values locally:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Variable</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>baseUrl</code></td>\n<td>Your tenant address, for example <code>https://your-tenant.eylog.co.uk</code></td>\n</tr>\n<tr>\n<td><code>clientId</code></td>\n<td>The client ID issued by eyworks.</td>\n</tr>\n<tr>\n<td><code>clientSecret</code></td>\n<td>The client secret issued by eyworks.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Do not add a trailing slash to <code>baseUrl</code>. The collection does not include customer credentials or a shared environment.</p>\n<h2 id=\"get-an-access-token\"><strong>Get an access token</strong></h2>\n<ol>\n<li>Set your local <code>baseUrl</code>, <code>clientId</code> and <code>clientSecret</code> values.</li>\n<li>Open <strong>Auth &gt; Create Token (Client Credentials)</strong>.</li>\n<li>Send the request.</li>\n<li>The collection saves the returned access and refresh tokens locally in your Postman environment.</li>\n<li>Use the access token for protected requests.</li>\n</ol>\n<p>The token endpoint is:</p>\n<p><code>POST /public/v1/oauth/token</code></p>\n<p>Use the returned token in the following header:</p>\n<p><code>Authorization: Bearer &lt;accessToken&gt;</code></p>\n<p>When the access token expires, use <strong>Auth &gt; Refresh Token</strong>. Refresh tokens are single-use and are rotated when refreshed.</p>\n<h2 id=\"api-scopes\"><strong>API scopes</strong></h2>\n<p>Your client is assigned scopes that control which areas of the API it can use:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Scope</th>\n<th>Access</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company:read</code></td>\n<td>Company data.</td>\n</tr>\n<tr>\n<td><code>nurseries:read</code></td>\n<td>Nursery data, rooms, sessions and company nursery lists.</td>\n</tr>\n<tr>\n<td><code>employee:read</code></td>\n<td>Employee data, qualifications and training.</td>\n</tr>\n<tr>\n<td><code>children:read</code></td>\n<td>Child data.</td>\n</tr>\n<tr>\n<td><code>enquiries:read</code></td>\n<td>Enquiry data and enquiry lookup values.</td>\n</tr>\n<tr>\n<td><code>enquiries:write</code></td>\n<td>Submit enquiries.</td>\n</tr>\n<tr>\n<td><code>availability:read</code></td>\n<td>Nursery availability data.</td>\n</tr>\n<tr>\n<td><code>financials:read</code></td>\n<td>Child financial data.</td>\n</tr>\n</tbody>\n</table>\n</div><p>The scopes assigned to your client are included in the token response. A scope does not provide access to every nursery; your client can only access the nurseries covered by its licence and configuration. A request that requires an unassigned scope returns <code>403 Forbidden</code>.</p>\n<h2 id=\"response-format\"><strong>Response format</strong></h2>\n<p>Every response uses the standard envelope:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {},\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<p>Collection endpoints return an array in <code>data</code>; detail endpoints return an object. Error responses use <code>status: false</code> and include a client-safe message.</p>\n<h2 id=\"pagination\"><strong>Pagination</strong></h2>\n<p>Collection endpoints support <code>page</code> and <code>pageSize</code>.</p>\n<ul>\n<li><code>page</code> starts at 1.</li>\n<li><code>pageSize</code> defaults to 50 and accepts values from 1 to 100.</li>\n<li>Pagination details are returned under <code>metadata.pagination</code>.</li>\n<li>Financial collections also return <code>metadata.snapshotAt</code>; use the same filters when retrieving all pages.</li>\n</ul>\n<h2 id=\"identifiers\"><strong>Identifiers</strong></h2>\n<p>Use the public GUIDs returned by the API in subsequent requests. Do not use internal database IDs or try to guess identifiers.</p>\n<h2 id=\"run-the-collection-in-postman\"><strong>Run the collection in Postman</strong></h2>\n<p>Use the built-in <strong>Run in Postman</strong> option to fork or import this collection into your own workspace. Enter your tenant-specific values locally before sending requests.</p>\n<h2 id=\"api-updates\"><strong>API updates</strong></h2>\n<p>New capabilities are added to the eyworks Public API over time. The latest available capabilities are:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Available from</th>\n<th>Area</th>\n<th>Capability</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>18 August 2026</td>\n<td>Enquiries</td>\n<td>Create an enquiry for a nursery using <code>POST /nurseries/{guid}/enquiries</code>.</td>\n</tr>\n<tr>\n<td>18 August 2026</td>\n<td>Nursery settings</td>\n<td>Retrieve enquiry lookup values and available sessions to support nursery integrations.</td>\n</tr>\n<tr>\n<td>18 August 2026</td>\n<td>Nursery availability</td>\n<td>Retrieve nursery availability using <code>GET /nurseries/{guid}/availability</code>. If no segment is supplied, the response uses a nursery-level breakdown.</td>\n</tr>\n<tr>\n<td>26 August 2026</td>\n<td>Child financials</td>\n<td>Retrieve child financial summaries, invoices, payments, credits and transactions.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"need-help\"><strong>Need help?</strong></h2>\n<p>For API licensing or licence agreements, email <a href=\"mailto:sales@eyworks.co.uk\">sales@eyworks.co.uk</a>. For credentials, onboarding or technical questions, email <a href=\"mailto:support@eyworks.co.uk\">support@eyworks.co.uk</a>.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"eyworks Public API","slug":"eyworks-public-api"}],"owner":"30375394","collectionId":"61a47545-1c31-4934-a301-acf2669e0faf","publishedId":"2sBYAq1tfD","public":true,"customColor":{"right-sidebar":"303030","highlight":"FF5E2C","top-bar":"FFFFFF"},"publishDate":"2026-08-26T14:35:32.000Z"},"item":[{"name":"Auth","item":[{"name":"Create Token (Client Credentials)","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});","","const json = pm.response.json();","","if (!json || !json.data) {","  throw new Error('Invalid OAuth token response');","}","","if (json.data.accessToken) {","  pm.environment.set('accessToken', json.data.accessToken);","}","","if (json.data.refreshToken) {","  pm.environment.set('refreshToken', json.data.refreshToken);","}","","if (json.data.expiresIn) {","  pm.environment.set(","    'accessTokenExpiresAt',","    (Date.now() + json.data.expiresIn * 1000).toString()","  );","}","","if (json.data.refreshExpiresIn) {","  pm.environment.set(","    'refreshTokenExpiresAt',","    (Date.now() + json.data.refreshExpiresIn * 1000).toString()","  );","}","","console.log('OAuth tokens updated in Environment');"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"d59ab77c-661d-4d5c-9576-32c1b2fbdc18","request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"grantType\": \"client_credentials\",\n  \"clientId\": \"\",\n  \"clientSecret\": \"\"\n}"},"url":"https://your-tenant.eylog.co.uk/public/v1/oauth/token","description":"<p>Issues an access token and refresh token for your API client.</p>\n<p>Request body:</p>\n<ul>\n<li><p>grantType: <code>client_credentials</code></p>\n</li>\n<li><p>clientId: issued by eyworks Limited</p>\n</li>\n<li><p>clientSecret: issued by eyworks Limited</p>\n</li>\n</ul>\n<p>Success response (<code>200</code>) includes:</p>\n<ul>\n<li><p><code>data.accessToken</code></p>\n</li>\n<li><p><code>data.refreshToken</code></p>\n</li>\n<li><p><code>data.expiresIn</code></p>\n</li>\n<li><p><code>data.refreshExpiresIn</code></p>\n</li>\n<li><p><code>data.scope</code></p>\n</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"accessToken\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9....\",\n    \"expiresIn\": 3600,\n    \"refreshToken\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.....\",\n    \"refreshExpiresIn\": 2592000,\n    \"scope\": [\n      \"company:read\",\n      \"nurseries:read\",\n      \"employee:read\",\n      \"children:read\",\n      \"enquiries:read\",\n      \"enquiries:write\",\n      \"availability:read\"\n    ]\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n\n</code></pre>\n<h3 id=\"error-401\"><strong>Error (401)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 401,\n  \"message\": \"Unauthorized\",\n  \"errors\": [\n    \"Invalid client credentials.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n\n</code></pre>\n","urlObject":{"path":["public/v1","oauth","token"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"d59ab77c-661d-4d5c-9576-32c1b2fbdc18"},{"name":"Refresh Token","event":[{"listen":"test","script":{"exec":["pm.test('Status code is 200', function () {","  pm.response.to.have.status(200);","});","","const json = pm.response.json();","","if (!json || !json.data) {","  throw new Error('Invalid OAuth token response');","}","","if (json.data.accessToken) {","  pm.environment.set('accessToken', json.data.accessToken);","}","","if (json.data.refreshToken) {","  pm.environment.set('refreshToken', json.data.refreshToken);","}","","if (json.data.expiresIn) {","  pm.environment.set(","    'accessTokenExpiresAt',","    (Date.now() + json.data.expiresIn * 1000).toString()","  );","}","","if (json.data.refreshExpiresIn) {","  pm.environment.set(","    'refreshTokenExpiresAt',","    (Date.now() + json.data.refreshExpiresIn * 1000).toString()","  );","}","","console.log('OAuth tokens updated in Environment');"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"01435be9-936b-4bd8-8832-4ae012464e89","request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"grantType\": \"refresh_token\",\n  \"refreshToken\": \"\"\n}"},"url":"https://your-tenant.eylog.co.uk/public/v1/oauth/token","description":"<p>Rotates the token session and returns a fresh access+refresh token pair.</p>\n<p>Request body:</p>\n<ul>\n<li>grantType: <code>refresh_token</code></li>\n<li>refreshToken: previous refresh token</li>\n</ul>\n<p>Use this when access token expires. Save returned tokens and replace the old values.</p>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"accessToken\": \"&lt;access-token&gt;\",\n    \"expiresIn\": 3600,\n    \"refreshToken\": \"&lt;refresh-token&gt;\",\n    \"refreshExpiresIn\": 2592000,\n    \"scope\": [\n      \"company:read\"\n    ]\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-401\"><strong>Error (401)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 401,\n  \"message\": \"Unauthorized\",\n  \"errors\": [\n    \"Invalid or expired credentials.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","urlObject":{"path":["public/v1","oauth","token"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"01435be9-936b-4bd8-8832-4ae012464e89"}],"id":"18e77573-61a3-4b94-be12-434b4d151cca","_postman_id":"18e77573-61a3-4b94-be12-434b4d151cca","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}}},{"name":"Companies","item":[{"name":"List Companies","id":"73a282b9-5b69-4670-9946-3f5c8167b83c","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/companies?page=1&pageSize=25","description":"<p>Returns paginated company records available to your API client.</p>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<ul>\n<li><p><code>data</code></p>\n</li>\n<li><p><code>metadata.pagination</code></p>\n</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"11111111-1111-4111-8111-111111111111\",\n      \"name\": \"eyworks Nursery Group\",\n      \"address\": {\n        \"address1\": \"Example Street\",\n        \"address2\": \"Example Town\",\n        \"postcode\": \"EX1 1AB\"\n      },\n      \"city\": \"Example Town\",\n      \"county\": \"Bucks\",\n      \"country\": \"United Kingdom\",\n      \"brandingColour\": \"#BFBD34\",\n      \"legal\": {\n        \"registrationNumber\": \"07939645\",\n        \"vatNumber\": \"\"\n      },\n      \"contact\": {\n        \"email\": \"customer@example.com\",\n        \"telephone\": \"+44 7700 900000\",\n        \"website\": \"https://www.eyworks.co.uk \"\n      }\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    }\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","companies"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"73a282b9-5b69-4670-9946-3f5c8167b83c"},{"name":"Get Company","id":"087e1f21-217e-4ba2-965a-763fbeecd016","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/companies/1","description":"<p>Returns details for a single company in your accessible scope.</p>\n<p>Path params:</p>\n<ul>\n<li>companyId</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><code>data</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"guid\": \"11111111-1111-4111-8111-111111111111\",\n    \"name\": \"eyworks Nursery Group\",\n    \"address\": {\n      \"address1\": \"Example Street\",\n      \"address2\": \"Example Town\",\n      \"postcode\": \"EX1 1AB\"\n    },\n    \"city\": \"Example Town\",\n    \"county\": \"Bucks\",\n    \"country\": \"United Kingdom\",\n    \"brandingColour\": \"#BFBD34\",\n    \"legal\": {\n      \"registrationNumber\": \"07939645\",\n      \"vatNumber\": \"\"\n    },\n    \"contact\": {\n      \"email\": \"customer@example.com\",\n      \"telephone\": \"+44 7700 900000\",\n      \"website\": \"https://www.eyworks.co.uk \"\n    }\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","companies","1"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"087e1f21-217e-4ba2-965a-763fbeecd016"},{"name":"List Company Nurseries","id":"75ec0030-a586-49fb-9d72-0c3c8a28ca11","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/companies/1/nurseries?page=1&pageSize=25","description":"<p>Returns paginated nurseries for a company that is accessible to your client.</p>\n<p>Path params:</p>\n<ul>\n<li>companyId</li>\n</ul>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<ul>\n<li><code>data</code></li>\n<li><code>metadata.pagination</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"22222222-2222-4222-8222-222222222222\",\n      \"urn\": \"TT\",\n      \"name\": \"eyworks - Nursery A\",\n      \"address\": {\n        \"address1\": \"Example Street\",\n        \"address2\": \"Example Town\",\n        \"address3\": \"Example County\",\n        \"postcode\": \"EX1 1AB\"\n      },\n      \"city\": \"Example Town\",\n      \"county\": \"Bucks\",\n      \"country\": \"United Kingdom\",\n      \"brandingColour\": \"#BFBD34\",\n      \"contact\": {\n        \"email\": \"customer@example.com\",\n        \"telephone\": \"+44 7700 900000\",\n        \"website\": \"https://www.eyworks.co.uk \"\n      },\n      \"managerName\": \"\",\n      \"tags\": [\n        {\n          \"guid\": \"88888888-8888-4888-8888-888888888888\",\n          \"name\": \"Milton Keynes Group\"\n        }\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    }\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","companies","1","nurseries"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"75ec0030-a586-49fb-9d72-0c3c8a28ca11"}],"id":"5a481c03-f486-48fb-85ce-c75c6949aa97","_postman_id":"5a481c03-f486-48fb-85ce-c75c6949aa97","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}}},{"name":"Nurseries","item":[{"name":"Get Nursery","id":"306fb572-aa47-4f26-bedc-8a02b81f2887","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1","description":"<p>Returns details for one nursery in your accessible scope.</p>\n<p>Path params:</p>\n<ul>\n<li>nurseryId</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><code>data</code> (nursery object)</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"guid\": \"22222222-2222-4222-8222-222222222222\",\n    \"urn\": \"TT\",\n    \"name\": \"eyworks - Nursery A\",\n    \"address\": {\n      \"address1\": \"Example Street\",\n      \"address2\": \"Example Town\",\n      \"address3\": \"Example County\",\n      \"postcode\": \"EX1 1AB\"\n    },\n    \"city\": \"Example Town\",\n    \"county\": \"Bucks\",\n    \"country\": \"United Kingdom\",\n    \"brandingColour\": \"#BFBD34\",\n    \"contact\": {\n      \"email\": \"customer@example.com\",\n      \"telephone\": \"+44 7700 900000\",\n      \"website\": \"https://www.eyworks.co.uk \",\n      \"ofstedUrn\": \"EY123456 \"\n    },\n    \"managerName\": \"\",\n    \"capacity\": 50,\n    \"operations\": {\n      \"operationDays\": [\n        \"Monday\",\n        \"Tuesday\",\n        \"Wednesday\",\n        \"Thursday\",\n        \"Friday\"\n      ],\n      \"coreDays\": [\n        \"Monday\",\n        \"Tuesday\",\n        \"Wednesday\",\n        \"Thursday\",\n        \"Friday\"\n      ],\n      \"operationalHours\": {\n        \"start\": \"07:30\",\n        \"end\": \"18:30\"\n      },\n      \"coreHours\": {\n        \"start\": \"08:00\",\n        \"end\": \"18:00\"\n      }\n    },\n    \"tags\": [\n      {\n        \"guid\": \"88888888-8888-4888-8888-888888888888\",\n        \"name\": \"Milton Keynes Group\"\n      }\n    ],\n    \"createdAt\": \"2024-01-23 17:19:53\",\n    \"updatedAt\": \"2024-10-23 22:22:58\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"306fb572-aa47-4f26-bedc-8a02b81f2887"},{"name":"List Rooms","id":"e378313a-1e6b-4cf6-a536-638e15a9ac75","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1/rooms?page=1&pageSize=25","description":"<p>Returns paginated room records for a nursery.</p>\n<p>Path params:</p>\n<ul>\n<li>nurseryId</li>\n</ul>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<ul>\n<li><code>data</code></li>\n<li><code>metadata.pagination</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"66666666-6666-4666-8666-666666666666\",\n      \"name\": \"Baby Room\",\n      \"capacity\": 9,\n      \"ageGroupLower\": 0,\n      \"ageGroupUpper\": 24\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    }\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1","rooms"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"e378313a-1e6b-4cf6-a536-638e15a9ac75"},{"name":"List Employees","id":"27123e0f-305b-40e1-b025-b0ae4f3a4563","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1/employees?page=1&pageSize=25","description":"<p>Returns paginated employee records for a nursery.</p>\n<p>Path params:</p>\n<ul>\n<li>nurseryId</li>\n</ul>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filters[status]</code></td>\n<td>No</td>\n<td>Filter by record status. Defaults to <code>active</code> when omitted.</td>\n<td><code>active</code>, <code>inactive</code>, <code>all</code>.</td>\n</tr>\n<tr>\n<td><code>filters[genders][]</code></td>\n<td>No</td>\n<td>Repeat this parameter to filter by one or more configured gender names.</td>\n<td>Configured gender name, for example <code>male</code> or <code>female</code>.</td>\n</tr>\n<tr>\n<td><code>filters[startDateFrom]</code></td>\n<td>No</td>\n<td>Inclusive lower bound for the start date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n<tr>\n<td><code>filters[startDateTo]</code></td>\n<td>No</td>\n<td>Inclusive upper bound for the start date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format; must not be before <code>startDateFrom</code>.</td>\n</tr>\n<tr>\n<td><code>filters[leaveDateFrom]</code></td>\n<td>No</td>\n<td>Inclusive lower bound for the leave date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n<tr>\n<td><code>filters[leaveDateTo]</code></td>\n<td>No</td>\n<td>Inclusive upper bound for the leave date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format; must not be before <code>leaveDateFrom</code>.</td>\n</tr>\n<tr>\n<td><code>filters[dobFrom]</code></td>\n<td>No</td>\n<td>Inclusive lower bound for the date of birth.</td>\n<td>Date in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n<tr>\n<td><code>filters[dobTo]</code></td>\n<td>No</td>\n<td>Inclusive upper bound for the date of birth.</td>\n<td>Date in <code>YYYY-MM-DD</code> format; must not be before <code>dobFrom</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<ul>\n<li><code>data</code></li>\n<li><code>metadata.pagination</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"33333333-3333-4333-8333-333333333333\",\n      \"urn\": \"TT012EMPLOYEE\",\n      \"nursery\": {\n        \"guid\": \"22222222-2222-4222-8222-222222222222\",\n        \"name\": \"eyworks - Nursery A\"\n      },\n      \"firstName\": \"Example\",\n      \"lastName\": \"Customer\",\n      \"fullName\": \"Example Record\",\n      \"primaryEmail\": \"customer@example.com\",\n      \"startDate\": \"2024-01-01\",\n      \"leaveDate\": null,\n      \"status\": \"active\",\n      \"createdAt\": \"2025-01-18 23:41:50\",\n      \"updatedAt\": \"2025-01-18 23:43:50\"\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    }\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1","employees"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Filter by record status. Defaults to <code>active</code> when omitted. Possible values: <code>active</code>, <code>inactive</code>, <code>all</code>.</p>\n","type":"text/plain"},"key":"filters[status]","value":"active"},{"disabled":true,"description":{"content":"<p>Repeat this parameter to filter by one or more configured gender names. Possible values: Configured gender name, for example <code>male</code> or <code>female</code>.</p>\n","type":"text/plain"},"key":"filters[genders][]","value":"female"},{"disabled":true,"description":{"content":"<p>Inclusive lower bound for the start date. Possible values: Date in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"filters[startDateFrom]","value":"2026-01-01"},{"disabled":true,"description":{"content":"<p>Inclusive upper bound for the start date. Possible values: Date in <code>YYYY-MM-DD</code> format; must not be before <code>startDateFrom</code>.</p>\n","type":"text/plain"},"key":"filters[startDateTo]","value":"2026-01-31"},{"disabled":true,"description":{"content":"<p>Inclusive lower bound for the leave date. Possible values: Date in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"filters[leaveDateFrom]","value":"2026-01-01"},{"disabled":true,"description":{"content":"<p>Inclusive upper bound for the leave date. Possible values: Date in <code>YYYY-MM-DD</code> format; must not be before <code>leaveDateFrom</code>.</p>\n","type":"text/plain"},"key":"filters[leaveDateTo]","value":"2026-01-31"},{"disabled":true,"description":{"content":"<p>Inclusive lower bound for the date of birth. Possible values: Date in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"filters[dobFrom]","value":"2020-01-01"},{"disabled":true,"description":{"content":"<p>Inclusive upper bound for the date of birth. Possible values: Date in <code>YYYY-MM-DD</code> format; must not be before <code>dobFrom</code>.</p>\n","type":"text/plain"},"key":"filters[dobTo]","value":"2022-12-31"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"27123e0f-305b-40e1-b025-b0ae4f3a4563"},{"name":"List Children","id":"e3d68a52-79b5-4b4e-97c6-9d803fd7fbcc","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1/children?page=1&pageSize=25","description":"<p>Returns paginated children records for a nursery.</p>\n<p>Path params:</p>\n<ul>\n<li>nurseryId</li>\n</ul>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filters[status]</code></td>\n<td>No</td>\n<td>Filter by record status. Defaults to <code>active</code> when omitted.</td>\n<td><code>active</code>, <code>inactive</code>, <code>all</code>.</td>\n</tr>\n<tr>\n<td><code>filters[genders][]</code></td>\n<td>No</td>\n<td>Repeat this parameter to filter by one or more configured gender names.</td>\n<td>Configured gender name, for example <code>male</code> or <code>female</code>.</td>\n</tr>\n<tr>\n<td><code>filters[startDateFrom]</code></td>\n<td>No</td>\n<td>Inclusive lower bound for the start date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n<tr>\n<td><code>filters[startDateTo]</code></td>\n<td>No</td>\n<td>Inclusive upper bound for the start date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format; must not be before <code>startDateFrom</code>.</td>\n</tr>\n<tr>\n<td><code>filters[leaveDateFrom]</code></td>\n<td>No</td>\n<td>Inclusive lower bound for the leave date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n<tr>\n<td><code>filters[leaveDateTo]</code></td>\n<td>No</td>\n<td>Inclusive upper bound for the leave date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format; must not be before <code>leaveDateFrom</code>.</td>\n</tr>\n<tr>\n<td><code>filters[dobFrom]</code></td>\n<td>No</td>\n<td>Inclusive lower bound for the date of birth.</td>\n<td>Date in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n<tr>\n<td><code>filters[dobTo]</code></td>\n<td>No</td>\n<td>Inclusive upper bound for the date of birth.</td>\n<td>Date in <code>YYYY-MM-DD</code> format; must not be before <code>dobFrom</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<ul>\n<li><code>data</code></li>\n<li><code>metadata.pagination</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"44444444-4444-4444-8444-444444444444\",\n      \"urn\": \"TT027CHILD\",\n      \"nursery\": {\n        \"guid\": \"22222222-2222-4222-8222-222222222222\",\n        \"name\": \"eyworks - Nursery A\"\n      },\n      \"firstName\": \"Example\",\n      \"lastName\": \"Customer\",\n      \"fullName\": \"Example Record\",\n      \"dob\": \"2022-11-03\",\n      \"startDate\": \"2023-09-01\",\n      \"leaveDate\": \"2027-08-31\",\n      \"status\": \"active\",\n      \"createdAt\": null,\n      \"updatedAt\": \"2025-11-03 03:07:30\"\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    }\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1","children"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Filter by record status. Defaults to <code>active</code> when omitted. Possible values: <code>active</code>, <code>inactive</code>, <code>all</code>.</p>\n","type":"text/plain"},"key":"filters[status]","value":"active"},{"disabled":true,"description":{"content":"<p>Repeat this parameter to filter by one or more configured gender names. Possible values: Configured gender name, for example <code>male</code> or <code>female</code>.</p>\n","type":"text/plain"},"key":"filters[genders][]","value":"female"},{"disabled":true,"description":{"content":"<p>Inclusive lower bound for the start date. Possible values: Date in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"filters[startDateFrom]","value":"2026-01-01"},{"disabled":true,"description":{"content":"<p>Inclusive upper bound for the start date. Possible values: Date in <code>YYYY-MM-DD</code> format; must not be before <code>startDateFrom</code>.</p>\n","type":"text/plain"},"key":"filters[startDateTo]","value":"2026-01-31"},{"disabled":true,"description":{"content":"<p>Inclusive lower bound for the leave date. Possible values: Date in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"filters[leaveDateFrom]","value":"2026-01-01"},{"disabled":true,"description":{"content":"<p>Inclusive upper bound for the leave date. Possible values: Date in <code>YYYY-MM-DD</code> format; must not be before <code>leaveDateFrom</code>.</p>\n","type":"text/plain"},"key":"filters[leaveDateTo]","value":"2026-01-31"},{"disabled":true,"description":{"content":"<p>Inclusive lower bound for the date of birth. Possible values: Date in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"filters[dobFrom]","value":"2020-01-01"},{"disabled":true,"description":{"content":"<p>Inclusive upper bound for the date of birth. Possible values: Date in <code>YYYY-MM-DD</code> format; must not be before <code>dobFrom</code>.</p>\n","type":"text/plain"},"key":"filters[dobTo]","value":"2022-12-31"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"e3d68a52-79b5-4b4e-97c6-9d803fd7fbcc"},{"name":"List Enquiries","id":"a8e37fa5-8345-45a3-9f64-05191b18ac2d","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1/enquiries?page=1&pageSize=25","description":"<p>Returns paginated enquiries for a nursery.</p>\n<p>Path params:</p>\n<ul>\n<li>nurseryId</li>\n</ul>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filters[enquiryDate]</code></td>\n<td>No</td>\n<td>Return enquiries created on this date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n<tr>\n<td><code>filters[status][]</code></td>\n<td>No</td>\n<td>Repeat this parameter to filter by one or more enquiry lifecycle statuses.</td>\n<td><code>ENROLLED</code>, <code>LOST</code>, <code>NOT_ENROLLED</code>, <code>WAITLISTED</code>.</td>\n</tr>\n<tr>\n<td><code>filters[stage][]</code></td>\n<td>No</td>\n<td>Repeat this parameter to filter by one or more enquiry stages.</td>\n<td><code>ENQUIRY_IN</code>, <code>PRE_VISIT_FOLLOW_UP</code>, <code>VISIT</code>, <code>POST_VISIT_FOLLOW_UP</code>, <code>WAITLISTED</code>, <code>REGISTRATION_FORM</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<ul>\n<li><code>data</code></li>\n<li><code>metadata.pagination</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"55555555-5555-4555-8555-555555555555\",\n      \"nursery\": {\n        \"guid\": \"22222222-2222-4222-8222-222222222222\",\n        \"name\": \"eyworks - Nursery A\"\n      },\n      \"parentName\": \"Example Parent\",\n      \"parentEmail\": \"customer@example.com\",\n      \"childName\": \"Example Child\",\n      \"childDob\": null,\n      \"childStartDate\": null,\n      \"stage\": \"ENQUIRY_IN\",\n      \"status\": \"NOT_ENROLLED\",\n      \"createdAt\": \"2026-02-23 16:52:54\",\n      \"updatedAt\": null\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    }\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1","enquiries"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Return enquiries created on this date. Possible values: Date in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"filters[enquiryDate]","value":"2026-02-23"},{"disabled":true,"description":{"content":"<p>Repeat this parameter to filter by one or more enquiry lifecycle statuses. Possible values: <code>ENROLLED</code>, <code>LOST</code>, <code>NOT_ENROLLED</code>, <code>WAITLISTED</code>.</p>\n","type":"text/plain"},"key":"filters[status][]","value":"NOT_ENROLLED"},{"disabled":true,"description":{"content":"<p>Repeat this parameter to filter by one or more enquiry stages. Possible values: <code>ENQUIRY_IN</code>, <code>PRE_VISIT_FOLLOW_UP</code>, <code>VISIT</code>, <code>POST_VISIT_FOLLOW_UP</code>, <code>WAITLISTED</code>, <code>REGISTRATION_FORM</code>.</p>\n","type":"text/plain"},"key":"filters[stage][]","value":"ENQUIRY_IN"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"a8e37fa5-8345-45a3-9f64-05191b18ac2d"},{"name":"List Sessions","id":"53a3e914-6864-441e-a589-682dd7ca4576","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1/sessions","description":"<p>Returns active general sessions for a nursery. Requires <code>nurseries:read</code>. Use <code>type=enquiry</code> or <code>type=registration</code> to match the corresponding web form. The result is unpaginated.</p>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>type</code></td>\n<td>No</td>\n<td>Select the session set returned for a specific web form. Omit this parameter for general sessions.</td>\n<td><code>enquiry</code>, <code>registration</code>; omitted returns general sessions.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"dd9e6294-02e5-4546-be86-b7d14586edfa\",\n      \"name\": \"AM Session\",\n      \"startTime\": \"08:00\",\n      \"endTime\": \"13:00\",\n      \"duration\": 5,\n      \"coreDuration\": 5\n    }\n  ],\n  \"correlationId\": \"6a3e904c-407f-4ea3-aab5-2c8a913e7ef2\",\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1","sessions"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Select the session set returned for a specific web form. Omit this parameter for general sessions. Possible values: <code>enquiry</code>, <code>registration</code>; omitted returns general sessions.</p>\n","type":"text/plain"},"key":"type","value":"enquiry"}],"variable":[]}},"response":[],"_postman_id":"53a3e914-6864-441e-a589-682dd7ca4576"},{"name":"Get Availability","id":"0fe764a8-f3f4-4532-ae3c-37966def0368","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1/availability?from=2026-09-01&to=2026-09-30","description":"<p>Return daily nursery availability for an inclusive date range.</p>\n<p><strong>Required scope:</strong> availability:read.</p>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>from</code></td>\n<td>Yes</td>\n<td>Inclusive start date.</td>\n<td>Date in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n<tr>\n<td><code>to</code></td>\n<td>Yes</td>\n<td>Inclusive end date; the inclusive range cannot exceed 90 calendar days.</td>\n<td>Date in <code>YYYY-MM-DD</code> format.</td>\n</tr>\n<tr>\n<td><code>splitBy</code></td>\n<td>No</td>\n<td>Group availability by room or configured occupancy age group. Omit for one nursery-wide row per date.</td>\n<td><code>room</code>, <code>ageGroup</code>; omitted returns a nursery-level breakdown.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://your-tenant.eylog.co.uk/public/v1/nurseries/1/availability?from=2026-09-01&amp;to=2026-09-30\n</code></pre>\n<p><strong>Response</strong></p>\n<p>Responses use the standard status, code, message, data, correlationId, and apiVersion envelope. Each item in <code>data</code> has the same shape. The <code>day</code> bucket represents the full child-booking/core-hours interval.</p>\n<p><strong>Response example — Success (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"date\": \"2026-09-15\",\n      \"segment\": {\n        \"type\": \"room\",\n        \"id\": \"00000000-0000-4000-8000-000000000901\",\n        \"label\": \"Butterfly Room\"\n      },\n      \"capacity\": {\n        \"day\": 20,\n        \"am\": 20,\n        \"pm\": 20\n      },\n      \"booked\": {\n        \"day\": 14,\n        \"am\": 12,\n        \"pm\": 15\n      },\n      \"available\": {\n        \"day\": 6,\n        \"am\": 8,\n        \"pm\": 5\n      }\n    }\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<p><strong>Errors</strong></p>\n<p>400 for invalid dates or splitBy, 401 for an invalid token, 403 for missing scope or nursery access, 404 when the nursery cannot be found, and 429 after 60 requests per fixed 60-second window.</p>\n<h3 id=\"error-response-example-404\"><strong>Error response example (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1","availability"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"description":{"content":"<p>Inclusive start date. Possible values: Date in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"from","value":"2026-09-01"},{"description":{"content":"<p>Inclusive end date; the inclusive range cannot exceed 90 calendar days. Possible values: Date in <code>YYYY-MM-DD</code> format.</p>\n","type":"text/plain"},"key":"to","value":"2026-09-30"},{"disabled":true,"description":{"content":"<p>Group availability by room or configured occupancy age group. Omit for one nursery-wide row per date. Possible values: <code>room</code>, <code>ageGroup</code>; omitted returns a nursery-level breakdown.</p>\n","type":"text/plain"},"key":"splitBy","value":"room"}],"variable":[]}},"response":[],"_postman_id":"0fe764a8-f3f4-4532-ae3c-37966def0368"}],"id":"d07d6a22-ef23-49af-a5d9-0647594ef3a9","_postman_id":"d07d6a22-ef23-49af-a5d9-0647594ef3a9","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}}},{"name":"Employees","item":[{"name":"Get Employee","id":"0ea0b9f3-a380-451d-b2b7-efab7e3a4bc4","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/employees/1","description":"<p>Returns details for a single employee.</p>\n<p>Path params:</p>\n<ul>\n<li>employeeId</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><code>data</code> (employee object)</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"guid\": \"33333333-3333-4333-8333-333333333333\",\n    \"nursery\": {\n      \"guid\": \"22222222-2222-4222-8222-222222222222\",\n      \"name\": \"eyworks - Nursery A\"\n    },\n    \"urn\": \"TT012EMPLOYEE\",\n    \"title\": \"Mrs\",\n    \"firstName\": \"Example\",\n    \"lastName\": \"Customer\",\n    \"fullName\": \"Example Record\",\n    \"dob\": \"1999-05-03\",\n    \"gender\": \"Female\",\n    \"maritalStatus\": \"Married\",\n    \"address\": {\n      \"address1\": \"Example Street\",\n      \"address2\": \"Example Town\",\n      \"address3\": \"Example County\",\n      \"postcode\": \"EX1 1AB\"\n    },\n    \"primaryEmail\": \"customer@example.com\",\n    \"phone\": \"+44 7700 900000\",\n    \"room\": {\n      \"guid\": \"66666666-6666-4666-8666-666666666666\",\n      \"name\": \"Baby Room\"\n    },\n    \"lineManagers\": [\n      {\n        \"guid\": \"77777777-7777-4777-8777-777777777777\",\n        \"name\": \"Example Manager\",\n        \"email\": \"customer@example.com\"\n      }\n    ],\n    \"startDate\": \"2024-01-01\",\n    \"leaveDate\": null,\n    \"status\": \"active\",\n    \"employment\": {\n      \"contractType\": \"PERMANENT\",\n      \"salaried\": false,\n      \"jobTitle\": \"Bank Staff\",\n      \"level\": \"\"\n    },\n    \"createdAt\": \"2025-01-18 23:41:50\",\n    \"updatedAt\": \"2026-02-23 16:07:29\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Employee not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","employees","1"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"0ea0b9f3-a380-451d-b2b7-efab7e3a4bc4"},{"name":"Get Qualifications","id":"ea9bc869-3da0-48ee-bc8a-c284ab654cbb","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/employees/1/qualifications?page=1&pageSize=25","description":"<p>Returns paginated qualification records for a single employee.</p>\n<p>Path params:</p>\n<ul>\n<li>employeeId</li>\n</ul>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>No</td>\n<td>Filter by one or more qualification statuses. Values may be comma-separated.</td>\n<td><code>CURRENT</code>, <code>WORKING_TOWARDS</code>, <code>NEXT_STEPS</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<ul>\n<li><code>data</code></li>\n<li><code>metadata.pagination</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"id\": 634,\n      \"name\": \"GCSE Maths\",\n      \"workingTowardsDate\": \"2026-01-30\",\n      \"issuedAwardedDate\": null,\n      \"stage\": 1,\n      \"stageText\": \"Working Towards\",\n      \"notes\": \"Example note\",\n      \"hasAttachments\": true,\n      \"qualificationOption\": {\n        \"id\": 36,\n        \"name\": \"GCSE Maths\",\n        \"validity\": 0\n      },\n      \"staffDetails\": {\n        \"id\": \"3956\",\n        \"position\": \"34\"\n      }\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    }\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Employee not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","employees","1","qualifications"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Filter by one or more qualification statuses. Values may be comma-separated. Possible values: <code>CURRENT</code>, <code>WORKING_TOWARDS</code>, <code>NEXT_STEPS</code>.</p>\n","type":"text/plain"},"key":"status","value":"CURRENT,WORKING_TOWARDS,NEXT_STEPS"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"ea9bc869-3da0-48ee-bc8a-c284ab654cbb"},{"name":"Get Trainings","id":"0518ee9a-2e6b-4aac-bdb0-0ec6f5f00710","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/employees/1/trainings?page=1&pageSize=25","description":"<p>Returns paginated training records for a single employee.</p>\n<p>Path params:</p>\n<ul>\n<li>employeeId</li>\n</ul>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>No</td>\n<td>Filter by one or more training statuses. Values may be comma-separated.</td>\n<td><code>COMPLETED</code>, <code>IN_PROGRESS</code>, <code>ENROLLED</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Response:</p>\n<ul>\n<li><code>data</code></li>\n<li><code>metadata.pagination</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"id\": 1904,\n      \"name\": \"Fire Safety Training\",\n      \"workingTowardsDate\": \"2025-01-30\",\n      \"issuedAwardedDate\": \"2026-04-16\",\n      \"stage\": 0,\n      \"stageText\": \"Completed\",\n      \"notes\": \"Example note\",\n      \"hasAttachments\": true,\n      \"trainingCourseOption\": {\n        \"id\": 20,\n        \"name\": \"Fire Safety Training\",\n        \"validity\": 12\n      },\n      \"staffDetails\": {\n        \"id\": \"3956\",\n        \"position\": \"34\"\n      }\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    }\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Employee not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","employees","1","trainings"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Filter by one or more training statuses. Values may be comma-separated. Possible values: <code>COMPLETED</code>, <code>IN_PROGRESS</code>, <code>ENROLLED</code>.</p>\n","type":"text/plain"},"key":"status","value":"COMPLETED,IN_PROGRESS,ENROLLED"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"0518ee9a-2e6b-4aac-bdb0-0ec6f5f00710"}],"id":"9e0fe09c-b32a-4c26-9c20-4e3d1fa8b72d","_postman_id":"9e0fe09c-b32a-4c26-9c20-4e3d1fa8b72d","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}}},{"name":"Children","item":[{"name":"Get Child","id":"2ff1de5b-db39-43a2-b489-c3a3eba2d4f5","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/children/1","description":"<p>Returns details for a single child.</p>\n<p>Path params:</p>\n<ul>\n<li>childId</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><code>data</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"guid\": \"44444444-4444-4444-8444-444444444444\",\n    \"urn\": \"TT027CHILD\",\n    \"nursery\": {\n      \"guid\": \"22222222-2222-4222-8222-222222222222\",\n      \"name\": \"eyworks - Nursery A\"\n    },\n    \"firstName\": \"Example\",\n    \"middleName\": \"\",\n    \"lastName\": \"Customer\",\n    \"fullName\": \"Example Record\",\n    \"preferredName\": \"\",\n    \"dob\": \"2022-11-03\",\n    \"gender\": \"Female\",\n    \"startDate\": \"2023-09-01\",\n    \"leaveDate\": \"2027-08-31\",\n    \"status\": \"active\",\n    \"address\": {\n      \"address1\": \"Example Street\",\n      \"address2\": \"Example Town\",\n      \"address3\": \"Example County\",\n      \"postcode\": \"EX1 1AB\"\n    },\n    \"createdAt\": null,\n    \"updatedAt\": \"2025-11-03 03:07:30\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Child not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","children","1"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"2ff1de5b-db39-43a2-b489-c3a3eba2d4f5"}],"id":"1892b0f4-2eb7-474e-8f82-ec55cc9a91fd","_postman_id":"1892b0f4-2eb7-474e-8f82-ec55cc9a91fd","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}}},{"name":"Enquiries","item":[{"name":"Get Nursery Lookups","id":"a49451e3-43d5-47ce-bfd9-596f2a82a326","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1/lookups?domains=enquiryReason,enquirySource,enquiryContactedVia","description":"<h2 id=\"get-nursery-lookups\">Get Nursery Lookups</h2>\n<p>Returns configured lookup values for one nursery. Use this endpoint to obtain GUIDs for enquiry fields such as <code>reason</code>, <code>source</code>, and <code>contactedVia</code>.</p>\n<h3 id=\"authorization\">Authorization</h3>\n<p>Requires a Bearer token. All supported domains require <code>enquiries:read</code>.</p>\n<h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>domains</code></td>\n<td>Yes</td>\n<td>Comma-separated lookup domains. Duplicate values are ignored.</td>\n<td><code>enquiryReason</code>, <code>enquirySource</code>, <code>enquiryContactedVia</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"domain-details\">Domain details</h3>\n<ul>\n<li>Each item contains a public GUID and display name.</li>\n<li><code>enquirySource</code> only returns options enabled for Public API use.</li>\n<li>Preferred sessions are available from <code>GET /nurseries/{guid}/sessions?type=enquiry</code>.</li>\n</ul>\n<h3 id=\"errors\">Errors</h3>\n<ul>\n<li><code>400 Bad Request</code>: missing, malformed, or unsupported domains.</li>\n<li><code>401 Unauthorized</code>: missing, expired, or invalid Bearer token.</li>\n<li><code>403 Forbidden</code>: token lacks the required scope or cannot access the nursery.</li>\n<li><code>404 Not Found</code>: nursery does not exist or is inactive.</li>\n<li><code>429 Too Many Requests</code>: lookup rate limit exceeded.</li>\n</ul>\n<p>The lookup rate limit is shared under the independent Lookups API capability.</p>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"enquiryReason\": [\n      {\n        \"guid\": \"8bed12d6-8d39-420d-aa4a-b69aac89fb1f\",\n        \"name\": \"After school care\"\n      }\n    ],\n    \"enquirySource\": [\n      {\n        \"guid\": \"52c5c023-cb9b-4027-bf67-d06a1ead35e8\",\n        \"name\": \"College/Uni/NHS\"\n      }\n    ],\n    \"enquiryContactedVia\": [\n      {\n        \"guid\": \"ea1aa268-2e7b-428b-b4cd-8fecba36fb05\",\n        \"name\": \"E-mail\"\n      }\n    ]\n  },\n  \"correlationId\": \"6a3e904c-407f-4ea3-aab5-2c8a913e7ef2\",\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1","lookups"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"description":{"content":"<p>Comma-separated lookup domains. Duplicate values are ignored. Possible values: <code>enquiryReason</code>, <code>enquirySource</code>, <code>enquiryContactedVia</code>.</p>\n","type":"text/plain"},"key":"domains","value":"enquiryReason,enquirySource,enquiryContactedVia"}],"variable":[]}},"response":[],"_postman_id":"a49451e3-43d5-47ce-bfd9-596f2a82a326"},{"name":"Get Nursery Lookup","id":"32ca6003-ff08-45da-b2b5-ee14c353937b","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1/lookups/enquiryReason","description":"<h2 id=\"get-nursery-lookup-domain\">Get Nursery Lookup Domain</h2>\n<p>Returns lookup values for one requested domain in a nursery.</p>\n<h3 id=\"authorization\">Authorization</h3>\n<p>Requires a Bearer token. All supported domains require <code>enquiries:read</code>.</p>\n<h3 id=\"path-parameters\">Path parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>nurseryId</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the nursery.</td>\n</tr>\n<tr>\n<td><code>lookupDomain</code></td>\n<td>Yes</td>\n<td>Case-sensitive lookup domain.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Supported values: <code>enquiryReason</code>, <code>enquirySource</code>, <code>enquiryContactedVia</code>.</p>\n<h3 id=\"example\">Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET https://your-tenant.eylog.co.uk/public/v1/nurseries/1/lookups/enquiryReason\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><code>enquirySource</code> returns only options enabled for Public API use.</li>\n<li>Preferred sessions are available from <code>GET /nurseries/{guid}/sessions?type=enquiry</code>.</li>\n</ul>\n<h3 id=\"errors\">Errors</h3>\n<ul>\n<li><code>400 Bad Request</code>: malformed or unsupported domain.</li>\n<li><code>401 Unauthorized</code>: missing, expired, or invalid Bearer token.</li>\n<li><code>403 Forbidden</code>: missing required scope or nursery access.</li>\n<li><code>404 Not Found</code>: nursery does not exist or is inactive.</li>\n<li><code>429 Too Many Requests</code>: shared lookup rate limit exceeded.</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"8bed12d6-8d39-420d-aa4a-b69aac89fb1f\",\n      \"name\": \"After school care\"\n    }\n  ],\n  \"correlationId\": \"6a3e904c-407f-4ea3-aab5-2c8a913e7ef2\",\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"The requested resource was not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1","lookups","enquiryReason"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"32ca6003-ff08-45da-b2b5-ee14c353937b"},{"name":"Create Enquiry","id":"1c08ef08-fbbd-4f0d-98b9-2a0252ba8de4","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"parent\": {\n    \"firstName\": \"Example\",\n    \"lastName\": \"Parent\",\n    \"email\": \"customer@example.com\",\n    \"mobile\": \"+44 7700 900000\",\n    \"address\": {\n      \"address1\": \"Example Street\",\n      \"address2\": \"Example Town\",\n      \"postcode\": \"AB1 2CD\"\n    }\n  },\n  \"child\": {\n    \"firstName\": \"Example\",\n    \"lastName\": \"Child\",\n    \"dob\": \"2022-06-15\",\n    \"startDate\": \"2026-09-01\"\n  },\n  \"preferredSession\": [\n    {\n      \"guid\": \"4e7d4548-bcab-4c70-8478-b552fbdbfb4c\",\n      \"days\": [\"Monday\", \"Tuesday\"]\n    }\n  ],\n  \"requestedHours\": 30,\n  \"reason\": {\n    \"text\": \"Need flexible hours\"\n  },\n  \"source\": {\n    \"text\": \"Local newsletter\"\n  },\n  \"contactedVia\": {\n    \"text\": \"Community event\"\n  },\n  \"notes\": \"Interested in three full days per week.\",\n  \"utm\": {\n    \"medium\": \"cpc\",\n    \"source\": \"google\",\n    \"campaign\": \"autumn-enquiries\",\n    \"content\": \"search-ad\",\n    \"term\": \"local nursery\"\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-tenant.eylog.co.uk/public/v1/nurseries/1/enquiries","description":"<h2 id=\"create-enquiry\">Create Enquiry</h2>\n<p>Creates a new enquiry for a nursery and returns the complete enquiry record.</p>\n<h3 id=\"endpoint\">Endpoint</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST https://your-tenant.eylog.co.uk/public/v1/nurseries/1/enquiries\n</code></pre>\n<p><code>1</code> is the nursery UUIDv4 GUID.</p>\n<h3 id=\"authentication\">Authentication</h3>\n<p>Send a valid Bearer token with the <code>enquiries:write</code> scope.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Authorization</code></td>\n<td><code>Bearer </code></td>\n</tr>\n<tr>\n<td><code>Accept</code></td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n</tr>\n</tbody>\n</table>\n</div><p>The endpoint is rate-limited to 30 requests per minute per client and nursery.</p>\n<h3 id=\"field-rules\">Field rules</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Rules</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>parent.firstName</code></td>\n<td>Required. Plain text only.</td>\n</tr>\n<tr>\n<td><code>parent.lastName</code></td>\n<td>Optional. Plain text only.</td>\n</tr>\n<tr>\n<td><code>parent.email</code></td>\n<td>Required. Must be a valid email address.</td>\n</tr>\n<tr>\n<td><code>parent.mobile</code></td>\n<td>Optional.</td>\n</tr>\n<tr>\n<td><code>parent.address</code></td>\n<td>Optional object containing <code>address1</code>, <code>address2</code>, and <code>postcode</code>.</td>\n</tr>\n<tr>\n<td><code>child.firstName</code></td>\n<td>Required. Plain text only.</td>\n</tr>\n<tr>\n<td><code>child.lastName</code></td>\n<td>Required. Plain text only.</td>\n</tr>\n<tr>\n<td><code>child.dob</code></td>\n<td>Optional <code>YYYY-MM-DD</code>; future dates are allowed to match the web flow.</td>\n</tr>\n<tr>\n<td><code>child.startDate</code></td>\n<td>Optional <code>YYYY-MM-DD</code>; must be on or after DOB when DOB is provided, otherwise it cannot be before today.</td>\n</tr>\n<tr>\n<td><code>preferredSession</code></td>\n<td>Optional array of preferred sessions.</td>\n</tr>\n<tr>\n<td><code>preferredSession[].guid</code></td>\n<td>Valid session UUID for this nursery.</td>\n</tr>\n<tr>\n<td><code>preferredSession[].days</code></td>\n<td>Optional list of unique values from Sunday to Saturday. Empty arrays are supported when day selection is not required. When days are provided, each must be an operating day for the nursery.</td>\n</tr>\n<tr>\n<td><code>requestedHours</code></td>\n<td>Optional JSON number, zero or greater, rounded to two decimals. Numeric strings and booleans are rejected.</td>\n</tr>\n<tr>\n<td><code>reason</code>, <code>source</code>, <code>contactedVia</code></td>\n<td>Optional. Supply exactly one of <code>guid</code> or <code>text</code>.</td>\n</tr>\n<tr>\n<td><code>*.guid</code></td>\n<td>Existing configured option UUID. <code>source.guid</code> must be enabled for Public API use.</td>\n</tr>\n<tr>\n<td><code>*.text</code></td>\n<td>Up to 255 characters. The API reuses an active option with the same trimmed, case-insensitive name, or creates a new option.</td>\n</tr>\n<tr>\n<td><code>notes</code></td>\n<td>Optional plain text, maximum 5,000 characters.</td>\n</tr>\n<tr>\n<td><code>utm</code></td>\n<td>Optional object with <code>medium</code>, <code>source</code>, <code>campaign</code>, <code>content</code>, and <code>term</code>; each is optional and limited to 255 characters.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Unknown request fields are rejected.</p>\n<h3 id=\"session-and-hours-behaviour\">Session and hours behaviour</h3>\n<ul>\n<li>Omit <code>requestedHours</code> to calculate requested hours and expected FTE from preferred sessions.</li>\n<li>Supply <code>requestedHours</code>, including <code>0</code>, to override the session calculation.</li>\n<li>When overridden, <code>expectedFte</code> is returned as <code>0.0</code>.</li>\n<li>Selected sessions are additive. Overlapping session times are accepted and contribute independently.</li>\n</ul>\n<h3 id=\"reference-values\">Reference values</h3>\n<p>Use the enquiry lookup endpoints for reason, source, and contact-method GUIDs. Use <code>GET /nurseries/{guid}/sessions?type=enquiry</code> for preferred-session GUIDs.</p>\n<p>For free-text reason, source, or contact method, the API stores a normal configured option and links the enquiry to it. It does not store a separate free-text value on the enquiry.</p>\n<h3 id=\"success-response\">Success response</h3>\n<p>Returns <code>201 Created</code>. The <code>data</code> object has the same structure as <code>GET https://your-tenant.eylog.co.uk/public/v1/enquiries/1</code>. Response <code>notes</code> is the completed note-activity history, newest first; the submitted request note becomes its first item.</p>\n<h3 id=\"errors\">Errors</h3>\n<ul>\n<li><code>400 Bad Request</code>: invalid JSON, invalid field value, unsupported field, invalid UUID, unavailable session, or invalid configured option.</li>\n<li><code>401 Unauthorized</code>: missing, invalid, or expired access token.</li>\n<li><code>403 Forbidden</code>: token lacks <code>enquiries:write</code>, nursery access is forbidden, or tenant cancellation is effective.</li>\n<li><code>404 Not Found</code>: nursery does not exist or is not available to the authenticated client.</li>\n<li><code>429 Too Many Requests</code>: rate limit exceeded.</li>\n<li><code>500 Internal Server Error</code>: unexpected server failure.</li>\n</ul>\n<p>Validation failures use the standard Public API envelope and return a specific client-safe message.</p>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-201\"><strong>Success (201)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 201,\n  \"message\": \"Created\",\n  \"data\": {\n    \"guid\": \"0d3133f3-3adb-423b-a7a9-21bf19538290\",\n    \"nursery\": {\n      \"guid\": \"d8596f6d-c76a-498b-8063-47ecb88eebd1\",\n      \"name\": \"eyworks Nursery\"\n    },\n    \"parent\": {\n      \"title\": \"\",\n      \"firstName\": \"Example\",\n      \"lastName\": \"Customer\",\n      \"email\": \"customer@example.com\",\n      \"mobile\": \"+44 7700 900000\",\n      \"homePhone\": \"+44 7700 900000\",\n      \"address\": {\n        \"address1\": \"Example Street\",\n        \"address2\": \"Example Town\",\n        \"postcode\": \"EX1 1AB\"\n      }\n    },\n    \"child\": {\n      \"firstName\": \"Example\",\n      \"lastName\": \"Customer\",\n      \"dob\": \"2022-06-15\",\n      \"startDate\": \"2026-09-01\",\n      \"gender\": \"\"\n    },\n    \"enquiryDate\": \"2026-07-30\",\n    \"bookingType\": \"\",\n    \"room\": {\n      \"guid\": \"b00cbb1f-92b7-405c-8da1-e585eb7eb592\",\n      \"name\": \"Giant Giraffes\"\n    },\n    \"requestedHours\": 24.5,\n    \"expectedFte\": 0,\n    \"contactedVia\": \"Email\",\n    \"source\": \"Existing Parent\",\n    \"specialOffer\": \"\",\n    \"reason\": \"Part time care\",\n    \"notes\": \"Example note\",\n    \"statusInfo\": {\n      \"stage\": \"ENQUIRY_IN\",\n      \"status\": \"NOT_ENROLLED\",\n      \"lostReason\": \"\",\n      \"lostReasonNotes\": \"\"\n    },\n    \"stageMovements\": {\n      \"ENQUIRY_IN\": \"2026-07-30T13:07:14Z\",\n      \"PRE_VISIT_FOLLOW_UP\": null,\n      \"VISIT\": null,\n      \"POST_VISIT_FOLLOW_UP\": null,\n      \"WAITLISTED\": null,\n      \"REGISTRATION_FORM\": null\n    },\n    \"brochureGiven\": false,\n    \"unsubscribeMailingList\": false,\n    \"utm\": {\n      \"medium\": \"cpc\",\n      \"source\": \"google\",\n      \"campaign\": \"autumn-enquiries\",\n      \"content\": \"search-ad\",\n      \"term\": \"local nursery\"\n    },\n    \"createdAt\": \"2026-07-30 13:07:14\",\n    \"updatedAt\": null\n  },\n  \"correlationId\": \"19dc176b-11d8-4f85-aa62-41ee46548105\",\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-400\"><strong>Error (400)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 400,\n  \"message\": \"Bad Request\",\n  \"errors\": [\n    \"Invalid request data.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","nurseries","1","enquiries"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"1c08ef08-fbbd-4f0d-98b9-2a0252ba8de4"},{"name":"Get Enquiry","id":"f479b8c2-5aba-410b-a9f6-b26402c1e333","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/enquiries/1","description":"<p>Returns details for a single enquiry.</p>\n<p>Path params:</p>\n<ul>\n<li>enquiryId</li>\n</ul>\n<p>Response:</p>\n<ul>\n<li><code>data</code></li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"guid\": \"55555555-5555-4555-8555-555555555555\",\n    \"nursery\": {\n      \"guid\": \"22222222-2222-4222-8222-222222222222\",\n      \"name\": \"eyworks - Nursery A\"\n    },\n    \"parent\": {\n      \"title\": \"Mr\",\n      \"firstName\": \"Example\",\n      \"lastName\": \"Customer\",\n      \"email\": \"customer@example.com\",\n      \"mobile\": \"+44 7700 900000\",\n      \"homePhone\": \"+44 7700 900000\",\n      \"address\": {\n        \"address1\": \"Example Street\",\n        \"address2\": \"Example Town\",\n        \"postcode\": \"EX1 1AB\"\n      }\n    },\n    \"child\": {\n      \"firstName\": \"Example\",\n      \"lastName\": \"Customer\",\n      \"dob\": \"2024-10-25\",\n      \"startDate\": \"2025-09-01\",\n      \"gender\": \"Male\"\n    },\n    \"enquiryDate\": \"2025-04-02\",\n    \"bookingType\": \"EMERGENCY BOOKER\",\n    \"room\": {\n      \"guid\": \"66666666-6666-4666-8666-666666666666\",\n      \"name\": \"Baby Room\"\n    },\n    \"requestedHours\": 30,\n    \"expectedFte\": 0.6,\n    \"contactedVia\": \"E-mail\",\n    \"source\": \"\",\n    \"specialOffer\": \"\",\n    \"reason\": \"\",\n    \"notes\": \"Example note\",\n    \"tags\": [\n      {\n        \"guid\": \"77777777-7777-4777-8777-777777777777\",\n        \"name\": \"Priority\"\n      }\n    ],\n    \"statusInfo\": {\n      \"stage\": \"REGISTRATION_FORM\",\n      \"status\": \"WAITLISTED\",\n      \"lostReason\": \"\",\n      \"lostReasonNotes\": \"\"\n    },\n    \"stageMovements\": {\n      \"ENQUIRY_IN\": \"2025-04-02T09:55:33Z\",\n      \"PRE_VISIT_FOLLOW_UP\": \"2025-04-04T10:30:00Z\",\n      \"VISIT\": \"2025-04-08T13:00:00Z\",\n      \"POST_VISIT_FOLLOW_UP\": \"2025-04-09T09:15:00Z\",\n      \"WAITLISTED\": \"2025-04-10T14:45:00Z\",\n      \"REGISTRATION_FORM\": \"2025-04-14T11:20:00Z\"\n    },\n    \"brochureGiven\": false,\n    \"unsubscribeMailingList\": false,\n    \"utm\": {\n      \"medium\": \"\",\n      \"source\": \"\",\n      \"campaign\": \"\",\n      \"content\": \"\",\n      \"term\": \"\"\n    },\n    \"createdAt\": \"2025-04-02 09:55:33\",\n    \"updatedAt\": \"2026-02-23 16:38:51\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Enquiry not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","enquiries","1"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"f479b8c2-5aba-410b-a9f6-b26402c1e333"}],"id":"dacd0040-fe31-45fc-92ee-7f1c7a98ac0a","_postman_id":"dacd0040-fe31-45fc-92ee-7f1c7a98ac0a","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}}},{"name":"Financials","item":[{"name":"Get Child Financials Summary","id":"78e6a34e-6015-442d-a0e9-d840e3619de0","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/children/00000000-0000-4000-8000-000000000001/financials","description":"<p>Returns the current child-scoped account summary.</p>\n<h2 id=\"authorization\"><strong>Authorization</strong></h2>\n<p>Requires a valid Bearer token with the <code>financials:read</code> scope.</p>\n<h2 id=\"path-parameters\"><strong>Path parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>childGuid</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the child.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\"><strong>Response</strong></h2>\n<ul>\n<li><p><code>data.invoices</code> contains invoice totals and applied amounts.</p>\n</li>\n<li><p><code>data.credits</code> contains usable non-deposit credit totals only; deposit records are excluded from <code>totalAmount</code>, <code>allocatedAmount</code>, and <code>unallocatedAmount</code>.</p>\n</li>\n<li><p><code>data.deposits</code> contains held deposits and is reported separately. Deposits do not reduce invoice <code>paymentsApplied</code>, <code>amountDue</code>, or the account balance.</p>\n</li>\n<li><p><code>data.balance.direction</code> is <code>DEBIT</code>, <code>CREDIT</code>, or <code>ZERO</code>.</p>\n</li>\n<li><p><code>data.asOf</code> identifies the snapshot time.</p>\n</li>\n</ul>\n<p>This endpoint is not paginated. Replace <code>childGuid</code> with a GUID returned by the Children endpoints.</p>\n<p>Money values are decimal strings and the currency is returned in <code>data.currency</code>.</p>\n<h2 id=\"errors\"><strong>Errors</strong></h2>\n<ul>\n<li><p><code>401 Unauthorized</code>: missing, invalid, or expired access token.</p>\n</li>\n<li><p><code>403 Forbidden</code>: the token lacks <code>financials:read</code> or the requested child is outside the client's permitted scope.</p>\n</li>\n<li><p><code>404 Not Found</code>: the requested child or invoice does not exist or is not available to the authenticated client.</p>\n</li>\n<li><p><code>429 Too Many Requests</code>: financials rate limit exceeded.</p>\n</li>\n<li><p><code>500 Internal Server Error</code>: unexpected server failure.</p>\n</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"childGuid\": \"00000000-0000-4000-8000-000000000001\",\n    \"currency\": \"GBP\",\n    \"balance\": {\n      \"amount\": \"150.00\",\n      \"direction\": \"DEBIT\"\n    },\n    \"invoices\": {\n      \"totalAmount\": \"500.00\",\n      \"paymentsApplied\": \"350.00\",\n      \"creditsApplied\": \"0.00\",\n      \"amountDue\": \"150.00\"\n    },\n    \"credits\": {\n      \"totalAmount\": \"25.00\",\n      \"allocatedAmount\": \"10.00\",\n      \"unallocatedAmount\": \"15.00\"\n    },\n    \"deposits\": {\n      \"totalAmount\": \"15.00\",\n      \"allocatedAmount\": \"0.00\",\n      \"unallocatedAmount\": \"15.00\"\n    },\n    \"asOf\": \"2026-08-26T09:00:00Z\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Child not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","children","00000000-0000-4000-8000-000000000001","financials"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"78e6a34e-6015-442d-a0e9-d840e3619de0"},{"name":"List Child Financial Invoices","id":"aaf636b7-4866-4b73-b545-e519c0de91c0","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/children/00000000-0000-4000-8000-000000000001/financials/invoices?page=1&pageSize=25","description":"<p>Returns the requested list of current logical invoices for a child.</p>\n<h2 id=\"authorization\"><strong>Authorization</strong></h2>\n<p>Requires a valid Bearer token with the <code>financials:read</code> scope.</p>\n<h2 id=\"path-parameters\"><strong>Path parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>childGuid</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the child.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>No</td>\n<td>Filter by invoice payment status.</td>\n<td><code>PENDING_PAYMENT</code>, <code>PAID</code>, <code>ALLOCATED</code>, <code>NOT_ALLOCATED</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\"><strong>Response</strong></h2>\n<p>The response includes <code>metadata.pagination</code> and <code>metadata.snapshotAt</code>. The default result contains posted, non-deleted invoices and excludes credit records, regenerated predecessors, and V3 line items. Replace <code>childGuid</code> with a GUID returned by the Children endpoints.</p>\n<p>Money values are decimal strings and invoice records include payment allocations.</p>\n<h2 id=\"errors\"><strong>Errors</strong></h2>\n<ul>\n<li><code>401 Unauthorized</code>: missing, invalid, or expired access token.</li>\n<li><code>403 Forbidden</code>: the token lacks <code>financials:read</code> or the requested child is outside the client's permitted scope.</li>\n<li><code>404 Not Found</code>: the requested child or invoice does not exist or is not available to the authenticated client.</li>\n<li><code>429 Too Many Requests</code>: financials rate limit exceeded.</li>\n<li><code>500 Internal Server Error</code>: unexpected server failure.</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"00000000-0000-4000-8000-000000000002\",\n      \"currency\": \"GBP\",\n      \"invoiceNumber\": \"INV-2026-0001\",\n      \"invoiceType\": \"MONTHLY\",\n      \"dates\": {\n        \"invoiceDate\": \"2026-08-01\",\n        \"dueDate\": \"2026-08-15\",\n        \"fromDate\": \"2026-08-01\",\n        \"toDate\": \"2026-08-31\"\n      },\n      \"description\": \"August childcare fees\",\n      \"reference\": \"CHILD-001\",\n      \"paymentStatus\": \"PARTIALLY_PAID\",\n      \"invoiceStatus\": \"APPROVED\",\n      \"amounts\": {\n        \"grossAmount\": null,\n        \"fundingReduction\": null,\n        \"holidayReduction\": null,\n        \"discount\": null,\n        \"totalAmount\": \"500.00\",\n        \"amountPaid\": \"350.00\",\n        \"amountDue\": \"150.00\"\n      },\n      \"allocations\": [\n        {\n          \"guid\": \"00000000-0000-4000-8000-000000000003\",\n          \"type\": \"PAYMENT\",\n          \"invoiceGuid\": \"00000000-0000-4000-8000-000000000002\",\n          \"amount\": \"350.00\",\n          \"allocatedAt\": \"2026-08-05 10:00:00\",\n          \"invoicePaymentReference\": \"PAY-2026-0001\"\n        }\n      ],\n      \"locked\": false,\n      \"split\": false,\n      \"createdAt\": \"2026-08-01 08:00:00\",\n      \"updatedAt\": \"2026-08-05 10:00:00\"\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    },\n    \"snapshotAt\": \"2026-08-26T09:00:00Z\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Child not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","children","00000000-0000-4000-8000-000000000001","financials","invoices"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Filter by invoice payment status. Possible values: <code>PENDING_PAYMENT</code>, <code>PAID</code>, <code>ALLOCATED</code>, <code>NOT_ALLOCATED</code>.</p>\n","type":"text/plain"},"key":"status","value":"PAID"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"aaf636b7-4866-4b73-b545-e519c0de91c0"},{"name":"Get Child Financial Invoice","id":"3a3d3edf-11f3-4d05-99b5-e2e4008b0c67","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/children/00000000-0000-4000-8000-000000000001/financials/invoices/00000000-0000-4000-8000-000000000002","description":"<p>Returns one current logical invoice for a child.</p>\n<h2 id=\"authorization\"><strong>Authorization</strong></h2>\n<p>Requires a valid Bearer token with the <code>financials:read</code> scope.</p>\n<h2 id=\"path-parameters\"><strong>Path parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>childGuid</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the child.</td>\n</tr>\n<tr>\n<td><code>invoiceGuid</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the invoice returned by the invoice collection.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\"><strong>Response</strong></h2>\n<ul>\n<li>Includes invoice dates, status, amounts, payment and credit allocations, and bill-payer details.</li>\n<li>V3 invoices include persisted <code>lineItems</code> with nominal-code snapshots.</li>\n<li>Pre-V3 invoices return an empty <code>lineItems</code> array.</li>\n</ul>\n<p>Replace <code>childGuid</code> and <code>invoiceGuid</code> with GUIDs returned by the API. Money values are decimal strings.</p>\n<h2 id=\"errors\"><strong>Errors</strong></h2>\n<ul>\n<li><code>401 Unauthorized</code>: missing, invalid, or expired access token.</li>\n<li><code>403 Forbidden</code>: the token lacks <code>financials:read</code> or the requested child is outside the client's permitted scope.</li>\n<li><code>404 Not Found</code>: the requested child or invoice does not exist or is not available to the authenticated client.</li>\n<li><code>429 Too Many Requests</code>: financials rate limit exceeded.</li>\n<li><code>500 Internal Server Error</code>: unexpected server failure.</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": {\n    \"guid\": \"00000000-0000-4000-8000-000000000002\",\n    \"currency\": \"GBP\",\n    \"invoiceNumber\": \"INV-2026-0001\",\n    \"invoiceType\": \"MONTHLY\",\n    \"dates\": {\n      \"invoiceDate\": \"2026-08-01\",\n      \"dueDate\": \"2026-08-15\",\n      \"fromDate\": \"2026-08-01\",\n      \"toDate\": \"2026-08-31\"\n    },\n    \"description\": \"August childcare fees\",\n    \"reference\": \"CHILD-001\",\n    \"paymentStatus\": \"PARTIALLY_PAID\",\n    \"invoiceStatus\": \"APPROVED\",\n    \"amounts\": {\n      \"grossAmount\": \"550.00\",\n      \"fundingReduction\": \"50.00\",\n      \"holidayReduction\": null,\n      \"discount\": null,\n      \"totalAmount\": \"500.00\",\n      \"amountPaid\": \"350.00\",\n      \"amountDue\": \"150.00\"\n    },\n    \"allocations\": [],\n    \"locked\": false,\n    \"split\": false,\n    \"createdAt\": \"2026-08-01 08:00:00\",\n    \"updatedAt\": \"2026-08-05 10:00:00\",\n    \"billPayers\": [\n      {\n        \"name\": \"Example Payer\",\n        \"email\": \"customer@example.com\",\n        \"address\": {\n          \"address1\": \"Example Street\",\n          \"address2\": \"Example Town\",\n          \"address3\": null,\n          \"postcode\": \"EX1 1AB\"\n        }\n      }\n    ],\n    \"lineItems\": [\n      {\n        \"guid\": \"00000000-0000-4000-8000-000000000004\",\n        \"type\": \"SESSION\",\n        \"description\": \"Nursery session\",\n        \"period\": {\n          \"startDate\": \"2026-08-03\",\n          \"endDate\": \"2026-08-07\"\n        },\n        \"serviceDays\": [],\n        \"quantity\": {\n          \"value\": \"20.00\",\n          \"unit\": \"HOURS\"\n        },\n        \"unitPrice\": \"27.50\",\n        \"amounts\": {\n          \"grossAmount\": \"550.00\",\n          \"fundingReduction\": \"50.00\",\n          \"discount\": \"0.00\",\n          \"netAmount\": \"500.00\"\n        },\n        \"nominalCode\": {\n          \"code\": \"4000\",\n          \"name\": \"Childcare fees\"\n        },\n        \"nominalCodeSource\": \"INVOICE\",\n        \"metadata\": {}\n      }\n    ]\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Invoice not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","children","00000000-0000-4000-8000-000000000001","financials","invoices","00000000-0000-4000-8000-000000000002"],"host":["https://your-tenant.eylog.co.uk"],"query":[],"variable":[]}},"response":[],"_postman_id":"3a3d3edf-11f3-4d05-99b5-e2e4008b0c67"},{"name":"List Invoice Payments (Allocations)","id":"48c0b9d5-dd1d-42fa-a4de-1e5f3cab2643","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/children/00000000-0000-4000-8000-000000000001/financials/invoices/00000000-0000-4000-8000-000000000002/payments?page=1&pageSize=25","description":"<p>Returns payment allocation rows applied to one invoice for one child.</p>\n<h2 id=\"authorization\"><strong>Authorization</strong></h2>\n<p>Requires a valid Bearer token with the <code>financials:read</code> scope.</p>\n<h2 id=\"path-parameters\"><strong>Path parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>childGuid</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the child.</td>\n</tr>\n<tr>\n<td><code>invoiceGuid</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the invoice returned by the invoice collection.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>No</td>\n<td>Filter by allocation status.</td>\n<td><code>POSTED</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\"><strong>Response</strong></h2>\n<p>The response includes <code>metadata.pagination</code> and <code>metadata.snapshotAt</code>. This is an allocation view and does not duplicate the child payment collection. Money values are decimal strings.</p>\n<h2 id=\"errors\"><strong>Errors</strong></h2>\n<ul>\n<li><code>401 Unauthorized</code>: missing, invalid, or expired access token.</li>\n<li><code>403 Forbidden</code>: the token lacks <code>financials:read</code> or the requested child is outside the client's permitted scope.</li>\n<li><code>404 Not Found</code>: the requested child or invoice does not exist or is not available to the authenticated client.</li>\n<li><code>429 Too Many Requests</code>: financials rate limit exceeded.</li>\n<li><code>500 Internal Server Error</code>: unexpected server failure.</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"00000000-0000-4000-8000-000000000003\",\n      \"currency\": \"GBP\",\n      \"invoiceGuid\": \"00000000-0000-4000-8000-000000000002\",\n      \"status\": \"POSTED\",\n      \"allocatedAmount\": \"350.00\",\n      \"sourcePayment\": {\n        \"guid\": \"00000000-0000-4000-8000-000000000005\",\n        \"currency\": \"GBP\",\n        \"paymentDate\": \"2026-08-05\",\n        \"paymentMethod\": \"DIRECT_DEBIT\",\n        \"paymentReference\": \"PAY-2026-0001\",\n        \"notes\": \"Example note\",\n        \"providerReference\": \"PROVIDER-001\",\n        \"status\": \"POSTED\",\n        \"sourceAmount\": \"350.00\"\n      },\n      \"allocation\": {\n        \"allocatedAt\": \"2026-08-05 10:00:00\",\n        \"invoicePaymentReference\": \"PAY-2026-0001\"\n      }\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    },\n    \"snapshotAt\": \"2026-08-26T09:00:00Z\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Invoice not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","children","00000000-0000-4000-8000-000000000001","financials","invoices","00000000-0000-4000-8000-000000000002","payments"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Filter by allocation status. Possible values: <code>POSTED</code>.</p>\n","type":"text/plain"},"key":"status","value":"POSTED"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"48c0b9d5-dd1d-42fa-a4de-1e5f3cab2643"},{"name":"List Child Payments","id":"137b35de-d3a9-4386-9456-d34d0070518e","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/children/00000000-0000-4000-8000-000000000001/financials/payments?page=1&pageSize=25","description":"<p>Returns payments received for a child with child-scoped invoice allocations.</p>\n<h2 id=\"authorization\"><strong>Authorization</strong></h2>\n<p>Requires a valid Bearer token with the <code>financials:read</code> scope.</p>\n<h2 id=\"path-parameters\"><strong>Path parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>childGuid</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the child.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>status</code></td>\n<td>No</td>\n<td>Filter by payment status.</td>\n<td><code>POSTED</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\"><strong>Response</strong></h2>\n<p>The response includes <code>metadata.pagination</code> and <code>metadata.snapshotAt</code>. For split payments, <code>amount</code> and allocation amounts are scoped to the child while <code>sourceAmount</code> is the original payment amount. Raw gateway payloads are not returned. Money values are decimal strings.</p>\n<h2 id=\"errors\"><strong>Errors</strong></h2>\n<ul>\n<li><code>401 Unauthorized</code>: missing, invalid, or expired access token.</li>\n<li><code>403 Forbidden</code>: the token lacks <code>financials:read</code> or the requested child is outside the client's permitted scope.</li>\n<li><code>404 Not Found</code>: the requested child or invoice does not exist or is not available to the authenticated client.</li>\n<li><code>429 Too Many Requests</code>: financials rate limit exceeded.</li>\n<li><code>500 Internal Server Error</code>: unexpected server failure.</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"00000000-0000-4000-8000-000000000005\",\n      \"currency\": \"GBP\",\n      \"paymentDate\": \"2026-08-05\",\n      \"status\": \"POSTED\",\n      \"paymentMethod\": \"DIRECT_DEBIT\",\n      \"paymentReference\": \"PAY-2026-0001\",\n      \"notes\": \"Example note\",\n      \"providerReference\": \"PROVIDER-001\",\n      \"amount\": \"350.00\",\n      \"sourceAmount\": \"350.00\",\n      \"allocations\": [\n        {\n          \"guid\": \"00000000-0000-4000-8000-000000000003\",\n          \"invoiceGuid\": \"00000000-0000-4000-8000-000000000002\",\n          \"amount\": \"350.00\",\n          \"allocatedAt\": \"2026-08-05 10:00:00\",\n          \"invoicePaymentReference\": \"PAY-2026-0001\"\n        }\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    },\n    \"snapshotAt\": \"2026-08-26T09:00:00Z\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Child not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","children","00000000-0000-4000-8000-000000000001","financials","payments"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Filter by payment status. Possible values: <code>POSTED</code>.</p>\n","type":"text/plain"},"key":"status","value":"POSTED"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"137b35de-d3a9-4386-9456-d34d0070518e"},{"name":"List Child Credits","id":"87d9e3ac-a3ff-4dac-af02-a022ce2e9718","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/children/00000000-0000-4000-8000-000000000001/financials/credits?page=1&pageSize=25","description":"<p>Returns credits on the child account separately from payments and invoice rows.</p>\n<h2 id=\"authorization\"><strong>Authorization</strong></h2>\n<p>Requires a valid Bearer token with the <code>financials:read</code> scope.</p>\n<h2 id=\"path-parameters\"><strong>Path parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>childGuid</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the child.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>type</code></td>\n<td>No</td>\n<td>Filter by credit type.</td>\n<td><code>PAYMENT_ON_ACCOUNT</code>, <code>CREDIT_NOTE</code>, <code>DEPOSIT</code>, <code>OPENING_BALANCE</code>.</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>No</td>\n<td>Filter by credit status.</td>\n<td><code>POSTED</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\"><strong>Response</strong></h2>\n<p>The response includes <code>metadata.pagination</code> and <code>metadata.snapshotAt</code>. Each record reports total, allocated, and unallocated amounts. Money values are decimal strings.</p>\n<h2 id=\"errors\"><strong>Errors</strong></h2>\n<ul>\n<li><code>401 Unauthorized</code>: missing, invalid, or expired access token.</li>\n<li><code>403 Forbidden</code>: the token lacks <code>financials:read</code> or the requested child is outside the client's permitted scope.</li>\n<li><code>404 Not Found</code>: the requested child or invoice does not exist or is not available to the authenticated client.</li>\n<li><code>429 Too Many Requests</code>: financials rate limit exceeded.</li>\n<li><code>500 Internal Server Error</code>: unexpected server failure.</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"00000000-0000-4000-8000-000000000006\",\n      \"currency\": \"GBP\",\n      \"type\": \"DEPOSIT\",\n      \"date\": \"2026-08-01\",\n      \"amount\": \"250.00\",\n      \"allocatedAmount\": \"0.00\",\n      \"unallocatedAmount\": \"250.00\",\n      \"status\": \"POSTED\",\n      \"reference\": \"DEP-2026-0001\",\n      \"allocations\": []\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    },\n    \"snapshotAt\": \"2026-08-26T09:00:00Z\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Child not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","children","00000000-0000-4000-8000-000000000001","financials","credits"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Filter by credit type. Possible values: <code>PAYMENT_ON_ACCOUNT</code>, <code>CREDIT_NOTE</code>, <code>DEPOSIT</code>, <code>OPENING_BALANCE</code>.</p>\n","type":"text/plain"},"key":"type","value":"PAYMENT_ON_ACCOUNT"},{"disabled":true,"description":{"content":"<p>Filter by credit status. Possible values: <code>POSTED</code>.</p>\n","type":"text/plain"},"key":"status","value":"POSTED"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"87d9e3ac-a3ff-4dac-af02-a022ce2e9718"},{"name":"List Child Financial Transactions","id":"5855106f-c9b4-4fd6-8da9-3c9ebd031aeb","request":{"method":"GET","header":[],"url":"https://your-tenant.eylog.co.uk/public/v1/children/00000000-0000-4000-8000-000000000001/financials/transactions?page=1&pageSize=25","description":"<p>Returns the normalized child-account ledger for reconciliation.</p>\n<h2 id=\"authorization\"><strong>Authorization</strong></h2>\n<p>Requires a valid Bearer token with the <code>financials:read</code> scope.</p>\n<h2 id=\"path-parameters\"><strong>Path parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>childGuid</code></td>\n<td>Yes</td>\n<td>Public UUIDv4 GUID of the child.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"query-parameters\"><strong>Query parameters</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n<th>Possible values</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>type</code></td>\n<td>No</td>\n<td>Filter by transaction type.</td>\n<td><code>INVOICE</code>, <code>PAYMENT</code>, <code>CREDIT</code>.</td>\n</tr>\n<tr>\n<td><code>subType</code></td>\n<td>No</td>\n<td>Filter by transaction subtype. Supported values depend on <code>type</code>.</td>\n<td>Invoice: <code>MONTHLY</code>, <code>MANUAL</code>, <code>DEPOSIT_INVOICE</code>, <code>OPENING_BALANCE</code>; Payment: public payment-method value; Credit: <code>PAYMENT_ON_ACCOUNT</code>, <code>CREDIT_NOTE</code>, <code>DEPOSIT</code>, <code>OPENING_BALANCE</code>.</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>No</td>\n<td>Filter by transaction status.</td>\n<td><code>POSTED</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>One-based page number. Defaults to <code>1</code>.</td>\n<td>Positive integer (<code>1</code> or greater).</td>\n</tr>\n<tr>\n<td><code>pageSize</code></td>\n<td>No</td>\n<td>Number of records per page. Defaults to <code>50</code>.</td>\n<td>Integer from <code>1</code> to <code>100</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response\"><strong>Response</strong></h2>\n<p>The response includes <code>metadata.pagination</code> and <code>metadata.snapshotAt</code>. Every row has <code>guid</code>, <code>currency</code>, <code>type</code>, <code>subType</code>, <code>status</code>, <code>transactionDate</code>, <code>reference</code>, <code>direction</code>, <code>amount</code>, <code>source</code>, <code>allocations</code>, <code>balanceAfter</code>, and <code>details</code>. <code>balanceAfter</code> is calculated from the complete child ledger, even when filters are used. Money values are decimal strings.</p>\n<h2 id=\"errors\"><strong>Errors</strong></h2>\n<ul>\n<li><code>401 Unauthorized</code>: missing, invalid, or expired access token.</li>\n<li><code>403 Forbidden</code>: the token lacks <code>financials:read</code> or the requested child is outside the client's permitted scope.</li>\n<li><code>404 Not Found</code>: the requested child or invoice does not exist or is not available to the authenticated client.</li>\n<li><code>429 Too Many Requests</code>: financials rate limit exceeded.</li>\n<li><code>500 Internal Server Error</code>: unexpected server failure.</li>\n</ul>\n<h2 id=\"response-examples\"><strong>Response examples</strong></h2>\n<h3 id=\"success-200\"><strong>Success (200)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": true,\n  \"code\": 200,\n  \"message\": \"OK\",\n  \"data\": [\n    {\n      \"guid\": \"00000000-0000-4000-8000-000000000005\",\n      \"currency\": \"GBP\",\n      \"type\": \"PAYMENT\",\n      \"subType\": \"DIRECT_DEBIT\",\n      \"status\": \"POSTED\",\n      \"transactionDate\": \"2026-08-05\",\n      \"reference\": \"PAY-2026-0001\",\n      \"direction\": \"CREDIT\",\n      \"amount\": \"350.00\",\n      \"source\": {\n        \"guid\": \"00000000-0000-4000-8000-000000000005\",\n        \"type\": \"PAYMENT\"\n      },\n      \"allocations\": [\n        {\n          \"guid\": \"00000000-0000-4000-8000-000000000003\",\n          \"invoiceGuid\": \"00000000-0000-4000-8000-000000000002\",\n          \"amount\": \"350.00\",\n          \"allocatedAt\": \"2026-08-05 10:00:00\",\n          \"invoicePaymentReference\": \"PAY-2026-0001\"\n        }\n      ],\n      \"balanceAfter\": \"150.00\",\n      \"details\": {\n        \"paymentMethod\": \"DIRECT_DEBIT\",\n        \"sourceAmount\": \"350.00\",\n        \"paymentReference\": \"PAY-2026-0001\"\n      }\n    }\n  ],\n  \"metadata\": {\n    \"pagination\": {\n      \"page\": 1,\n      \"pageSize\": 25,\n      \"total\": 1,\n      \"hasNext\": false\n    },\n    \"snapshotAt\": \"2026-08-26T09:00:00Z\"\n  },\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n<h3 id=\"error-404\"><strong>Error (404)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": false,\n  \"code\": 404,\n  \"message\": \"Not Found\",\n  \"errors\": [\n    \"Child not found.\"\n  ],\n  \"correlationId\": null,\n  \"apiVersion\": 1\n}\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}},"urlObject":{"path":["public/v1","children","00000000-0000-4000-8000-000000000001","financials","transactions"],"host":["https://your-tenant.eylog.co.uk"],"query":[{"disabled":true,"description":{"content":"<p>Filter by transaction type. Possible values: <code>INVOICE</code>, <code>PAYMENT</code>, <code>CREDIT</code>.</p>\n","type":"text/plain"},"key":"type","value":"INVOICE"},{"disabled":true,"description":{"content":"<p>Filter by transaction subtype. Supported values depend on <code>type</code>. Possible values: Invoice: <code>MONTHLY</code>, <code>MANUAL</code>, <code>DEPOSIT_INVOICE</code>, <code>OPENING_BALANCE</code>; Payment: public payment-method value; Credit: <code>PAYMENT_ON_ACCOUNT</code>, <code>CREDIT_NOTE</code>, <code>DEPOSIT</code>, <code>OPENING_BALANCE</code>.</p>\n","type":"text/plain"},"key":"subType","value":"MONTHLY"},{"disabled":true,"description":{"content":"<p>Filter by transaction status. Possible values: <code>POSTED</code>.</p>\n","type":"text/plain"},"key":"status","value":"POSTED"},{"disabled":true,"description":{"content":"<p>One-based page number. Defaults to <code>1</code>. Possible values: Positive integer (<code>1</code> or greater).</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Number of records per page. Defaults to <code>50</code>. Possible values: Integer from <code>1</code> to <code>100</code>.</p>\n","type":"text/plain"},"key":"pageSize","value":"25"}],"variable":[]}},"response":[],"_postman_id":"5855106f-c9b4-4fd6-8da9-3c9ebd031aeb"}],"id":"f8422d40-07cb-4d78-a902-b2ad886cf435","description":"<p>Read-only child financial data. Requires the <code>financials:read</code> scope. Financial collection responses use <code>metadata.pagination</code> and <code>metadata.snapshotAt</code>; amounts are decimal strings and records are identified by opaque GUIDs.</p>\n","_postman_id":"f8422d40-07cb-4d78-a902-b2ad886cf435","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"61a47545-1c31-4934-a301-acf2669e0faf","id":"61a47545-1c31-4934-a301-acf2669e0faf","name":"eyworks - Public API","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]}},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"baseUrl","value":"https://your-tenant.eylog.co.uk","description":"Replace with your tenant address without a trailing slash."},{"key":"apiPrefix","value":"public/v1"},{"key":"clientId","value":""},{"key":"clientSecret","value":""},{"key":"accessToken","value":""},{"key":"refreshToken","value":""},{"key":"companyId","value":"1"},{"key":"nurseryId","value":"1"},{"key":"employeeId","value":"1"},{"key":"childId","value":"1"},{"key":"childGuid","value":"00000000-0000-4000-8000-000000000001"},{"key":"invoiceGuid","value":"00000000-0000-4000-8000-000000000002"},{"key":"enquiryId","value":"1"},{"key":"lookupDomain","value":"enquiryReason"},{"key":"page","value":"1"},{"key":"pageSize","value":"25"},{"key":"status","value":"active"},{"key":"financialStatus","value":"POSTED"},{"key":"creditType","value":"PAYMENT_ON_ACCOUNT"},{"key":"transactionType","value":"INVOICE"},{"key":"transactionSubType","value":"MONTHLY"}]}