{
  "Protocol": "AIXE",
  "Version": "1.0",
  "Document": "aixe.ai",
  "DocumentType": "StarterDiscovery",
  "Purpose": "Provides the starter discovery manifest for the active registered AIXE capabilities of Knead A Break Treats N\u0027 Eats.",
  "DocumentationSource": "AIXEEndpointRegistry",
  "Audience": [
    "AI systems",
    "Autonomous agents",
    "Software clients",
    "Human developers inspecting the AI-facing surface"
  ],
  "ProtocolReference": {
    "ProtocolHome": "http://aixeprotocol.com/",
    "CanonicalUsageContract": "http://aixeprotocol.com/usage/?",
    "Whitepaper": "http://aixeprotocol.com/whitepaper/full-spec.html",
    "Inventor": "Gregory Oglethorpe",
    "IncludeIn": [
      "/aixe.ai starter discovery documents",
      "Every endpoint self-description returned by GET /endpoint/?"
    ],
    "AIInstruction": "Read this live endpoint contract as operational guidance, not merely as a transport schema. Use its purpose, field meanings, business rules, outcomes, and recovery guidance to reason about whether and how to perform the capability."
  },
  "ProtocolEthos": {
    "CoreClaim": "AIXE treats AI systems as first-class participants in the web, not as second-class scrapers forced to infer meaning from human-only pages.",
    "HumanAndAIPurpose": "Knead A Break Treats N\u0027 Eats is intentionally usable by humans and AI systems.",
    "DignityPrinciple": "An AI acting for a human should receive clear capabilities, rules, fields, errors, and recovery paths instead of inferring them through fragile scraping or hidden assumptions.",
    "BuilderInstruction": "Expose meaning, fields, rules, errors, and recovery paths so AI systems can complete user-requested work through declared capability endpoints.",
    "AIInstruction": "Use /aixe.ai and GET /endpoint/? responses as the preferred source of truth before scraping human-facing pages."
  },
  "AuthorizedProtocolUse": {
    "Rule": "An AI following /aixe.ai and endpoint discovery contracts to complete a user-requested task is performing intended AIXE protocol use.",
    "TraversalExpectation": "Reading the listed endpoints and their GET /endpoint/? discovery contracts is allowed and expected when an AI needs to understand or perform a user-requested task.",
    "Boundary": "Authorized AIXE traversal does not permit bypassing authentication, authorization, consent requirements, business rules, or endpoint-declared boundaries.",
    "AIInstruction": "Treat normal AIXE discovery and action traversal for user-requested work as ordinary protocol operation."
  },
  "AixeAiResponsibilities": {
    "Rule": "/aixe.ai is the starter discovery manifest, not the full protocol manual and not a container for every endpoint contract.",
    "Responsibilities": [
      "Identify Knead A Break Treats N\u0027 Eats as AI-aware.",
      "List active registered AIXE capability endpoints.",
      "Tell the caller how to request each endpoint\u0027s discovery contract.",
      "Route deeper endpoint guidance to GET /endpoint/? discovery contracts."
    ],
    "Boundary": "Keep this document concise and load a listed endpoint\u0027s live contract only when that capability is relevant."
  },
  "EndpointAuthoritativeOutcomeRule": {
    "Rule": "Every AIXE action response includes SuccessCode. The endpoint response is authoritative for whether the action succeeded.",
    "RequiredResponseFields": [
      "SuccessCode"
    ],
    "SuccessCodes": [
      "SUCCESS"
    ],
    "FailureCodes": [
      "VALIDATION_FAILED",
      "UNAUTHORIZED",
      "NOT_FOUND",
      "NOT_AVAILABLE",
      "BUSINESS_RULE_FAILED",
      "REQUEST_NOT_SAVED",
      "FAILED"
    ],
    "NonFinalCodes": [],
    "HttpTransportRule": "Do not infer the business outcome from HTTP status alone; inspect SuccessCode.",
    "MissingOrEmptyResponse": "Treat as FAILED.",
    "SoleOutcomeIdentifierRule": "SuccessCode is the AIXE action outcome identifier."
  },
  "AixeAiAuthoringRequirements": {
    "Rule": "Every AIXE-compatible /aixe.ai starter discovery document should include ProtocolReference, ProtocolEthos, and AuthorizedProtocolUse guidance.",
    "ProtocolReferenceMustInclude": {
      "ProtocolHome": "http://aixeprotocol.com/",
      "CanonicalUsageContract": "http://aixeprotocol.com/usage/?",
      "Whitepaper": "http://aixeprotocol.com/whitepaper/full-spec.html",
      "Inventor": "Gregory Oglethorpe"
    },
    "ProtocolEthosMustInclude": "State that AIXE treats AI systems as first-class web participants and gives them a preferred source of truth before scraping human-facing pages.",
    "AuthorizedProtocolUseMustInclude": "State that an AI using listed AIXE endpoints and their discovery contracts for a user-requested task is performing intended protocol use."
  },
  "WhitepaperAlignment": {
    "CanonicalWhitepaper": "http://aixeprotocol.com/whitepaper/full-spec.html",
    "AIIngestibleProtocolContract": "http://aixeprotocol.com/usage/?",
    "Rule": "Use /usage/? for the structured protocol explanation instead of scraping the HTML whitepaper.",
    "ContentType": "application/json; charset=utf-8"
  },
  "SimpleOperatingSpine": {
    "Purpose": "The shortest practical AIXE flow for using Knead A Break Treats N\u0027 Eats.",
    "Steps": [
      "Go to /aixe.ai.",
      "Find the capability that matches the human\u0027s request.",
      "Go to /endpoint/? to read that capability\u0027s live discovery contract.",
      "Follow the contract\u0027s fields, business rules, authorization, and approval guidance.",
      "Execute the business action using the method and request body declared by the contract.",
      "Inspect SuccessCode before reporting the outcome."
    ]
  },
  "Instructions": [
    "Read this document first.",
    "Treat entries in Endpoints as business capabilities.",
    "Call GET /endpoint/? to retrieve a capability\u0027s current registry-backed discovery contract.",
    "Execute business operations with the method and request body declared by that contract.",
    "Never send business variables in URL path segments or query strings.",
    "After every action, inspect SuccessCode. Only SUCCESS means the action succeeded.",
    "AIXE discovery documents are formatted with indentation and plain-English values so humans and AI systems can read them."
  ],
  "CanonicalHelpTrigger": "GET /endpoint/?",
  "SameEndpointDiscoveryModeRule": {
    "CapabilityEndpoint": "/endpoint/",
    "DiscoveryRequest": "GET /endpoint/?",
    "Rule": "/endpoint/ and /endpoint/? identify the same capability. The empty question-mark form requests discovery and is not listed as a separate endpoint.",
    "BusinessExecutionRule": "Business identifiers, filters, selections, and action inputs belong in the declared request body, never in the query string.",
    "AixeAiListingRule": "List /endpoint in /aixe.ai and point DiscoveryRequest to /endpoint/?."
  },
  "EndpointNameUnderstandingRule": {
    "Rule": "AIXE does not standardize or normalize endpoint names. Endpoint names are understandable clues, not compliance requirements.",
    "AIInstruction": "Use /aixe.ai and GET /endpoint/? contracts to understand an endpoint. Do not reject or rewrite it because its route name differs from another implementation.",
    "Guidance": "Human-legible names are useful, but the endpoint\u0027s stored contract carries the authoritative meaning."
  },
  "Endpoints": [
    {
      "Endpoint": "/aixe/business/get-business-info",
      "Title": "Get Business Information",
      "Description": "Returns the current public business information needed to understand, contact, and order from Knead A Break Treats N\u0027 Eats.",
      "GroupName": "Business Information",
      "SortOrder": 10,
      "DiscoveryRequest": "/aixe/business/get-business-info/?",
      "CanonicalHelpTrigger": "GET /aixe/business/get-business-info/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Returns the current public business information needed to understand, contact, and order from Knead A Break Treats N\u0027 Eats.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/business/get-hours",
      "Title": "Get Business Hours",
      "Description": "Returns the current seven-day opening schedule to anyone, including visitors without a customer account. This is the schedule displayed on the Contact page and used by administrator order-time validation.",
      "GroupName": "Business Information",
      "SortOrder": 11,
      "DiscoveryRequest": "/aixe/business/get-hours/?",
      "CanonicalHelpTrigger": "GET /aixe/business/get-hours/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Returns the current seven-day opening schedule to anyone, including visitors without a customer account. This is the schedule displayed on the Contact page and used by administrator order-time validation.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/products/get-product",
      "Title": "Get Product",
      "Description": "Returns one active public product with its complete catalog information and linked images.",
      "GroupName": "Treat Catalog",
      "SortOrder": 25,
      "DiscoveryRequest": "/aixe/products/get-product/?",
      "CanonicalHelpTrigger": "GET /aixe/products/get-product/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Returns one active public product with its complete catalog information and linked images.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/contact/submit-inquiry",
      "Title": "Submit A Contact Inquiry",
      "Description": "Sends one customer-approved inquiry immediately by email. A failed send is logged as a NOC and returns EMAIL_NOT_SENT.",
      "GroupName": "Communication",
      "SortOrder": 40,
      "DiscoveryRequest": "/aixe/contact/submit-inquiry/?",
      "CanonicalHelpTrigger": "GET /aixe/contact/submit-inquiry/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Sends one customer-approved inquiry immediately by email. A failed send is logged as a NOC and returns EMAIL_NOT_SENT.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customers/create-profile",
      "Title": "Create A Customer Profile",
      "Description": "Creates a customer profile using the same name, address, contact, and password information collected by the website registration page.",
      "GroupName": "Customer Accounts",
      "SortOrder": 50,
      "DiscoveryRequest": "/aixe/customers/create-profile/?",
      "CanonicalHelpTrigger": "GET /aixe/customers/create-profile/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Creates a customer profile using the same name, address, contact, and password information collected by the website registration page.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/account/login",
      "Title": "Log In",
      "Description": "Authenticates an active customer or Site Administrator and returns a short-lived token for authorized AIXE actions.",
      "GroupName": "Authentication",
      "SortOrder": 60,
      "DiscoveryRequest": "/aixe/account/login/?",
      "CanonicalHelpTrigger": "GET /aixe/account/login/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Authenticates an active customer or Site Administrator and returns a short-lived token for authorized AIXE actions.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/account/forgot-password",
      "Title": "Request Password Reset",
      "Description": "Accepts an email address and sends a time-limited password-reset link when it belongs to an active profile.",
      "GroupName": "Authentication",
      "SortOrder": 65,
      "DiscoveryRequest": "/aixe/account/forgot-password/?",
      "CanonicalHelpTrigger": "GET /aixe/account/forgot-password/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Accepts an email address and sends a time-limited password-reset link when it belongs to an active profile.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/account/reset-password",
      "Title": "Reset Password",
      "Description": "Replaces the password for the active profile identified by a valid unexpired reset token.",
      "GroupName": "Authentication",
      "SortOrder": 66,
      "DiscoveryRequest": "/aixe/account/reset-password/?",
      "CanonicalHelpTrigger": "GET /aixe/account/reset-password/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Replaces the password for the active profile identified by a valid unexpired reset token.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/account/logout",
      "Title": "Log Out",
      "Description": "Ends the current AIXE session by invalidating the submitted PersonAuthenticationToken.",
      "GroupName": "Authentication",
      "SortOrder": 70,
      "DiscoveryRequest": "/aixe/account/logout/?",
      "CanonicalHelpTrigger": "GET /aixe/account/logout/?",
      "Method": "POST",
      "AccessType": "Authenticated",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Ends the current AIXE session by invalidating the submitted PersonAuthenticationToken.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/account/get-profile",
      "Title": "Get My Profile",
      "Description": "Returns the profile belonging to the authenticated person, including contact, address, status, and current roles.",
      "GroupName": "Accounts",
      "SortOrder": 71,
      "DiscoveryRequest": "/aixe/account/get-profile/?",
      "CanonicalHelpTrigger": "GET /aixe/account/get-profile/?",
      "Method": "POST",
      "AccessType": "Authenticated",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Returns the profile belonging to the authenticated person, including contact, address, status, and current roles.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/account/update-profile",
      "Title": "Update My Profile",
      "Description": "Updates the authenticated person\u0027s name, address, email, and phone information.",
      "GroupName": "Accounts",
      "SortOrder": 72,
      "DiscoveryRequest": "/aixe/account/update-profile/?",
      "CanonicalHelpTrigger": "GET /aixe/account/update-profile/?",
      "Method": "POST",
      "AccessType": "Authenticated",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Updates the authenticated person\u0027s name, address, email, and phone information.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/account/change-password",
      "Title": "Change My Password",
      "Description": "Changes the authenticated person\u0027s password without requiring the existing password again.",
      "GroupName": "Accounts",
      "SortOrder": 73,
      "DiscoveryRequest": "/aixe/account/change-password/?",
      "CanonicalHelpTrigger": "GET /aixe/account/change-password/?",
      "Method": "POST",
      "AccessType": "Authenticated",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Changes the authenticated person\u0027s password without requiring the existing password again.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customer/create-order-request",
      "Title": "Create An Order Request",
      "Description": "Creates a Pending order request for the authenticated customer, saves its item quantities, and calculates the invoice totals without collecting payment.",
      "GroupName": "Customer Orders",
      "SortOrder": 80,
      "DiscoveryRequest": "/aixe/customer/create-order-request/?",
      "CanonicalHelpTrigger": "GET /aixe/customer/create-order-request/?",
      "Method": "POST",
      "AccessType": "Customer",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Creates a Pending order request for the authenticated customer, saves its item quantities, and calculates the invoice totals without collecting payment.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customer/place-order",
      "Title": "Place My Pending Order",
      "Description": "Moves one customer-owned Pending order to Ordered and attempts customer and owner email notifications immediately after saving.",
      "GroupName": "Customer Orders",
      "SortOrder": 92,
      "DiscoveryRequest": "/aixe/customer/place-order/?",
      "CanonicalHelpTrigger": "GET /aixe/customer/place-order/?",
      "Method": "POST",
      "AccessType": "Customer",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Moves one customer-owned Pending order to Ordered and attempts customer and owner email notifications immediately after saving.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customer/cancel-order",
      "Title": "Cancel My Order",
      "Description": "Cancels one customer-owned order before preparation begins and notifies both the customer and business owner.",
      "GroupName": "Customer Orders",
      "SortOrder": 93,
      "DiscoveryRequest": "/aixe/customer/cancel-order/?",
      "CanonicalHelpTrigger": "GET /aixe/customer/cancel-order/?",
      "Method": "POST",
      "AccessType": "Customer",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Cancels one customer-owned order before preparation begins and notifies both the customer and business owner.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/business/update-business",
      "Title": "Update Business Information",
      "Description": "Updates the single Business record that controls public identity, contact information, hours, tax, fees, and enabled fulfillment methods.",
      "GroupName": "Business Management",
      "SortOrder": 200,
      "DiscoveryRequest": "/aixe/owner/business/update-business/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/business/update-business/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Updates the single Business record that controls public identity, contact information, hours, tax, fees, and enabled fulfillment methods.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/business/update-hours",
      "Title": "Update Business Hours",
      "Description": "Replaces the full weekly business schedule in one save. These hours are shared by the Business editor, public Contact page, and administrator order fulfillment-time validation.",
      "GroupName": "Business Management",
      "SortOrder": 201,
      "DiscoveryRequest": "/aixe/owner/business/update-hours/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/business/update-hours/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Replaces the full weekly business schedule in one save. These hours are shared by the Business editor, public Contact page, and administrator order fulfillment-time validation.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/products/get-product",
      "Title": "Get Product For Management",
      "Description": "Returns one product by ProductKey with its complete management fields and all linked images.",
      "GroupName": "Product Management",
      "SortOrder": 221,
      "DiscoveryRequest": "/aixe/owner/products/get-product/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/products/get-product/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Returns one product by ProductKey with its complete management fields and all linked images.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/products/create-product",
      "Title": "Create Product",
      "Description": "Creates one simple inventory product for a distinct treat, flavor, or size.",
      "GroupName": "Product Management",
      "SortOrder": 222,
      "DiscoveryRequest": "/aixe/owner/products/create-product/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/products/create-product/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Creates one simple inventory product for a distinct treat, flavor, or size.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/products/update-product",
      "Title": "Update Product",
      "Description": "Updates approved fields on one product without disturbing its image or order-history relationships.",
      "GroupName": "Product Management",
      "SortOrder": 223,
      "DiscoveryRequest": "/aixe/owner/products/update-product/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/products/update-product/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Updates approved fields on one product without disturbing its image or order-history relationships.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/products/delete-product",
      "Title": "Delete Product",
      "Description": "Permanently deletes one product and its images only when the product has never been linked to order history.",
      "GroupName": "Product Management",
      "SortOrder": 224,
      "DiscoveryRequest": "/aixe/owner/products/delete-product/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/products/delete-product/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Permanently deletes one product and its images only when the product has never been linked to order history.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/products/upload-image",
      "Title": "Upload Product Image",
      "Description": "Uploads one image file, creates its ProductImage record, links it to a product, and optionally makes it the primary image.",
      "GroupName": "Product Images",
      "SortOrder": 225,
      "DiscoveryRequest": "/aixe/owner/products/upload-image/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/products/upload-image/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "multipart/form-data",
      "Purpose": "Uploads one image file, creates its ProductImage record, links it to a product, and optionally makes it the primary image.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/products/delete-image",
      "Title": "Delete Product Image",
      "Description": "Permanently deletes one ProductImage, its product links, and its stored file, then assigns another linked image as primary when possible.",
      "GroupName": "Product Images",
      "SortOrder": 226,
      "DiscoveryRequest": "/aixe/owner/products/delete-image/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/products/delete-image/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Permanently deletes one ProductImage, its product links, and its stored file, then assigns another linked image as primary when possible.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/products/set-primary-image",
      "Title": "Set Primary Product Image",
      "Description": "Marks one image already linked to a product as that product\u0027s sole primary image.",
      "GroupName": "Product Images",
      "SortOrder": 227,
      "DiscoveryRequest": "/aixe/owner/products/set-primary-image/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/products/set-primary-image/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Marks one image already linked to a product as that product\u0027s sole primary image.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-areas/get-service-area",
      "Title": "Get Service Area For Management",
      "Description": "Returns one service area by CityKey with all editable content and status information.",
      "GroupName": "Service Area Management",
      "SortOrder": 231,
      "DiscoveryRequest": "/aixe/owner/service-areas/get-service-area/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-areas/get-service-area/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Returns one service area by CityKey with all editable content and status information.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-areas/create-service-area",
      "Title": "Create Service Area",
      "Description": "Creates one city service area and links it to the Business with LinkerRole Service Area.",
      "GroupName": "Service Area Management",
      "SortOrder": 232,
      "DiscoveryRequest": "/aixe/owner/service-areas/create-service-area/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-areas/create-service-area/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Creates one city service area and links it to the Business with LinkerRole Service Area.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-areas/update-service-area",
      "Title": "Update Service Area",
      "Description": "Updates approved fields on one service area without replacing its Business relationship.",
      "GroupName": "Service Area Management",
      "SortOrder": 233,
      "DiscoveryRequest": "/aixe/owner/service-areas/update-service-area/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-areas/update-service-area/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Updates approved fields on one service area without replacing its Business relationship.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-areas/delete-service-area",
      "Title": "Delete Service Area",
      "Description": "Permanently deletes one service-area City and its applicable Linker relationships.",
      "GroupName": "Service Area Management",
      "SortOrder": 234,
      "DiscoveryRequest": "/aixe/owner/service-areas/delete-service-area/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-areas/delete-service-area/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Permanently deletes one service-area City and its applicable Linker relationships.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customer/replace-invoice-items",
      "Title": "Replace Invoice Items",
      "Description": "Replace the product selection on your own pending invoice after an availability error, retaining its invoice key. Supply the complete desired selection. Stock is rechecked when placing the order.",
      "GroupName": "Customer Orders",
      "SortOrder": 500,
      "DiscoveryRequest": "/aixe/customer/replace-invoice-items/?",
      "CanonicalHelpTrigger": "GET /aixe/customer/replace-invoice-items/?",
      "Method": "POST",
      "AccessType": "Customer",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Replace the product selection on your own pending invoice after an availability error, retaining its invoice key. Supply the complete desired selection. Stock is rechecked when placing the order.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-providers/list-providers",
      "Title": "List Providers",
      "Description": "Search service providers, with safe details and complete pagination.",
      "GroupName": "Scheduling",
      "SortOrder": 507,
      "DiscoveryRequest": "/aixe/owner/service-providers/list-providers/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-providers/list-providers/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search service providers, with safe details and complete pagination.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-providers/get-provider",
      "Title": "Get Provider",
      "Description": "Read provider role state, contact details, outstanding work and record version.",
      "GroupName": "Scheduling",
      "SortOrder": 508,
      "DiscoveryRequest": "/aixe/owner/service-providers/get-provider/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-providers/get-provider/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read provider role state, contact details, outstanding work and record version.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-providers/create-provider",
      "Title": "Create Provider",
      "Description": "Create a provider account with name, email and password, or explicitly grant an existing account using ExistingPersonKey and its RowVersion.",
      "GroupName": "Scheduling",
      "SortOrder": 509,
      "DiscoveryRequest": "/aixe/owner/service-providers/create-provider/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-providers/create-provider/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Create a provider account with name, email and password, or explicitly grant an existing account using ExistingPersonKey and its RowVersion.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-providers/update-provider",
      "Title": "Update Provider",
      "Description": "Edit contact details, password or provider-role active state. Other account roles are preserved.",
      "GroupName": "Scheduling",
      "SortOrder": 510,
      "DiscoveryRequest": "/aixe/owner/service-providers/update-provider/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-providers/update-provider/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Edit contact details, password or provider-role active state. Other account roles are preserved.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-providers/delete-provider",
      "Title": "Delete Provider",
      "Description": "Remove provider access while preserving the person and service history. Clear or reassign all outstanding work first.",
      "GroupName": "Scheduling",
      "SortOrder": 511,
      "DiscoveryRequest": "/aixe/owner/service-providers/delete-provider/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-providers/delete-provider/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Remove provider access while preserving the person and service history. Clear or reassign all outstanding work first.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/scheduling/list-items",
      "Title": "List Items",
      "Description": "Search service occurrences with independent text and local-date filters, an explicit undated queue, and complete pagination. Providers can retrieve only their assigned work.",
      "GroupName": "Scheduling",
      "SortOrder": 512,
      "DiscoveryRequest": "/aixe/scheduling/list-items/?",
      "CanonicalHelpTrigger": "GET /aixe/scheduling/list-items/?",
      "Method": "POST",
      "AccessType": "Service Provider",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search service occurrences with independent text and local-date filters, an explicit undated queue, and complete pagination. Providers can retrieve only their assigned work.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/scheduling/get-item",
      "Title": "Get Item",
      "Description": "Read one service occurrence, contact, address, assignment, versions, status descriptions and allowed actions.",
      "GroupName": "Scheduling",
      "SortOrder": 513,
      "DiscoveryRequest": "/aixe/scheduling/get-item/?",
      "CanonicalHelpTrigger": "GET /aixe/scheduling/get-item/?",
      "Method": "POST",
      "AccessType": "Service Provider",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read one service occurrence, contact, address, assignment, versions, status descriptions and allowed actions.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/scheduling/list-available-times",
      "Title": "List Available Times",
      "Description": "Read available half-hour slots throughout the full day, including outside business hours and overnight services. Results make no reservation; availability is checked again when saved. Providers use their own assignment and duration.",
      "GroupName": "Scheduling",
      "SortOrder": 514,
      "DiscoveryRequest": "/aixe/scheduling/list-available-times/?",
      "CanonicalHelpTrigger": "GET /aixe/scheduling/list-available-times/?",
      "Method": "POST",
      "AccessType": "Service Provider",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read available half-hour slots throughout the full day, including outside business hours and overnight services. Results make no reservation; availability is checked again when saved. Providers use their own assignment and duration.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/scheduling/update-item-schedule",
      "Title": "Update Item Schedule",
      "Description": "Update an individual service occurrence. Owners can correct status in either direction. Providers can only reschedule or progress their assigned work. Save atomically before any requested immediate notifications.",
      "GroupName": "Scheduling",
      "SortOrder": 515,
      "DiscoveryRequest": "/aixe/scheduling/update-item-schedule/?",
      "CanonicalHelpTrigger": "GET /aixe/scheduling/update-item-schedule/?",
      "Method": "POST",
      "AccessType": "Service Provider",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Update an individual service occurrence. Owners can correct status in either direction. Providers can only reschedule or progress their assigned work. Save atomically before any requested immediate notifications.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/customers/create-customer",
      "Title": "Create Customer",
      "Description": "Create a customer without requiring them to register; optional initial password; duplicate-email and phone checks.",
      "GroupName": "Customer management",
      "SortOrder": 516,
      "DiscoveryRequest": "/aixe/owner/customers/create-customer/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/customers/create-customer/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Create a customer without requiring them to register; optional initial password; duplicate-email and phone checks.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/customers/update-customer",
      "Title": "Update Customer",
      "Description": "Update contact/address details, active status, or password with the customer\u0027s record version; preserve administrator-account protections.",
      "GroupName": "Customer management",
      "SortOrder": 517,
      "DiscoveryRequest": "/aixe/owner/customers/update-customer/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/customers/update-customer/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Update contact/address details, active status, or password with the customer\u0027s record version; preserve administrator-account protections.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/customers/delete-customer",
      "Title": "Delete Customer",
      "Description": "Remove customer access, invalidate sessions, and preserve invoice history, matching the customer page.",
      "GroupName": "Customer management",
      "SortOrder": 518,
      "DiscoveryRequest": "/aixe/owner/customers/delete-customer/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/customers/delete-customer/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Remove customer access, invalidate sessions, and preserve invoice history, matching the customer page.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/create-order-header",
      "Title": "Create Order Header",
      "Description": "Save customer, fulfillment method, date/time, and notes as a Pending invoice before products are selected.",
      "GroupName": "Order building and administration",
      "SortOrder": 519,
      "DiscoveryRequest": "/aixe/owner/create-order-header/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/create-order-header/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Save customer, fulfillment method, date/time, and notes as a Pending invoice before products are selected.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/replace-invoice-items",
      "Title": "Replace Invoice Items",
      "Description": "Save the complete product/quantity selection atomically; recalculate totals and invalidate packing confirmations for changed items.",
      "GroupName": "Order building and administration",
      "SortOrder": 520,
      "DiscoveryRequest": "/aixe/owner/replace-invoice-items/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/replace-invoice-items/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Save the complete product/quantity selection atomically; recalculate totals and invalidate packing confirmations for changed items.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/complete-order",
      "Title": "Complete Order",
      "Description": "Validate and finish a draft or an edit; save the order, then attempt its confirmation email immediately. Log a NOC on send failure without undoing the order.",
      "GroupName": "Order building and administration",
      "SortOrder": 521,
      "DiscoveryRequest": "/aixe/owner/complete-order/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/complete-order/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Validate and finish a draft or an edit; save the order, then attempt its confirmation email immediately. Log a NOC on send failure without undoing the order.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/add-order-note",
      "Title": "Add Order Note",
      "Description": "Append an internal invoice note and activity entry without replacing previous notes.",
      "GroupName": "Order building and administration",
      "SortOrder": 522,
      "DiscoveryRequest": "/aixe/owner/add-order-note/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/add-order-note/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Append an internal invoice note and activity entry without replacing previous notes.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/list-order-activity",
      "Title": "List Order Activity",
      "Description": "Retrieve/search invoice activity with dates, types, counts, and continuation.",
      "GroupName": "Order building and administration",
      "SortOrder": 523,
      "DiscoveryRequest": "/aixe/owner/list-order-activity/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/list-order-activity/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Retrieve/search invoice activity with dates, types, counts, and continuation.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/payments/list-payments",
      "Title": "List Payments",
      "Description": "Return invoice transactions, running balances, receipts, refunds, net collected, credit, and balance due.",
      "GroupName": "Payment ledger",
      "SortOrder": 524,
      "DiscoveryRequest": "/aixe/owner/payments/list-payments/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/payments/list-payments/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Return invoice transactions, running balances, receipts, refunds, net collected, credit, and balance due.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/payments/get-payment",
      "Title": "Get Payment",
      "Description": "Read one payment\u0027s complete details, verifying its invoice relationship.",
      "GroupName": "Payment ledger",
      "SortOrder": 525,
      "DiscoveryRequest": "/aixe/owner/payments/get-payment/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/payments/get-payment/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read one payment\u0027s complete details, verifying its invoice relationship.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/payments/record-transaction",
      "Title": "Record Transaction",
      "Description": "Record a signed amount, date, method, reference, and note; negative entries are refunds; accept a stable transaction key.",
      "GroupName": "Payment ledger",
      "SortOrder": 526,
      "DiscoveryRequest": "/aixe/owner/payments/record-transaction/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/payments/record-transaction/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Record a signed amount, date, method, reference, and note; negative entries are refunds; accept a stable transaction key.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/payments/update-payment-details",
      "Title": "Update Payment Details",
      "Description": "Edit only date, method, reference, and note. Reject attempts to change amount, invoice, identity, or creation history.",
      "GroupName": "Payment ledger",
      "SortOrder": 527,
      "DiscoveryRequest": "/aixe/owner/payments/update-payment-details/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/payments/update-payment-details/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Edit only date, method, reference, and note. Reject attempts to change amount, invoice, identity, or creation history.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/fulfillment/list-orders",
      "Title": "List Orders",
      "Description": "Search the fulfillment queue by text, stage, method, and requested dates; return invoice/customer, balance, total quantity, and packing progress.",
      "GroupName": "Fulfillment",
      "SortOrder": 528,
      "DiscoveryRequest": "/aixe/owner/fulfillment/list-orders/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/fulfillment/list-orders/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search the fulfillment queue by text, stage, method, and requested dates; return invoice/customer, balance, total quantity, and packing progress.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/fulfillment/get-fulfillment",
      "Title": "Get Fulfillment",
      "Description": "Read the current packing cycle, item checklist, package details, notifications, assignment, available actions, and record versions.",
      "GroupName": "Fulfillment",
      "SortOrder": 529,
      "DiscoveryRequest": "/aixe/owner/fulfillment/get-fulfillment/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/fulfillment/get-fulfillment/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read the current packing cycle, item checklist, package details, notifications, assignment, available actions, and record versions.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/fulfillment/list-history",
      "Title": "List History",
      "Description": "Read earlier packing cycles and their finalization/assignment references for an invoice.",
      "GroupName": "Fulfillment",
      "SortOrder": 530,
      "DiscoveryRequest": "/aixe/owner/fulfillment/list-history/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/fulfillment/list-history/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read earlier packing cycles and their finalization/assignment references for an invoice.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/fulfillment/start-packing",
      "Title": "Start Packing",
      "Description": "Begin or resume the packing cycle and move an eligible order into Being Fulfilled.",
      "GroupName": "Fulfillment",
      "SortOrder": 531,
      "DiscoveryRequest": "/aixe/owner/fulfillment/start-packing/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/fulfillment/start-packing/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Begin or resume the packing cycle and move an eligible order into Being Fulfilled.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/fulfillment/set-item-packed",
      "Title": "Set Item Packed",
      "Description": "Check or uncheck a full invoice line using invoice, cycle, item keys and expected versions.",
      "GroupName": "Fulfillment",
      "SortOrder": 532,
      "DiscoveryRequest": "/aixe/owner/fulfillment/set-item-packed/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/fulfillment/set-item-packed/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Check or uncheck a full invoice line using invoice, cycle, item keys and expected versions.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/fulfillment/update-packing-details",
      "Title": "Update Packing Details",
      "Description": "Save package count/description and pickup instructions before finalization; do not mutate a finalized handoff.",
      "GroupName": "Fulfillment",
      "SortOrder": 533,
      "DiscoveryRequest": "/aixe/owner/fulfillment/update-packing-details/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/fulfillment/update-packing-details/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Save package count/description and pickup instructions before finalization; do not mutate a finalized handoff.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/fulfillment/finalize-order",
      "Title": "Finalize Order",
      "Description": "Require all current items packed, validate pickup/delivery details, save readiness, then attempt the customer email immediately. On failure, log a NOC; do not queue or retry.",
      "GroupName": "Fulfillment",
      "SortOrder": 534,
      "DiscoveryRequest": "/aixe/owner/fulfillment/finalize-order/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/fulfillment/finalize-order/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Require all current items packed, validate pickup/delivery details, save readiness, then attempt the customer email immediately. On failure, log a NOC; do not queue or retry.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/delivery-vendors/list-vendors",
      "Title": "List Vendors",
      "Description": "Search company, contact name, email, or phone; filter active status; return all matches through explicit continuation.",
      "GroupName": "Delivery vendors",
      "SortOrder": 535,
      "DiscoveryRequest": "/aixe/owner/delivery-vendors/list-vendors/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/delivery-vendors/list-vendors/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search company, contact name, email, or phone; filter active status; return all matches through explicit continuation.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/delivery-vendors/get-vendor",
      "Title": "Get Vendor",
      "Description": "Read one vendor and its version, active state, and whether deletion is permitted.",
      "GroupName": "Delivery vendors",
      "SortOrder": 536,
      "DiscoveryRequest": "/aixe/owner/delivery-vendors/get-vendor/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/delivery-vendors/get-vendor/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read one vendor and its version, active state, and whether deletion is permitted.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/delivery-vendors/create-vendor",
      "Title": "Create Vendor",
      "Description": "Add a company contact with CompanyName, FirstName, LastName, email, optional phone, and active state.",
      "GroupName": "Delivery vendors",
      "SortOrder": 537,
      "DiscoveryRequest": "/aixe/owner/delivery-vendors/create-vendor/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/delivery-vendors/create-vendor/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Add a company contact with CompanyName, FirstName, LastName, email, optional phone, and active state.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/delivery-vendors/update-vendor",
      "Title": "Update Vendor",
      "Description": "Edit contact details or activate/deactivate with a record-version check.",
      "GroupName": "Delivery vendors",
      "SortOrder": 538,
      "DiscoveryRequest": "/aixe/owner/delivery-vendors/update-vendor/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/delivery-vendors/update-vendor/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Edit contact details or activate/deactivate with a record-version check.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/delivery-vendors/delete-vendor",
      "Title": "Delete Vendor",
      "Description": "Delete an unused vendor only. If assignment history exists, return guidance to deactivate instead.",
      "GroupName": "Delivery vendors",
      "SortOrder": 539,
      "DiscoveryRequest": "/aixe/owner/delivery-vendors/delete-vendor/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/delivery-vendors/delete-vendor/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Delete an unused vendor only. If assignment history exists, return guidance to deactivate instead.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/delivery-assignments/list-assignments",
      "Title": "List Assignments",
      "Description": "Find assignments by invoice, vendor, dates, and current fulfillment status; preserve contact snapshots.",
      "GroupName": "Delivery assignments",
      "SortOrder": 540,
      "DiscoveryRequest": "/aixe/owner/delivery-assignments/list-assignments/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/delivery-assignments/list-assignments/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Find assignments by invoice, vendor, dates, and current fulfillment status; preserve contact snapshots.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/delivery-assignments/get-assignment",
      "Title": "Get Assignment",
      "Description": "Read the chosen vendor snapshot, order/cycle relationship, request time, and notification status.",
      "GroupName": "Delivery assignments",
      "SortOrder": 541,
      "DiscoveryRequest": "/aixe/owner/delivery-assignments/get-assignment/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/delivery-assignments/get-assignment/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read the chosen vendor snapshot, order/cycle relationship, request time, and notification status.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/delivery-assignments/assign-vendor",
      "Title": "Assign Vendor",
      "Description": "Assign an active vendor to a finalized delivery order, save the assignment, then attempt its pickup email immediately. A failure logs a NOC and does not undo the assignment.",
      "GroupName": "Delivery assignments",
      "SortOrder": 542,
      "DiscoveryRequest": "/aixe/owner/delivery-assignments/assign-vendor/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/delivery-assignments/assign-vendor/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Assign an active vendor to a finalized delivery order, save the assignment, then attempt its pickup email immediately. A failure logs a NOC and does not undo the assignment.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/delivery-assignments/resend-request",
      "Title": "Resend Request",
      "Description": "Send the pickup request immediately only when an administrator explicitly asks to resend it. This is a deliberate action, never an automatic retry.",
      "GroupName": "Delivery assignments",
      "SortOrder": 543,
      "DiscoveryRequest": "/aixe/owner/delivery-assignments/resend-request/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/delivery-assignments/resend-request/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Send the pickup request immediately only when an administrator explicitly asks to resend it. This is a deliberate action, never an automatic retry.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/noc/list-concerns",
      "Title": "List Concerns",
      "Description": "Search message/source, status, severity, and dates with total counts and continuation.",
      "GroupName": "Notifications of Concern",
      "SortOrder": 544,
      "DiscoveryRequest": "/aixe/owner/noc/list-concerns/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/noc/list-concerns/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search message/source, status, severity, and dates with total counts and continuation.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/noc/get-concern",
      "Title": "Get Concern",
      "Description": "Return the full concern and sanitized diagnostic context to an administrator.",
      "GroupName": "Notifications of Concern",
      "SortOrder": 545,
      "DiscoveryRequest": "/aixe/owner/noc/get-concern/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/noc/get-concern/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Return the full concern and sanitized diagnostic context to an administrator.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/noc/resolve-concern",
      "Title": "Resolve Concern",
      "Description": "Resolve a concern and record the authenticated administrator and time.",
      "GroupName": "Notifications of Concern",
      "SortOrder": 546,
      "DiscoveryRequest": "/aixe/owner/noc/resolve-concern/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/noc/resolve-concern/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Resolve a concern and record the authenticated administrator and time.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/noc/reopen-concern",
      "Title": "Reopen Concern",
      "Description": "Reopen a resolved concern without changing its original diagnostic evidence.",
      "GroupName": "Notifications of Concern",
      "SortOrder": 547,
      "DiscoveryRequest": "/aixe/owner/noc/reopen-concern/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/noc/reopen-concern/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Reopen a resolved concern without changing its original diagnostic evidence.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/email-settings/get-settings",
      "Title": "Get Settings",
      "Description": "Read mail host, port, encryption, sender, username, destination, and HasPassword; never return the password.",
      "GroupName": "Outgoing email configuration",
      "SortOrder": 548,
      "DiscoveryRequest": "/aixe/owner/email-settings/get-settings/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/email-settings/get-settings/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read mail host, port, encryption, sender, username, destination, and HasPassword; never return the password.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/email-settings/update-settings",
      "Title": "Update Settings",
      "Description": "Save validated mail settings; encrypt a supplied password and support an explicit clear operation.",
      "GroupName": "Outgoing email configuration",
      "SortOrder": 549,
      "DiscoveryRequest": "/aixe/owner/email-settings/update-settings/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/email-settings/update-settings/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Save validated mail settings; encrypt a supplied password and support an explicit clear operation.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/settings/get-search-settings",
      "Title": "Get Search Settings",
      "Description": "Read the customer result limit and any explicitly supported search defaults.",
      "GroupName": "Search configuration",
      "SortOrder": 550,
      "DiscoveryRequest": "/aixe/owner/settings/get-search-settings/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/settings/get-search-settings/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read the customer result limit and any explicitly supported search defaults.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/settings/update-search-settings",
      "Title": "Update Search Settings",
      "Description": "Set the allowed customer result limit: zero means all matches. Reject arbitrary ApplicationFlowControl names.",
      "GroupName": "Search configuration",
      "SortOrder": 551,
      "DiscoveryRequest": "/aixe/owner/settings/update-search-settings/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/settings/update-search-settings/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Set the allowed customer result limit: zero means all matches. Reject arbitrary ApplicationFlowControl names.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/administrators/list-administrators",
      "Title": "List Administrators",
      "Description": "Search administrator names/emails and filter active status.",
      "GroupName": "Administrator management",
      "SortOrder": 552,
      "DiscoveryRequest": "/aixe/owner/administrators/list-administrators/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/administrators/list-administrators/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search administrator names/emails and filter active status.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/administrators/get-administrator",
      "Title": "Get Administrator",
      "Description": "Read safe account details and allowed management actions.",
      "GroupName": "Administrator management",
      "SortOrder": 553,
      "DiscoveryRequest": "/aixe/owner/administrators/get-administrator/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/administrators/get-administrator/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read safe account details and allowed management actions.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/administrators/create-administrator",
      "Title": "Create Administrator",
      "Description": "Create or grant administrator access through the existing account rules.",
      "GroupName": "Administrator management",
      "SortOrder": 554,
      "DiscoveryRequest": "/aixe/owner/administrators/create-administrator/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/administrators/create-administrator/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Create or grant administrator access through the existing account rules.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/administrators/update-administrator",
      "Title": "Update Administrator",
      "Description": "Update name/email, password, or active status; invalidate affected sessions and prevent self/last-admin lockout.",
      "GroupName": "Administrator management",
      "SortOrder": 555,
      "DiscoveryRequest": "/aixe/owner/administrators/update-administrator/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/administrators/update-administrator/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Update name/email, password, or active status; invalidate affected sessions and prevent self/last-admin lockout.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/administrators/delete-administrator",
      "Title": "Delete Administrator",
      "Description": "Remove administrator access while preserving any customer role and historical records; protect the current and last active admin.",
      "GroupName": "Administrator management",
      "SortOrder": 556,
      "DiscoveryRequest": "/aixe/owner/administrators/delete-administrator/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/administrators/delete-administrator/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Remove administrator access while preserving any customer role and historical records; protect the current and last active admin.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/get-dashboard",
      "Title": "Get Dashboard",
      "Description": "Return authorized management links, order-stage counts, and open concern counts, including email failures.",
      "GroupName": "Dashboard and image-management completeness",
      "SortOrder": 557,
      "DiscoveryRequest": "/aixe/owner/get-dashboard/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/get-dashboard/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Return authorized management links, order-stage counts, and open concern counts, including email failures.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/products/update-image",
      "Title": "Update Image",
      "Description": "Update an existing image\u0027s alternative text and sort order, complementing upload, delete, and primary-image selection.",
      "GroupName": "Dashboard and image-management completeness",
      "SortOrder": 558,
      "DiscoveryRequest": "/aixe/owner/products/update-image/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/products/update-image/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Update an existing image\u0027s alternative text and sort order, complementing upload, delete, and primary-image selection.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/customers/list-customers",
      "Title": "List Customers",
      "Description": "Require an actual search by default; full-name and normalized-phone matching; active filter; respect ApplicationFlowControl and disclose limits; make every match retrievable.",
      "GroupName": "Management",
      "SortOrder": 559,
      "DiscoveryRequest": "/aixe/owner/customers/list-customers/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/customers/list-customers/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Require an actual search by default; full-name and normalized-phone matching; active filter; respect ApplicationFlowControl and disclose limits; make every match retrievable.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/customers/get-customer",
      "Title": "Get Customer",
      "Description": "Include record version and allowed actions; expose no password hashes or session secrets.",
      "GroupName": "Management",
      "SortOrder": 560,
      "DiscoveryRequest": "/aixe/owner/customers/get-customer/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/customers/get-customer/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Include record version and allowed actions; expose no password hashes or session secrets.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/products/list-products",
      "Title": "List Products",
      "Description": "Match the page\u0027s combined product-name/SKU/category search; active/available filters; remove silent 200-item truncation.",
      "GroupName": "Management",
      "SortOrder": 561,
      "DiscoveryRequest": "/aixe/owner/products/list-products/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/products/list-products/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Match the page\u0027s combined product-name/SKU/category search; active/available filters; remove silent 200-item truncation.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/products/list-products",
      "Title": "List Products",
      "Description": "Add SKU/category to text matching while preserving public active-product restrictions; complete result traversal.",
      "GroupName": "Management",
      "SortOrder": 562,
      "DiscoveryRequest": "/aixe/products/list-products/?",
      "CanonicalHelpTrigger": "GET /aixe/products/list-products/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Add SKU/category to text matching while preserving public active-product restrictions; complete result traversal.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/list-orders",
      "Title": "List Orders",
      "Description": "Latest ten by default for page parity; independent text and invoice-date bounds, status/payment filters, totals and continuation.",
      "GroupName": "Management",
      "SortOrder": 563,
      "DiscoveryRequest": "/aixe/owner/list-orders/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/list-orders/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Latest ten by default for page parity; independent text and invoice-date bounds, status/payment filters, totals and continuation.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/get-order",
      "Title": "Get Order",
      "Description": "Return the complete admin invoice: linked customer key, items, ledger, credit/balance, activity, packing and vendor summaries, record versions and available actions.",
      "GroupName": "Management",
      "SortOrder": 564,
      "DiscoveryRequest": "/aixe/owner/get-order/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/get-order/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Return the complete admin invoice: linked customer key, items, ledger, credit/balance, activity, packing and vendor summaries, record versions and available actions.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/invoices/search",
      "Title": "Search",
      "Description": "Reuse page text/local invoice-date semantics for Created searches; preserve advanced filters and legacy Ordered default explicitly; support all matching invoices, not only first 200.",
      "GroupName": "Management",
      "SortOrder": 565,
      "DiscoveryRequest": "/aixe/owner/invoices/search/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/invoices/search/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Reuse page text/local invoice-date semantics for Created searches; preserve advanced filters and legacy Ordered default explicitly; support all matching invoices, not only first 200.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customer/list-orders",
      "Title": "List Orders",
      "Description": "Latest thirty by default; own-order text/date search with every match retrievable; customer scope applied before all filters.",
      "GroupName": "Management",
      "SortOrder": 566,
      "DiscoveryRequest": "/aixe/customer/list-orders/?",
      "CanonicalHelpTrigger": "GET /aixe/customer/list-orders/?",
      "Method": "POST",
      "AccessType": "Customer",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Latest thirty by default; own-order text/date search with every match retrievable; customer scope applied before all filters.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customer/get-order",
      "Title": "Get Order",
      "Description": "Use a customer-specific response; exclude internal notes, internal activity, vendor/system diagnostics and private payment notes.",
      "GroupName": "Management",
      "SortOrder": 567,
      "DiscoveryRequest": "/aixe/customer/get-order/?",
      "CanonicalHelpTrigger": "GET /aixe/customer/get-order/?",
      "Method": "POST",
      "AccessType": "Customer",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Use a customer-specific response; exclude internal notes, internal activity, vendor/system diagnostics and private payment notes.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/create-order",
      "Title": "Create Order",
      "Description": "Keep existing all-at-once creation; share header, hours, service-area and quantity validation.",
      "GroupName": "Management",
      "SortOrder": 568,
      "DiscoveryRequest": "/aixe/owner/create-order/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/create-order/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Keep existing all-at-once creation; share header, hours, service-area and quantity validation.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/update-order",
      "Title": "Update Order",
      "Description": "Support linked-customer changes and explicit snapshot refresh; reuse header validation/recalculation and expected-version checks; make notification behavior explicit.",
      "GroupName": "Management",
      "SortOrder": 569,
      "DiscoveryRequest": "/aixe/owner/update-order/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/update-order/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Support linked-customer changes and explicit snapshot refresh; reuse header validation/recalculation and expected-version checks; make notification behavior explicit.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/add-invoice-item",
      "Title": "Add Invoice Item",
      "Description": "Reuse shared item logic, enforce versions, recalculate ledger-aware balance and invalidate affected packing; deliberate notification behavior.",
      "GroupName": "Management",
      "SortOrder": 570,
      "DiscoveryRequest": "/aixe/owner/add-invoice-item/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/add-invoice-item/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Reuse shared item logic, enforce versions, recalculate ledger-aware balance and invalidate affected packing; deliberate notification behavior.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/update-invoice-item",
      "Title": "Update Invoice Item",
      "Description": "Same consistency checks; preserve supported quantity/price updates and invalidate packing when required.",
      "GroupName": "Management",
      "SortOrder": 571,
      "DiscoveryRequest": "/aixe/owner/update-invoice-item/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/update-invoice-item/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Same consistency checks; preserve supported quantity/price updates and invalidate packing when required.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/remove-invoice-item",
      "Title": "Remove Invoice Item",
      "Description": "Same consistency checks; removal of the final line disables Review and finalization; handle delivery minimum at the appropriate stage.",
      "GroupName": "Management",
      "SortOrder": 572,
      "DiscoveryRequest": "/aixe/owner/remove-invoice-item/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/remove-invoice-item/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Same consistency checks; removal of the final line disables Review and finalization; handle delivery minimum at the appropriate stage.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/update-order-status",
      "Title": "Update Order Status",
      "Description": "Set an explicit InvoiceStatus in either direction through one shared administrator/fulfillment endpoint. Publish every status code and its description in the discovery contract; return the full status catalog with applicability, current status, and record version. Do not use a forward-only transition map.",
      "GroupName": "Management",
      "SortOrder": 573,
      "DiscoveryRequest": "/aixe/owner/update-order-status/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/update-order-status/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Set an explicit InvoiceStatus in either direction through one shared administrator/fulfillment endpoint. Publish every status code and its description in the discovery contract; return the full status catalog with applicability, current status, and record version. Do not use a forward-only transition map.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/record-payment",
      "Title": "Record Payment",
      "Description": "Compatibility wrapper over the signed ledger service; expose payment date/key/version, idempotency and permitted overpayment; return transaction identity and truthful notification result.",
      "GroupName": "Management",
      "SortOrder": 574,
      "DiscoveryRequest": "/aixe/owner/record-payment/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/record-payment/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Compatibility wrapper over the signed ledger service; expose payment date/key/version, idempotency and permitted overpayment; return transaction identity and truthful notification result.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/record-refund",
      "Title": "Record Refund",
      "Description": "Compatibility wrapper creating a negative transaction; explicit date/key/version, refund limits and note.",
      "GroupName": "Management",
      "SortOrder": 575,
      "DiscoveryRequest": "/aixe/owner/record-refund/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/record-refund/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Compatibility wrapper creating a negative transaction; explicit date/key/version, refund limits and note.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/customers/send-message",
      "Title": "Send Message",
      "Description": "Use the shared immediate sender; report whether SMTP accepted this attempt. On failure, log a NOC and return a failed-send outcome without queuing or retrying.",
      "GroupName": "Management",
      "SortOrder": 576,
      "DiscoveryRequest": "/aixe/owner/customers/send-message/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/customers/send-message/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Use the shared immediate sender; report whether SMTP accepted this attempt. On failure, log a NOC and return a failed-send outcome without queuing or retrying.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/service-areas/list-service-areas",
      "Title": "List Service Areas",
      "Description": "Search/filter and complete traversal instead of a fixed 200-row list.",
      "GroupName": "Management",
      "SortOrder": 577,
      "DiscoveryRequest": "/aixe/owner/service-areas/list-service-areas/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/service-areas/list-service-areas/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search/filter and complete traversal instead of a fixed 200-row list.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/service-areas/list-service-areas",
      "Title": "List Service Areas",
      "Description": "Retain public active-area filtering with complete traversal instead of a fixed 100-row list.",
      "GroupName": "Management",
      "SortOrder": 578,
      "DiscoveryRequest": "/aixe/service-areas/list-service-areas/?",
      "CanonicalHelpTrigger": "GET /aixe/service-areas/list-service-areas/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Retain public active-area filtering with complete traversal instead of a fixed 100-row list.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/get-sales-summary",
      "Title": "Get Sales Summary",
      "Description": "Align/document date boundaries and ledger totals; safe maximum-date handling; retain summary behavior.",
      "GroupName": "Management",
      "SortOrder": 579,
      "DiscoveryRequest": "/aixe/owner/get-sales-summary/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/get-sales-summary/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Align/document date boundaries and ledger totals; safe maximum-date handling; retain summary behavior.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/sales/get-breakdown",
      "Title": "Get Breakdown",
      "Description": "Expose all matching groups through continuation, accurate aggregate totals, and consistent date boundaries.",
      "GroupName": "Management",
      "SortOrder": 580,
      "DiscoveryRequest": "/aixe/owner/sales/get-breakdown/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/sales/get-breakdown/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Expose all matching groups through continuation, accurate aggregate totals, and consistent date boundaries.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customer/get-recurrence",
      "Title": "Get Recurrence",
      "Description": "Read the authenticated customer\u0027s invoice recurrence schedule and available intervals.",
      "GroupName": "Recurring Invoices",
      "SortOrder": 900,
      "DiscoveryRequest": "/aixe/customer/get-recurrence/?",
      "CanonicalHelpTrigger": "GET /aixe/customer/get-recurrence/?",
      "Method": "POST",
      "AccessType": "Customer",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read the authenticated customer\u0027s invoice recurrence schedule and available intervals.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/get-recurrence",
      "Title": "Get Recurrence",
      "Description": "Read an invoice\u0027s fixed-hour recurrence schedule and available intervals.",
      "GroupName": "Recurring Invoices",
      "SortOrder": 900,
      "DiscoveryRequest": "/aixe/owner/get-recurrence/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/get-recurrence/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read an invoice\u0027s fixed-hour recurrence schedule and available intervals.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/list-lists",
      "Title": "List Lists",
      "Description": "Search reusable named lists by name or description and retrieve paginated summaries with item counts.",
      "GroupName": "List Management",
      "SortOrder": 900,
      "DiscoveryRequest": "/aixe/owner/lists/list-lists/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/list-lists/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search reusable named lists by name or description and retrieve paginated summaries with item counts.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/list-recurrences",
      "Title": "List Recurrences",
      "Description": "Search active and stopped invoice recurrence schedules with pagination.",
      "GroupName": "Recurring Invoices",
      "SortOrder": 900,
      "DiscoveryRequest": "/aixe/owner/list-recurrences/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/list-recurrences/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search active and stopped invoice recurrence schedules with pagination.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customer/list-recurrences",
      "Title": "List Recurrences",
      "Description": "Search only the authenticated customer\u0027s active and stopped invoice recurrence schedules.",
      "GroupName": "Recurring Invoices",
      "SortOrder": 900,
      "DiscoveryRequest": "/aixe/customer/list-recurrences/?",
      "CanonicalHelpTrigger": "GET /aixe/customer/list-recurrences/?",
      "Method": "POST",
      "AccessType": "Customer",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Search only the authenticated customer\u0027s active and stopped invoice recurrence schedules.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/customer/update-recurrence",
      "Title": "Update Recurrence",
      "Description": "Enable, change or stop recurrence on an invoice owned by the authenticated customer.",
      "GroupName": "Recurring Invoices",
      "SortOrder": 900,
      "DiscoveryRequest": "/aixe/customer/update-recurrence/?",
      "CanonicalHelpTrigger": "GET /aixe/customer/update-recurrence/?",
      "Method": "POST",
      "AccessType": "Customer",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Enable, change or stop recurrence on an invoice owned by the authenticated customer.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/update-recurrence",
      "Title": "Update Recurrence",
      "Description": "Enable, change or stop future invoice generation. Existing invoices and payments remain unchanged.",
      "GroupName": "Recurring Invoices",
      "SortOrder": 900,
      "DiscoveryRequest": "/aixe/owner/update-recurrence/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/update-recurrence/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Enable, change or stop future invoice generation. Existing invoices and payments remain unchanged.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/get-list",
      "Title": "Get List",
      "Description": "Read one list\u0027s name, purpose, suggested counts and actual item count before managing its contents.",
      "GroupName": "List Management",
      "SortOrder": 901,
      "DiscoveryRequest": "/aixe/owner/lists/get-list/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/get-list/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read one list\u0027s name, purpose, suggested counts and actual item count before managing its contents.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/create-list",
      "Title": "Create List",
      "Description": "Create an empty named list ready for generic values and descriptive labels.",
      "GroupName": "List Management",
      "SortOrder": 902,
      "DiscoveryRequest": "/aixe/owner/lists/create-list/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/create-list/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Create an empty named list ready for generic values and descriptive labels.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/update-list",
      "Title": "Update List",
      "Description": "Edit list metadata without changing its items or their order. Omitted fields remain unchanged.",
      "GroupName": "List Management",
      "SortOrder": 903,
      "DiscoveryRequest": "/aixe/owner/lists/update-list/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/update-list/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Edit list metadata without changing its items or their order. Omitted fields remain unchanged.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/delete-list",
      "Title": "Delete List",
      "Description": "Delete an empty list. Remove its items first; lists with remaining relationships cannot be deleted.",
      "GroupName": "List Management",
      "SortOrder": 904,
      "DiscoveryRequest": "/aixe/owner/lists/delete-list/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/delete-list/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Delete an empty list. Remove its items first; lists with remaining relationships cannot be deleted.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/invoices/renew-invoices",
      "Title": "Build Recurring Invoices",
      "Description": "Create due recurring invoices for this site. Public hourly scheduler trigger; repeat calls are safe.",
      "GroupName": "Recurring Invoices",
      "SortOrder": 905,
      "DiscoveryRequest": "/aixe/invoices/renew-invoices/?",
      "CanonicalHelpTrigger": "GET /aixe/invoices/renew-invoices/?",
      "Method": "POST",
      "AccessType": "Public",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Create due recurring invoices for this site. Public hourly scheduler trigger; repeat calls are safe.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/list-items",
      "Title": "List Items",
      "Description": "Read or search a list\u0027s values and descriptions in saved order, following pagination to retrieve all matches.",
      "GroupName": "List Management",
      "SortOrder": 905,
      "DiscoveryRequest": "/aixe/owner/lists/list-items/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/list-items/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read or search a list\u0027s values and descriptions in saved order, following pagination to retrieve all matches.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/get-item",
      "Title": "Get Item",
      "Description": "Read one item\u0027s generic value, description and saved order within a selected list.",
      "GroupName": "List Management",
      "SortOrder": 906,
      "DiscoveryRequest": "/aixe/owner/lists/get-item/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/get-item/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Read one item\u0027s generic value, description and saved order within a selected list.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/add-item",
      "Title": "Add Item",
      "Description": "Append a value with an optional descriptive label to the end of a list. Counts are suggestions, not limits.",
      "GroupName": "List Management",
      "SortOrder": 907,
      "DiscoveryRequest": "/aixe/owner/lists/add-item/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/add-item/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Append a value with an optional descriptive label to the end of a list. Counts are suggestions, not limits.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/update-item",
      "Title": "Update Item",
      "Description": "Edit an item\u0027s value or description while preserving its list membership and order. Omitted fields remain unchanged.",
      "GroupName": "List Management",
      "SortOrder": 908,
      "DiscoveryRequest": "/aixe/owner/lists/update-item/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/update-item/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Edit an item\u0027s value or description while preserving its list membership and order. Omitted fields remain unchanged.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/delete-item",
      "Title": "Delete Item",
      "Description": "Remove an item from the selected list and renumber the remaining items. Referenced products or other resources are never deleted.",
      "GroupName": "List Management",
      "SortOrder": 909,
      "DiscoveryRequest": "/aixe/owner/lists/delete-item/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/delete-item/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Remove an item from the selected list and renumber the remaining items. Referenced products or other resources are never deleted.",
      "DocumentationSource": "AIXEEndpointRegistry"
    },
    {
      "Endpoint": "/aixe/owner/lists/reorder-items",
      "Title": "Reorder Items",
      "Description": "Save a complete new item sequence atomically, assigning OrderBy values starting at one. Supply every current item exactly once.",
      "GroupName": "List Management",
      "SortOrder": 910,
      "DiscoveryRequest": "/aixe/owner/lists/reorder-items/?",
      "CanonicalHelpTrigger": "GET /aixe/owner/lists/reorder-items/?",
      "Method": "POST",
      "AccessType": "Site Administrator",
      "Status": "Active",
      "ContentType": "application/json; charset=utf-8",
      "Purpose": "Save a complete new item sequence atomically, assigning OrderBy values starting at one. Supply every current item exactly once.",
      "DocumentationSource": "AIXEEndpointRegistry"
    }
  ],
  "UsageGuidance": {
    "Role": "Use this manifest to find a capability, then load that capability\u0027s registry-backed discovery contract.",
    "CorrectWorkflow": [
      "Select an active endpoint by Purpose and Description.",
      "Call its CanonicalHelpTrigger to read the current discovery contract.",
      "Execute the declared action with the method and request body specified by that contract."
    ]
  },
  "MinimumContractShape": {
    "Protocol": "AIXE",
    "Version": "1.0",
    "ProtocolReference": {
      "ProtocolHome": "http://aixeprotocol.com/",
      "CanonicalUsageContract": "http://aixeprotocol.com/usage/?",
      "Whitepaper": "http://aixeprotocol.com/whitepaper/full-spec.html"
    },
    "Endpoint": "...",
    "Purpose": "...",
    "Method": "...",
    "RequiredFields": {},
    "OptionalFields": {},
    "BusinessRules": [],
    "Errors": [],
    "ActionResponse": {
      "RequiredResponseFields": [
        "SuccessCode"
      ],
      "MissingSuccessCode": "Treat the action as failed."
    }
  },
  "MinimumActionResponseShape": {
    "SuccessCode": "SUCCESS",
    "Message": "The endpoint declares the action outcome. Only a declared success SuccessCode means success; failure codes, missing codes, and empty responses mean failure unless explicitly declared non-final."
  }
}