@epilot/sdk 2.18.23 → 2.18.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/definitions/customer-portal-runtime.json +1 -1
  2. package/definitions/customer-portal.json +418 -10
  3. package/definitions/validation-rules.json +67 -2
  4. package/dist/apis/access-token.cjs +6 -6
  5. package/dist/apis/access-token.js +1 -1
  6. package/dist/apis/address-suggestions.cjs +6 -6
  7. package/dist/apis/address-suggestions.js +1 -1
  8. package/dist/apis/address.cjs +6 -6
  9. package/dist/apis/address.js +1 -1
  10. package/dist/apis/ai-agents.cjs +6 -6
  11. package/dist/apis/ai-agents.js +1 -1
  12. package/dist/apis/app.cjs +6 -6
  13. package/dist/apis/app.js +1 -1
  14. package/dist/apis/audit-logs.cjs +6 -6
  15. package/dist/apis/audit-logs.js +1 -1
  16. package/dist/apis/automation.cjs +6 -6
  17. package/dist/apis/automation.js +1 -1
  18. package/dist/apis/billing.cjs +6 -6
  19. package/dist/apis/billing.js +1 -1
  20. package/dist/apis/blueprint-manifest.cjs +6 -6
  21. package/dist/apis/blueprint-manifest.js +1 -1
  22. package/dist/apis/calendar.cjs +6 -6
  23. package/dist/apis/calendar.js +1 -1
  24. package/dist/apis/configuration-hub.cjs +6 -6
  25. package/dist/apis/configuration-hub.js +1 -1
  26. package/dist/apis/consent.cjs +6 -6
  27. package/dist/apis/consent.js +1 -1
  28. package/dist/apis/customer-portal.cjs +8 -8
  29. package/dist/apis/customer-portal.d.cts +2 -2
  30. package/dist/apis/customer-portal.d.ts +2 -2
  31. package/dist/apis/customer-portal.js +2 -2
  32. package/dist/apis/dashboard.cjs +6 -6
  33. package/dist/apis/dashboard.js +1 -1
  34. package/dist/apis/data-governance.cjs +6 -6
  35. package/dist/apis/data-governance.js +1 -1
  36. package/dist/apis/deduplication.cjs +6 -6
  37. package/dist/apis/deduplication.js +1 -1
  38. package/dist/apis/design.cjs +6 -6
  39. package/dist/apis/design.js +1 -1
  40. package/dist/apis/document.cjs +6 -6
  41. package/dist/apis/document.js +1 -1
  42. package/dist/apis/email-settings.cjs +6 -6
  43. package/dist/apis/email-settings.js +1 -1
  44. package/dist/apis/email-template.cjs +6 -6
  45. package/dist/apis/email-template.js +1 -1
  46. package/dist/apis/entity-mapping.cjs +6 -6
  47. package/dist/apis/entity-mapping.js +1 -1
  48. package/dist/apis/entity.cjs +6 -6
  49. package/dist/apis/entity.js +1 -1
  50. package/dist/apis/environments.cjs +6 -6
  51. package/dist/apis/environments.js +1 -1
  52. package/dist/apis/event-catalog.cjs +6 -6
  53. package/dist/apis/event-catalog.js +1 -1
  54. package/dist/apis/file.cjs +6 -6
  55. package/dist/apis/file.js +1 -1
  56. package/dist/apis/iban.cjs +6 -6
  57. package/dist/apis/iban.js +1 -1
  58. package/dist/apis/integration-toolkit.cjs +6 -6
  59. package/dist/apis/integration-toolkit.js +1 -1
  60. package/dist/apis/journey.cjs +6 -6
  61. package/dist/apis/journey.js +1 -1
  62. package/dist/apis/kanban.cjs +6 -6
  63. package/dist/apis/kanban.js +1 -1
  64. package/dist/apis/message.cjs +6 -6
  65. package/dist/apis/message.js +1 -1
  66. package/dist/apis/metering.cjs +6 -6
  67. package/dist/apis/metering.js +1 -1
  68. package/dist/apis/notes.cjs +6 -6
  69. package/dist/apis/notes.js +1 -1
  70. package/dist/apis/notification.cjs +6 -6
  71. package/dist/apis/notification.js +1 -1
  72. package/dist/apis/organization.cjs +6 -6
  73. package/dist/apis/organization.js +1 -1
  74. package/dist/apis/partner-directory.cjs +6 -6
  75. package/dist/apis/partner-directory.js +1 -1
  76. package/dist/apis/permissions.cjs +6 -6
  77. package/dist/apis/permissions.js +1 -1
  78. package/dist/apis/pricing-tier.cjs +6 -6
  79. package/dist/apis/pricing-tier.js +1 -1
  80. package/dist/apis/pricing.cjs +6 -6
  81. package/dist/apis/pricing.js +1 -1
  82. package/dist/apis/purpose.cjs +6 -6
  83. package/dist/apis/purpose.js +1 -1
  84. package/dist/apis/query.cjs +6 -6
  85. package/dist/apis/query.js +1 -1
  86. package/dist/apis/sandbox.cjs +6 -6
  87. package/dist/apis/sandbox.js +1 -1
  88. package/dist/apis/sharing.cjs +6 -6
  89. package/dist/apis/sharing.js +1 -1
  90. package/dist/apis/snapshot.cjs +6 -6
  91. package/dist/apis/snapshot.js +1 -1
  92. package/dist/apis/submission.cjs +6 -6
  93. package/dist/apis/submission.js +1 -1
  94. package/dist/apis/target.cjs +6 -6
  95. package/dist/apis/target.js +1 -1
  96. package/dist/apis/targeting.cjs +6 -6
  97. package/dist/apis/targeting.js +1 -1
  98. package/dist/apis/template-variables.cjs +6 -6
  99. package/dist/apis/template-variables.js +1 -1
  100. package/dist/apis/user.cjs +6 -6
  101. package/dist/apis/user.js +1 -1
  102. package/dist/apis/validation-rules.cjs +6 -6
  103. package/dist/apis/validation-rules.d.cts +2 -2
  104. package/dist/apis/validation-rules.d.ts +2 -2
  105. package/dist/apis/validation-rules.js +1 -1
  106. package/dist/apis/webhooks.cjs +6 -6
  107. package/dist/apis/webhooks.js +1 -1
  108. package/dist/apis/workflow-definition.cjs +6 -6
  109. package/dist/apis/workflow-definition.js +1 -1
  110. package/dist/apis/workflow.cjs +6 -6
  111. package/dist/apis/workflow.js +1 -1
  112. package/dist/{chunk-J57SWYWL.cjs → chunk-6AESXD5D.cjs} +3 -3
  113. package/dist/{chunk-AWKA7GZQ.js → chunk-GB2OJK7Z.js} +1 -1
  114. package/dist/{chunk-QKEPXYEF.cjs → chunk-Q35SXSWS.cjs} +1 -1
  115. package/dist/{chunk-SCBBLLBK.js → chunk-XW3N5APN.js} +3 -3
  116. package/dist/customer-portal-FOLTI3GK.cjs +7 -0
  117. package/dist/customer-portal-HQ3DJCGO.js +7 -0
  118. package/dist/{customer-portal-runtime-6CECA6UW.js → customer-portal-runtime-PIBTR7QG.js} +1 -1
  119. package/dist/{customer-portal-runtime-QMONBHLN.cjs → customer-portal-runtime-UVMYBCJL.cjs} +2 -2
  120. package/dist/{customer-portal.d-Ce8-UnSY.d.cts → customer-portal.d-D44zeiJ4.d.cts} +348 -12
  121. package/dist/{customer-portal.d-Ce8-UnSY.d.ts → customer-portal.d-D44zeiJ4.d.ts} +348 -12
  122. package/dist/index.cjs +10 -10
  123. package/dist/index.d.cts +2 -2
  124. package/dist/index.d.ts +2 -2
  125. package/dist/index.js +2 -2
  126. package/dist/validation-rules-G5BWXUWI.cjs +7 -0
  127. package/dist/validation-rules-NLHK2CD3.js +7 -0
  128. package/dist/{validation-rules.d-BBy6Cw2O.d.cts → validation-rules.d-MvjG-zzw.d.cts} +58 -2
  129. package/dist/{validation-rules.d-BBy6Cw2O.d.ts → validation-rules.d-MvjG-zzw.d.ts} +58 -2
  130. package/docs/customer-portal.md +264 -4
  131. package/docs/validation-rules.md +63 -4
  132. package/package.json +1 -1
  133. package/dist/customer-portal-JLUT56QQ.js +0 -7
  134. package/dist/customer-portal-NUYHT3HX.cjs +0 -7
  135. package/dist/validation-rules-CU5JJKDV.cjs +0 -7
  136. package/dist/validation-rules-M2JVIR7U.js +0 -7
@@ -1 +1 @@
1
- {"s":"https://customer-portal-api.sls.epilot.io","o":[["upsertPortal","post","/v2/portal/portal",[["origin","q",true],["portal_id","q"]],1],["createUser","post","/v2/portal/public/user",[["origin","q",true]],1],["createUserV3","post","/v3/portal/public/user",[["portal_id","q"],["domain","q"]],1],["validateToken","post","/v2/portal/token/validate"],["revokeToken","post","/v2/portal/token/revoke",null,1],["getPortalConfigByDomain","get","/v2/portal/public/config",[["domain","q",true]]],["getPortalConfig","get","/v2/portal/config",[["origin","q"]]],["deletePortal","delete","/v2/portal/config",[["origin","q",true]]],["createExport","post","/v1/portal/exports",null,1],["getExport","get","/v1/portal/exports/{jobId}",[["jobId","p",true]]],["getPortalExtensions","get","/v2/portal/extensions",[["origin","q"]]],["getPublicPortalExtensionDetails","get","/v2/portal/public/extensions",[["org_id","q",true],["origin","q",true]]],["getPortalExtensionsV3","get","/v3/portal/extensions",[["portal_id","q",true]]],["getPublicPortalExtensionDetailsV3","get","/v3/portal/public/extensions",[["org_id","q"],["portal_id","q"],["domain","q"]]],["getConsumption","get","/v2/portal/consumption",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["prepareVisualizationExport","post","/v2/portal/visualization:export",null,1],["getVisualizationMetadata","get","/v2/portal/visualization/metadata",[["app_id","q",true],["extensionId","q",true],["context_entities","q"]]],["getCosts","get","/v2/portal/costs",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["getPrices","get","/v2/portal/prices",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["getExternalLinks","get","/v2/portal/external-links",[["origin","q"],["contactId","q"]]],["getResolvedExternalLink","get","/v2/portal/resolve:external-link/{id}",[["id","p",true],["origin","q"],["contactId","q"]]],["getExternalLinksV3","get","/v3/portal/external-links",[["portal_id","q"],["contactId","q"]]],["getResolvedExternalLinkV3","get","/v3/portal/resolve:external-link/{id}",[["id","p",true],["portal_id","q"],["contactId","q"]]],["getResolvedSeamlessLink","get","/v2/portal/resolve:seamless-link",[["app_id","q"],["extension_id","q",true],["link_id","q",true],["context_entities","q"]]],["getPublicPortalConfig","get","/v2/portal/public/portal/config",[["org_id","q",true],["origin","q",true]]],["getOrgPortalConfig","get","/v2/portal/org/portal/config",[["origin","q",true]]],["getPublicPortalConfigV3","get","/v3/portal/public/portal/config",[["org_id","q",true],["portal_id","q",true]]],["getOrgPortalConfigV3","get","/v3/portal/org/portal/config",[["portal_id","q",true]]],["getAllPortalConfigs","get","/v2/portal/configs"],["upsertEmailTemplates","post","/v2/portal/email-templates",[["origin","q",true]],1],["getEmailTemplates","get","/v2/portal/email-templates",[["origin","q",true]]],["migrateEmailTemplateReferences","post","/v3/portal/email-templates:migrate-references",null,1],["listEmailTemplateReferences","post","/v3/portal/email-templates:list-references",null,1],["upsertEmailTemplatesByPortalId","post","/v3/portal/email-templates/{portal_id}",[["portal_id","p",true]],1],["getEmailTemplatesByPortalId","get","/v3/portal/email-templates/{portal_id}",[["portal_id","p",true]]],["getPublicPortalWidgets","get","/v2/portal/public-widgets",[["org_id","q",true],["origin","q",true]]],["getPublicPortalWidgetsV3","get","/v3/portal/public/widgets",[["org_id","q"],["portal_id","q"],["domain","q"]]],["upsertPortalWidget","post","/v2/portal/widgets",[["origin","q",true]],1],["getPortalWidgets","get","/v2/portal/widgets",[["origin","q"],["contract_id","q"]]],["getPortalWidgetsV3","get","/v3/portal/widgets",[["portal_id","q",true],["contract_id","q"]]],["upsertPortalWidgetV3","post","/v3/portal/widgets",[["portal_id","q",true]],1],["savePortalFilesV3","post","/v3/portal/portal/files",[["portal_id","q",true]],1],["replaceECPTemplateVariables","post","/v2/portal/replace-ecp-template-variables",null,1],["getOrganizationSettings","get","/v2/portal/org/settings"],["getSchemas","get","/v2/portal/schemas"],["getSchemasByDomain","get","/v2/portal/public/schemas",[["domain","q",true]]],["getPublicSchemasV3","get","/v3/portal/public/schemas",[["org_id","q"],["portal_id","q"],["domain","q"]]],["getOrganizationSettingsByDomain","get","/v2/portal/public/org/settings",[["domain","q",true]]],["extraPermissionAttributes","get","/v2/portal/extra-permission-attributes"],["validateCaaRecords","post","/v2/portal/validate/caa-records",[["origin","q",true]]],["validateCaaRecordsV3","post","/v3/portal/validate/caa-records",[["portal_id","q",true]]],["getContact","get","/v2/portal/contact"],["updateContact","patch","/v2/portal/contact",null,1],["getECPContact","get","/v2/portal/ecp/contact",[["id","q",true]]],["checkContactExists","post","/v2/portal/public/contact/exists",[["origin","q",true]],1],["checkContactExistsV3","post","/v3/portal/public/contact/exists",[["portal_id","q"],["domain","q"]],1],["checkAccountExists","post","/v3/portal/public/account/exists",[["portal_id","q"],["domain","q"]],1],["getValidSecondaryAttributes","get","/v2/portal/contact/valid/secondary/attributes"],["getPortalUser","get","/v2/portal/user"],["updatePortalUser","patch","/v2/portal/user",null,1],["deletePortalUser","delete","/v2/portal/user"],["updatePortalUserEmail","put","/v2/portal/user/update/email",null,1],["changePortalUserPassword","put","/v2/portal/user/change/password",null,1],["resendConfirmationEmail","post","/v2/portal/user/resend/confirmation-email/{id}",[["id","p",true]]],["fetchPortalUsersByRelatedEntity","get","/v2/portal/users/by-related-entity",[["entity_id","q",true],["slug","q",true]]],["confirmUser","get","/v2/portal/user/confirm",[["confirmation_link_token","q",true],["use_redirect","q"]]],["confirmUserWithUserId","get","/v2/portal/user/confirm/{id}",[["origin","q",true],["id","p",true],["org_id","q",true]]],["userExists","get","/v2/portal/public/user/exists",[["email","q",true],["org_id","q",true],["origin","q"]]],["userExistsV3","get","/v3/portal/public/user/exists",[["email","q",true],["org_id","q"],["portal_id","q"],["domain","q"]]],["getRecipientsToNotifyOnAutomation","post","/v2/portal/recipients-to-notify",null,1],["configureDistribution","get","/v2/portal/configure-distribution",[["origin","q",true]]],["configureDistributionV3","get","/v3/portal/configure-distribution",[["portal_id","q",true]]],["getAllOrders","get","/v2/portal/order",[["from","q"],["size","q"]]],["postOrderAcceptance","post","/v2/portal/order/{id}/acceptance",[["id","p",true]],1],["getOrder","get","/v2/portal/order/{id}",[["id","p",true]]],["updateOrder","patch","/v2/portal/order/{id}",[["id","p",true]],1],["getAllOpportunities","get","/v2/portal/opportunity",[["from","q"],["size","q"]]],["getSearchableAttributesForOpportunities","get","/v2/portal/opportunities/searchable-attributes",[["from","q"],["size","q"]]],["getSearchResultsForOpportunities","post","/v2/portal/opportunities/search",[["from","q"],["size","q"]],1],["getOpportunity","get","/v2/portal/opportunities/{id}",[["id","p",true]]],["updateOpportunity","patch","/v2/portal/opportunities/{id}",[["id","p",true]],1],["getAllRequests","get","/v2/portal/request",[["from","q"],["size","q"]]],["getAllContracts","get","/v2/portal/contract",[["from","q"],["size","q"]]],["getContract","get","/v2/portal/contract/{id}",[["id","p",true]]],["updateContract","patch","/v2/portal/contract/{id}",[["id","p",true]],1],["getContractWithTemplates","post","/v2/portal/contract/{id}/resolve-templates",[["id","p",true]],1],["addContractByIdentifiers","post","/v2/portal/contract/by-identifiers",null,1],["getEntityIdentifiers","get","/v2/portal/entity/identifiers/{slug}",[["slug","p",true]]],["getEntityActivityFeed","get","/v2/portal/entity/{slug}/{id}/activity",[["slug","p",true],["id","p",true],["after","q"],["before","q"],["from","q"],["size","q"],["type","q"],["include_relations","q"]]],["validateCadenceEntityEditRules","get","/v2/portal/{slug}/{id}:validateRule",[["slug","p",true],["id","p",true],["attribute","q"]]],["searchPaymentRelationsInEntities","get","/v2/portal/entities-by-payment/{id}",[["id","p",true]]],["createCustomEntityActivity","put","/v2/portal/entity/activity",[["entities","q",false,"form"]],1],["saveEntityFile","post","/v2/portal/entity/file",null,1],["deleteEntityFile","delete","/v2/portal/entity/file",null,1],["savePortalFiles","post","/v2/portal/portal/files",null,1],["getRegistrationIdentifiers","get","/v2/portal/registration/identifiers"],["getAllFiles","get","/v2/portal/user/files",[["from","q",true],["size","q",true],["entity_ids","q"],["file_types","q"]]],["getFileById","get","/v2/portal/user/file/{id}",[["id","p",true]]],["getFilePreview","get","/v2/portal/user/file/{id}/preview",[["id","p",true]]],["trackFileDownloaded","post","/v2/portal/user/file/{id}/downloaded",[["id","p",true]]],["getFilesCountByEntity","get","/v2/portal/user/files/count-by-entity"],["getBillingEvents","get","/v2/portal/billing/events",[["from","q"],["size","q"],["entity_id","q"],["event_type","q"],["paid","q"],["date_after","q"],["date_before","q"],["sort","q"]]],["getCustomerBalance","get","/v2/portal/billing/customers/balance"],["getBillingAccount","get","/v2/portal/billing/accounts/{id}"],["loginToPortalAsUser","post","/v2/portal/admin:login-as-user",null,1],["triggerEntityAccessEvent","post","/v2/portal/entity/{schema}/access",[["schema","p",true],["entity_id","q"],["origin","q",true]]],["triggerEntityAccessEventV3","post","/v3/portal/entity/{schema}/access",[["schema","p",true],["entity_id","q"],["portal_id","q"],["domain","q"]]],["getPortalUserEntity","post","/v2/portal/entity:get",null,1],["searchPortalUserEntities","post","/v2/portal/entity:search",null,1],["createPortalUserEntity","post","/v2/portal/entity/{slug}",[["slug","p",true]],1],["patchPortalUserEntity","patch","/v2/portal/entity/{slug}/{id}",[["slug","p",true],["id","p",true]],1],["canTriggerPortalFlow","post","/v2/portal/can-trigger-portal-flow",[["origin","q"],["portal_id","q",true]],1],["getAutomationContext","get","/v2/portal/automation-context",[["activity_id","q",true],["type","q",true]]],["updateWorkflowStepAsDone","put","/v2/portal/workflow/{workflow_id}/{step_id}:markDone",[["workflow_id","p",true],["step_id","p",true]]],["getEntityWorkflows","get","/v2/portal/entity/{slug}/{id}/workflows",[["slug","p",true],["id","p",true]]],["getEntityPortalWorkflows","get","/v2/portal/entity/{slug}/{id}/workflows/linearized",[["slug","p",true],["id","p",true]]],["getEntityPortalWorkflowsBatch","post","/v2/portal/entities/workflows/linearized/batch",null,1],["uploadMeterReadingPhoto","post","/v2/portal/metering/reading/photo",null,1],["createMeterReading","post","/v2/portal/metering/reading",[["override_plausibility","q"]],1],["getAllowedMeterReadingRange","get","/v2/portal/metering/reading/allowed-range/{meter_id}",[["meter_id","p",true],["origin","q"],["timestamp","q"],["context_entities","q"]]],["getMeterReadings","post","/v2/portal/metering/readings",null,1],["getSSOProvider","get","/v2/portal/public/sso/providers/{provider_slug}",[["provider_slug","p",true],["org_id","q"],["origin","q"],["portal_id","q"],["domain","q"]]],["ssoLogin","post","/v2/portal/public/sso/login",[["origin","q",true],["org_id","q",true],["contact_id","q"]],1],["ssoLoginV3","post","/v3/portal/public/sso/login",[["portal_id","q"],["org_id","q"],["domain","q"],["contact_id","q"]],1],["ssoRedirect","post","/v2/portal/public/sso/redirect",[["web_uri","q",true]],1],["ssoCallback","post","/v2/portal/public/sso/callback",[["domain","q"]],1],["getPortalPage","get","/v2/portal/pages/{id}"],["updatePortalPage","put","/v2/portal/pages/{id}",null,1],["deletePortalPage","delete","/v2/portal/pages/{id}"],["getPortalPages","get","/v2/portal/pages",[["fields","q"],["filter","q"],["contract_id","q"],["context_entities","q"]]],["createPortalPage","post","/v2/portal/pages",null,1],["getPublicPages","get","/v2/portal/public/pages",[["domain","q",true],["fields","q"],["filter","q"]]],["interpolatePortalPages","post","/v2/portal/pages/interpolate",null,1],["getTriggeredJourney","get","/v2/portal/config/triggered-journeys/{trigger_name}",[["context_entities","q"]]],["getDefaultPages","get","/v2/portal/pages/default"],["createPortalPageBlock","post","/v2/portal/pages/{id}/blocks",null,1],["getPortalPageBlocks","get","/v2/portal/pages/{id}/blocks"],["getPortalPageBlock","get","/v2/portal/pages/{id}/blocks/{block_id}"],["updatePortalPageBlock","put","/v2/portal/pages/{id}/blocks/{block_id}",null,1],["deletePortalPageBlock","delete","/v2/portal/pages/{id}/blocks/{block_id}"],["getUserEntryPoint","get","/v2/portal/public/user/entry-point",[["email","q",true],["domain","q",true]]],["updateCampaignPortalBlockStatus","put","/v2/portal/campaign/{campaign_id}/entity:status",[["campaign_id","p",true]],1],["updateNotificationsStatus","put","/v2/portal/notifications/entity:status",null,1],["deRegisterMLoginUser","delete","/v2/portal/public/m-login/deregister/{client_id}/{user_id}",[["client_id","p",true],["user_id","p",true]]],["notifyMLoginInterestChange","post","/v2/portal/public/m-login/notify-interest-change/{client_id}/{user_id}",[["client_id","p",true],["user_id","p",true]],1],["createPortalConfig","post","/v3/portal/config",null,1],["getPortalConfigV3","get","/v3/portal/config/{portal_id}",[["portal_id","p",true]]],["putPortalConfig","put","/v3/portal/config/{portal_id}",[["portal_id","p",true],["page_upsert_mode","q"]],1],["deletePortalConfig","delete","/v3/portal/config/{portal_id}",[["portal_id","p",true]]],["listAllPortalConfigs","get","/v3/portal/configs"],["swapPortalConfig","post","/v3/portal/config/swap",null,1],["clonePortalConfig","post","/v3/portal/config/clone",null,1],["invitePartner","post","/v3/portal/partner/invite",null,1],["listBusinessPartners","get","/v3/portal/partner/list"],["resendPartnerInvitation","post","/v3/portal/partner/{partner_id}/resend-invitation",[["partner_id","p",true]]],["revokePartner","delete","/v3/portal/partner/{partner_id}/revoke",[["partner_id","p",true]]],["disablePartner","post","/v3/portal/partner/{partner_id}/disable",[["partner_id","p",true]]],["enablePartner","post","/v3/portal/partner/{partner_id}/enable",[["partner_id","p",true]]],["verifyDns","post","/v3/portal/verify-dns",[["portal_id","q",true]]],["portalProxyExecute","post","/v2/portal/proxy/execute",null,1],["getMobileConfig","get","/v1/portal/mobile-config",[["portal_id","q",true],["raw","q"]]],["putMobileConfig","put","/v1/portal/mobile-config",[["portal_id","q",true]],1]],"v":"3.0.3","pp":{"/v2/portal/billing/accounts/{id}":[["id","p",true]],"/v2/portal/pages/{id}":[["id","p",true]],"/v2/portal/pages":[["domain","q",true]],"/v2/portal/config/triggered-journeys/{trigger_name}":[["trigger_name","p",true]],"/v2/portal/pages/{id}/blocks":[["id","p",true]],"/v2/portal/pages/{id}/blocks/{block_id}":[["id","p",true],["block_id","p",true]]}}
1
+ {"s":"https://customer-portal-api.sls.epilot.io","o":[["upsertPortal","post","/v2/portal/portal",[["origin","q",true],["portal_id","q"]],1],["createUser","post","/v2/portal/public/user",[["origin","q",true]],1],["createUserV3","post","/v3/portal/public/user",[["portal_id","q"],["domain","q"]],1],["validateToken","post","/v2/portal/token/validate"],["revokeToken","post","/v2/portal/token/revoke",null,1],["getPortalConfigByDomain","get","/v2/portal/public/config",[["domain","q",true]]],["getPortalConfig","get","/v2/portal/config",[["origin","q"]]],["deletePortal","delete","/v2/portal/config",[["origin","q",true]]],["createExport","post","/v1/portal/exports",null,1],["getExport","get","/v1/portal/exports/{jobId}",[["jobId","p",true]]],["getPortalExtensions","get","/v2/portal/extensions",[["origin","q"]]],["getPublicPortalExtensionDetails","get","/v2/portal/public/extensions",[["org_id","q",true],["origin","q",true]]],["getPortalExtensionsV3","get","/v3/portal/extensions",[["portal_id","q",true]]],["getPublicPortalExtensionDetailsV3","get","/v3/portal/public/extensions",[["org_id","q"],["portal_id","q"],["domain","q"]]],["getConsumption","get","/v2/portal/consumption",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["prepareVisualizationExport","post","/v2/portal/visualization:export",null,1],["getVisualizationMetadata","get","/v2/portal/visualization/metadata",[["app_id","q",true],["extensionId","q",true],["context_entities","q"]]],["getCosts","get","/v2/portal/costs",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["getPrices","get","/v2/portal/prices",[["app_id","q"],["extensionId","q",true],["hookId","q"],["meter_id","q"],["from","q",true],["to","q",true],["interval","q",true],["context_entities","q"]]],["getExternalLinks","get","/v2/portal/external-links",[["origin","q"],["contactId","q"]]],["getResolvedExternalLink","get","/v2/portal/resolve:external-link/{id}",[["id","p",true],["origin","q"],["contactId","q"]]],["getExternalLinksV3","get","/v3/portal/external-links",[["portal_id","q"],["contactId","q"]]],["getResolvedExternalLinkV3","get","/v3/portal/resolve:external-link/{id}",[["id","p",true],["portal_id","q"],["contactId","q"]]],["getResolvedSeamlessLink","get","/v2/portal/resolve:seamless-link",[["app_id","q"],["extension_id","q",true],["link_id","q",true],["context_entities","q"]]],["getPublicPortalConfig","get","/v2/portal/public/portal/config",[["org_id","q",true],["origin","q",true]]],["getOrgPortalConfig","get","/v2/portal/org/portal/config",[["origin","q",true]]],["getPublicPortalConfigV3","get","/v3/portal/public/portal/config",[["org_id","q",true],["portal_id","q",true]]],["getOrgPortalConfigV3","get","/v3/portal/org/portal/config",[["portal_id","q",true]]],["getAllPortalConfigs","get","/v2/portal/configs"],["upsertEmailTemplates","post","/v2/portal/email-templates",[["origin","q",true]],1],["getEmailTemplates","get","/v2/portal/email-templates",[["origin","q",true]]],["migrateEmailTemplateReferences","post","/v3/portal/email-templates:migrate-references",null,1],["listEmailTemplateReferences","post","/v3/portal/email-templates:list-references",null,1],["upsertEmailTemplatesByPortalId","post","/v3/portal/email-templates/{portal_id}",[["portal_id","p",true]],1],["getEmailTemplatesByPortalId","get","/v3/portal/email-templates/{portal_id}",[["portal_id","p",true]]],["getPublicPortalWidgets","get","/v2/portal/public-widgets",[["org_id","q",true],["origin","q",true]]],["getPublicPortalWidgetsV3","get","/v3/portal/public/widgets",[["org_id","q"],["portal_id","q"],["domain","q"]]],["upsertPortalWidget","post","/v2/portal/widgets",[["origin","q",true]],1],["getPortalWidgets","get","/v2/portal/widgets",[["origin","q"],["contract_id","q"]]],["getPortalWidgetsV3","get","/v3/portal/widgets",[["portal_id","q",true],["contract_id","q"]]],["upsertPortalWidgetV3","post","/v3/portal/widgets",[["portal_id","q",true]],1],["savePortalFilesV3","post","/v3/portal/portal/files",[["portal_id","q",true]],1],["replaceECPTemplateVariables","post","/v2/portal/replace-ecp-template-variables",null,1],["getOrganizationSettings","get","/v2/portal/org/settings"],["getSchemas","get","/v2/portal/schemas"],["getSchemasByDomain","get","/v2/portal/public/schemas",[["domain","q",true]]],["getPublicSchemasV3","get","/v3/portal/public/schemas",[["org_id","q"],["portal_id","q"],["domain","q"]]],["getOrganizationSettingsByDomain","get","/v2/portal/public/org/settings",[["domain","q",true]]],["extraPermissionAttributes","get","/v2/portal/extra-permission-attributes"],["validateCaaRecords","post","/v2/portal/validate/caa-records",[["origin","q",true]]],["validateCaaRecordsV3","post","/v3/portal/validate/caa-records",[["portal_id","q",true]]],["getContact","get","/v2/portal/contact"],["updateContact","patch","/v2/portal/contact",null,1],["getECPContact","get","/v2/portal/ecp/contact",[["id","q",true]]],["checkContactExists","post","/v2/portal/public/contact/exists",[["origin","q",true]],1],["checkContactExistsV3","post","/v3/portal/public/contact/exists",[["portal_id","q"],["domain","q"]],1],["checkAccountExists","post","/v3/portal/public/account/exists",[["portal_id","q"],["domain","q"]],1],["getValidSecondaryAttributes","get","/v2/portal/contact/valid/secondary/attributes"],["getPortalUser","get","/v2/portal/user"],["updatePortalUser","patch","/v2/portal/user",null,1],["deletePortalUser","delete","/v2/portal/user"],["updatePortalUserEmail","put","/v2/portal/user/update/email",null,1],["changePortalUserPassword","put","/v2/portal/user/change/password",null,1],["resendConfirmationEmail","post","/v2/portal/user/resend/confirmation-email/{id}",[["id","p",true]]],["fetchPortalUsersByRelatedEntity","get","/v2/portal/users/by-related-entity",[["entity_id","q",true],["slug","q",true]]],["confirmUser","get","/v2/portal/user/confirm",[["confirmation_link_token","q",true],["use_redirect","q"]]],["confirmUserWithUserId","get","/v2/portal/user/confirm/{id}",[["origin","q",true],["id","p",true],["org_id","q",true]]],["userExists","get","/v2/portal/public/user/exists",[["email","q",true],["org_id","q",true],["origin","q"]]],["userExistsV3","get","/v3/portal/public/user/exists",[["email","q",true],["org_id","q"],["portal_id","q"],["domain","q"]]],["getRecipientsToNotifyOnAutomation","post","/v2/portal/recipients-to-notify",null,1],["configureDistribution","get","/v2/portal/configure-distribution",[["origin","q",true]]],["configureDistributionV3","get","/v3/portal/configure-distribution",[["portal_id","q",true]]],["getAllOrders","get","/v2/portal/order",[["from","q"],["size","q"]]],["postOrderAcceptance","post","/v2/portal/order/{id}/acceptance",[["id","p",true]],1],["getOrder","get","/v2/portal/order/{id}",[["id","p",true]]],["updateOrder","patch","/v2/portal/order/{id}",[["id","p",true]],1],["getAllOpportunities","get","/v2/portal/opportunity",[["from","q"],["size","q"]]],["getSearchableAttributesForOpportunities","get","/v2/portal/opportunities/searchable-attributes",[["from","q"],["size","q"]]],["getSearchResultsForOpportunities","post","/v2/portal/opportunities/search",[["from","q"],["size","q"]],1],["getOpportunity","get","/v2/portal/opportunities/{id}",[["id","p",true]]],["updateOpportunity","patch","/v2/portal/opportunities/{id}",[["id","p",true]],1],["getAllRequests","get","/v2/portal/request",[["from","q"],["size","q"]]],["getAllContracts","get","/v2/portal/contract",[["from","q"],["size","q"]]],["getContract","get","/v2/portal/contract/{id}",[["id","p",true]]],["updateContract","patch","/v2/portal/contract/{id}",[["id","p",true]],1],["getContractWithTemplates","post","/v2/portal/contract/{id}/resolve-templates",[["id","p",true]],1],["addContractByIdentifiers","post","/v2/portal/contract/by-identifiers",null,1],["getEntityIdentifiers","get","/v2/portal/entity/identifiers/{slug}",[["slug","p",true]]],["getEntityActivityFeed","get","/v2/portal/entity/{slug}/{id}/activity",[["slug","p",true],["id","p",true],["after","q"],["before","q"],["from","q"],["size","q"],["type","q"],["include_relations","q"]]],["validateCadenceEntityEditRules","get","/v2/portal/{slug}/{id}:validateRule",[["slug","p",true],["id","p",true],["attribute","q"]]],["searchPaymentRelationsInEntities","get","/v2/portal/entities-by-payment/{id}",[["id","p",true]]],["createCustomEntityActivity","put","/v2/portal/entity/activity",[["entities","q",false,"form"]],1],["saveEntityFile","post","/v2/portal/entity/file",null,1],["deleteEntityFile","delete","/v2/portal/entity/file",null,1],["savePortalFiles","post","/v2/portal/portal/files",null,1],["getRegistrationIdentifiers","get","/v2/portal/registration/identifiers"],["getAllFiles","get","/v2/portal/user/files",[["from","q",true],["size","q",true],["entity_ids","q"],["file_types","q"]]],["getFileById","get","/v2/portal/user/file/{id}",[["id","p",true]]],["getFilePreview","get","/v2/portal/user/file/{id}/preview",[["id","p",true]]],["trackFileDownloaded","post","/v2/portal/user/file/{id}/downloaded",[["id","p",true]]],["getFilesCountByEntity","get","/v2/portal/user/files/count-by-entity"],["getBillingEvents","get","/v2/portal/billing/events",[["from","q"],["size","q"],["entity_id","q"],["event_type","q"],["paid","q"],["date_after","q"],["date_before","q"],["sort","q"]]],["getCustomerBalance","get","/v2/portal/billing/customers/balance"],["getBillingAccount","get","/v2/portal/billing/accounts/{id}"],["loginToPortalAsUser","post","/v2/portal/admin:login-as-user",null,1],["triggerEntityAccessEvent","post","/v2/portal/entity/{schema}/access",[["schema","p",true],["entity_id","q"],["origin","q",true]]],["triggerEntityAccessEventV3","post","/v3/portal/entity/{schema}/access",[["schema","p",true],["entity_id","q"],["portal_id","q"],["domain","q"]]],["getPortalUserEntity","post","/v2/portal/entity:get",null,1],["searchPortalUserEntities","post","/v2/portal/entity:search",null,1],["createPortalUserEntity","post","/v2/portal/entity/{slug}",[["slug","p",true]],1],["patchPortalUserEntity","patch","/v2/portal/entity/{slug}/{id}",[["slug","p",true],["id","p",true]],1],["canTriggerPortalFlow","post","/v2/portal/can-trigger-portal-flow",[["origin","q"],["portal_id","q",true]],1],["getAutomationContext","get","/v2/portal/automation-context",[["activity_id","q",true],["type","q",true]]],["updateWorkflowStepAsDone","put","/v2/portal/workflow/{workflow_id}/{step_id}:markDone",[["workflow_id","p",true],["step_id","p",true]]],["getEntityWorkflows","get","/v2/portal/entity/{slug}/{id}/workflows",[["slug","p",true],["id","p",true]]],["getOutstandingTasks","get","/v2/portal/engagement/tasks"],["getEntityPortalWorkflows","get","/v2/portal/entity/{slug}/{id}/workflows/linearized",[["slug","p",true],["id","p",true]]],["getEntityPortalWorkflowsBatch","post","/v2/portal/entities/workflows/linearized/batch",null,1],["uploadMeterReadingPhoto","post","/v2/portal/metering/reading/photo",null,1],["createMeterReading","post","/v2/portal/metering/reading",[["override_plausibility","q"]],1],["getAllowedMeterReadingRange","get","/v2/portal/metering/reading/allowed-range/{meter_id}",[["meter_id","p",true],["origin","q"],["timestamp","q"],["context_entities","q"]]],["getMeterReadings","post","/v2/portal/metering/readings",null,1],["getSSOProvider","get","/v2/portal/public/sso/providers/{provider_slug}",[["provider_slug","p",true],["org_id","q"],["origin","q"],["portal_id","q"],["domain","q"]]],["ssoLogin","post","/v2/portal/public/sso/login",[["origin","q",true],["org_id","q",true],["contact_id","q"]],1],["ssoLoginV3","post","/v3/portal/public/sso/login",[["portal_id","q"],["org_id","q"],["domain","q"],["contact_id","q"]],1],["ssoRedirect","post","/v2/portal/public/sso/redirect",[["web_uri","q",true]],1],["ssoCallback","post","/v2/portal/public/sso/callback",[["domain","q"]],1],["getPortalPage","get","/v2/portal/pages/{id}"],["updatePortalPage","put","/v2/portal/pages/{id}",null,1],["deletePortalPage","delete","/v2/portal/pages/{id}"],["getPortalPages","get","/v2/portal/pages",[["fields","q"],["filter","q"],["contract_id","q"],["context_entities","q"]]],["createPortalPage","post","/v2/portal/pages",null,1],["getPublicPages","get","/v2/portal/public/pages",[["domain","q",true],["fields","q"],["filter","q"]]],["interpolatePortalPages","post","/v2/portal/pages/interpolate",null,1],["getTriggeredJourney","get","/v2/portal/config/triggered-journeys/{trigger_name}",[["context_entities","q"]]],["getDefaultPages","get","/v2/portal/pages/default"],["createPortalPageBlock","post","/v2/portal/pages/{id}/blocks",null,1],["getPortalPageBlocks","get","/v2/portal/pages/{id}/blocks"],["getPortalPageBlock","get","/v2/portal/pages/{id}/blocks/{block_id}"],["updatePortalPageBlock","put","/v2/portal/pages/{id}/blocks/{block_id}",null,1],["deletePortalPageBlock","delete","/v2/portal/pages/{id}/blocks/{block_id}"],["getUserEntryPoint","get","/v2/portal/public/user/entry-point",[["email","q",true],["domain","q",true]]],["updateCampaignPortalBlockStatus","put","/v2/portal/campaign/{campaign_id}/entity:status",[["campaign_id","p",true]],1],["listPortalNotifications","get","/v2/portal/notifications",[["cursor","q"],["limit","q"]]],["getPortalNotificationsUnreadCount","get","/v2/portal/notifications/unread-count"],["markAllPortalNotificationsRead","put","/v2/portal/notifications/read-all"],["markPortalNotificationRead","put","/v2/portal/notifications/{id}/read",[["id","p",true]]],["updateNotificationsStatus","put","/v2/portal/notifications/entity:status",null,1],["deRegisterMLoginUser","delete","/v2/portal/public/m-login/deregister/{client_id}/{user_id}",[["client_id","p",true],["user_id","p",true]]],["notifyMLoginInterestChange","post","/v2/portal/public/m-login/notify-interest-change/{client_id}/{user_id}",[["client_id","p",true],["user_id","p",true]],1],["createPortalConfig","post","/v3/portal/config",null,1],["getPortalConfigV3","get","/v3/portal/config/{portal_id}",[["portal_id","p",true]]],["putPortalConfig","put","/v3/portal/config/{portal_id}",[["portal_id","p",true],["page_upsert_mode","q"]],1],["deletePortalConfig","delete","/v3/portal/config/{portal_id}",[["portal_id","p",true]]],["listAllPortalConfigs","get","/v3/portal/configs"],["swapPortalConfig","post","/v3/portal/config/swap",null,1],["clonePortalConfig","post","/v3/portal/config/clone",null,1],["invitePartner","post","/v3/portal/partner/invite",null,1],["listBusinessPartners","get","/v3/portal/partner/list"],["resendPartnerInvitation","post","/v3/portal/partner/{partner_id}/resend-invitation",[["partner_id","p",true]]],["revokePartner","delete","/v3/portal/partner/{partner_id}/revoke",[["partner_id","p",true]]],["disablePartner","post","/v3/portal/partner/{partner_id}/disable",[["partner_id","p",true]]],["enablePartner","post","/v3/portal/partner/{partner_id}/enable",[["partner_id","p",true]]],["verifyDns","post","/v3/portal/verify-dns",[["portal_id","q",true]]],["portalProxyExecute","post","/v2/portal/proxy/execute",null,1],["getMobileConfig","get","/v1/portal/mobile-config",[["portal_id","q",true],["raw","q"]]],["putMobileConfig","put","/v1/portal/mobile-config",[["portal_id","q",true]],1]],"v":"3.0.3","pp":{"/v2/portal/billing/accounts/{id}":[["id","p",true]],"/v2/portal/pages/{id}":[["id","p",true]],"/v2/portal/pages":[["domain","q",true]],"/v2/portal/config/triggered-journeys/{trigger_name}":[["trigger_name","p",true]],"/v2/portal/pages/{id}/blocks":[["id","p",true]],"/v2/portal/pages/{id}/blocks/{block_id}":[["id","p",true],["block_id","p",true]]}}
@@ -1008,6 +1008,17 @@
1008
1008
  "type": "string",
1009
1009
  "description": "Optional unit of the consumption value. Defaults to unit present on the relevant Meter Counter.",
1010
1010
  "example": "kWh"
1011
+ },
1012
+ "label": {
1013
+ "type": "object",
1014
+ "additionalProperties": {
1015
+ "type": "string"
1016
+ },
1017
+ "description": "Optional localized label for this individual value, keyed by ISO 3166-1 alpha-2 language code (same shape as `VisualizationTypeOption.label`). When present, the portal renders it as the data point label instead of the default timestamp-derived label (e.g. to name billing periods or tariff windows).\n",
1018
+ "example": {
1019
+ "en": "Billing period 1",
1020
+ "de": "Abrechnungszeitraum 1"
1021
+ }
1011
1022
  }
1012
1023
  },
1013
1024
  "required": [
@@ -7213,8 +7224,8 @@
7213
7224
  "in": "query",
7214
7225
  "schema": {
7215
7226
  "type": "string",
7216
- "description": "Key to sort by",
7217
- "example": "due_date:asc"
7227
+ "description": "Key to sort by. Pass a comma-separated list to apply additional keys as tiebreakers, in order of precedence.",
7228
+ "example": "paid_date:desc,booking_date:desc"
7218
7229
  }
7219
7230
  }
7220
7231
  ],
@@ -8031,6 +8042,58 @@
8031
8042
  }
8032
8043
  }
8033
8044
  },
8045
+ "/v2/portal/engagement/tasks": {
8046
+ "get": {
8047
+ "operationId": "getOutstandingTasks",
8048
+ "summary": "Get outstanding workflow tasks for the portal user",
8049
+ "description": "Returns all outstanding workflow journey tasks for the authenticated portal user, across their opportunity, order and contract entities. Each task is an active workflow step that exposes a journey the customer still needs to fill out.",
8050
+ "tags": [
8051
+ "ECP"
8052
+ ],
8053
+ "security": [
8054
+ {
8055
+ "PortalAuth": []
8056
+ }
8057
+ ],
8058
+ "responses": {
8059
+ "200": {
8060
+ "description": "List of outstanding workflow tasks for the portal user",
8061
+ "content": {
8062
+ "application/json": {
8063
+ "schema": {
8064
+ "type": "object",
8065
+ "required": [
8066
+ "tasks",
8067
+ "total"
8068
+ ],
8069
+ "properties": {
8070
+ "tasks": {
8071
+ "type": "array",
8072
+ "items": {
8073
+ "$ref": "#/components/schemas/OutstandingTask"
8074
+ }
8075
+ },
8076
+ "total": {
8077
+ "type": "integer",
8078
+ "example": 0
8079
+ }
8080
+ }
8081
+ }
8082
+ }
8083
+ }
8084
+ },
8085
+ "401": {
8086
+ "$ref": "#/components/responses/Unauthorized"
8087
+ },
8088
+ "403": {
8089
+ "$ref": "#/components/responses/Forbidden"
8090
+ },
8091
+ "500": {
8092
+ "$ref": "#/components/responses/InternalServerError"
8093
+ }
8094
+ }
8095
+ }
8096
+ },
8034
8097
  "/v2/portal/entity/{slug}/{id}/workflows/linearized": {
8035
8098
  "get": {
8036
8099
  "operationId": "getEntityPortalWorkflows",
@@ -9881,6 +9944,192 @@
9881
9944
  }
9882
9945
  }
9883
9946
  },
9947
+ "/v2/portal/notifications": {
9948
+ "get": {
9949
+ "operationId": "listPortalNotifications",
9950
+ "summary": "listPortalNotifications",
9951
+ "description": "Lists the 360 notifications addressed to the authenticated portal user, newest first. The organization and the portal user are derived from the authenticated session, so a user can only ever read their own notifications.",
9952
+ "tags": [
9953
+ "ECP"
9954
+ ],
9955
+ "security": [
9956
+ {
9957
+ "PortalAuth": []
9958
+ }
9959
+ ],
9960
+ "parameters": [
9961
+ {
9962
+ "in": "query",
9963
+ "name": "cursor",
9964
+ "required": false,
9965
+ "schema": {
9966
+ "type": "string"
9967
+ },
9968
+ "description": "Base64 encoded cursor returned by a previous call, used for pagination."
9969
+ },
9970
+ {
9971
+ "in": "query",
9972
+ "name": "limit",
9973
+ "required": false,
9974
+ "schema": {
9975
+ "type": "integer"
9976
+ },
9977
+ "description": "The maximum number of notifications to return."
9978
+ }
9979
+ ],
9980
+ "responses": {
9981
+ "200": {
9982
+ "description": "List of notifications for the authenticated portal user.",
9983
+ "content": {
9984
+ "application/json": {
9985
+ "schema": {
9986
+ "type": "object",
9987
+ "properties": {
9988
+ "cursor": {
9989
+ "type": "string",
9990
+ "description": "Base64 encoded cursor to fetch the next page. Absent when there are no more results."
9991
+ },
9992
+ "total_unread": {
9993
+ "type": "integer",
9994
+ "description": "Total number of unread notifications for the user."
9995
+ },
9996
+ "results": {
9997
+ "type": "array",
9998
+ "items": {
9999
+ "$ref": "#/components/schemas/PortalNotification"
10000
+ }
10001
+ }
10002
+ }
10003
+ }
10004
+ }
10005
+ }
10006
+ },
10007
+ "401": {
10008
+ "$ref": "#/components/responses/Unauthorized"
10009
+ },
10010
+ "403": {
10011
+ "$ref": "#/components/responses/Forbidden"
10012
+ },
10013
+ "500": {
10014
+ "$ref": "#/components/responses/InternalServerError"
10015
+ }
10016
+ }
10017
+ }
10018
+ },
10019
+ "/v2/portal/notifications/unread-count": {
10020
+ "get": {
10021
+ "operationId": "getPortalNotificationsUnreadCount",
10022
+ "summary": "getPortalNotificationsUnreadCount",
10023
+ "description": "Returns the number of unread notifications for the authenticated portal user.",
10024
+ "tags": [
10025
+ "ECP"
10026
+ ],
10027
+ "security": [
10028
+ {
10029
+ "PortalAuth": []
10030
+ }
10031
+ ],
10032
+ "responses": {
10033
+ "200": {
10034
+ "description": "Unread notification count.",
10035
+ "content": {
10036
+ "application/json": {
10037
+ "schema": {
10038
+ "type": "object",
10039
+ "properties": {
10040
+ "count": {
10041
+ "type": "integer",
10042
+ "example": 3
10043
+ }
10044
+ }
10045
+ }
10046
+ }
10047
+ }
10048
+ },
10049
+ "401": {
10050
+ "$ref": "#/components/responses/Unauthorized"
10051
+ },
10052
+ "403": {
10053
+ "$ref": "#/components/responses/Forbidden"
10054
+ },
10055
+ "500": {
10056
+ "$ref": "#/components/responses/InternalServerError"
10057
+ }
10058
+ }
10059
+ }
10060
+ },
10061
+ "/v2/portal/notifications/read-all": {
10062
+ "put": {
10063
+ "operationId": "markAllPortalNotificationsRead",
10064
+ "summary": "markAllPortalNotificationsRead",
10065
+ "description": "Marks all notifications of the authenticated portal user as read.",
10066
+ "tags": [
10067
+ "ECP"
10068
+ ],
10069
+ "security": [
10070
+ {
10071
+ "PortalAuth": []
10072
+ }
10073
+ ],
10074
+ "responses": {
10075
+ "204": {
10076
+ "description": "All notifications marked as read."
10077
+ },
10078
+ "401": {
10079
+ "$ref": "#/components/responses/Unauthorized"
10080
+ },
10081
+ "403": {
10082
+ "$ref": "#/components/responses/Forbidden"
10083
+ },
10084
+ "500": {
10085
+ "$ref": "#/components/responses/InternalServerError"
10086
+ }
10087
+ }
10088
+ }
10089
+ },
10090
+ "/v2/portal/notifications/{id}/read": {
10091
+ "put": {
10092
+ "operationId": "markPortalNotificationRead",
10093
+ "summary": "markPortalNotificationRead",
10094
+ "description": "Marks a single notification of the authenticated portal user as read.",
10095
+ "tags": [
10096
+ "ECP"
10097
+ ],
10098
+ "security": [
10099
+ {
10100
+ "PortalAuth": []
10101
+ }
10102
+ ],
10103
+ "parameters": [
10104
+ {
10105
+ "in": "path",
10106
+ "name": "id",
10107
+ "required": true,
10108
+ "schema": {
10109
+ "type": "integer"
10110
+ },
10111
+ "description": "Numeric id of the notification to mark as read."
10112
+ }
10113
+ ],
10114
+ "responses": {
10115
+ "204": {
10116
+ "description": "Notification marked as read."
10117
+ },
10118
+ "400": {
10119
+ "$ref": "#/components/responses/InvalidRequest"
10120
+ },
10121
+ "401": {
10122
+ "$ref": "#/components/responses/Unauthorized"
10123
+ },
10124
+ "403": {
10125
+ "$ref": "#/components/responses/Forbidden"
10126
+ },
10127
+ "500": {
10128
+ "$ref": "#/components/responses/InternalServerError"
10129
+ }
10130
+ }
10131
+ }
10132
+ },
9884
10133
  "/v2/portal/notifications/entity:status": {
9885
10134
  "put": {
9886
10135
  "operationId": "updateNotificationsStatus",
@@ -10547,13 +10796,6 @@
10547
10796
  "type": "string",
10548
10797
  "description": "Email address of the partner to invite"
10549
10798
  },
10550
- "represents_contact_list": {
10551
- "type": "array",
10552
- "items": {
10553
- "$ref": "#/components/schemas/EntityId",
10554
- "description": "List of contact IDs representing the contacts / business partners the invited user should be added to.\nWhen omitted, the user is automatically added to all contacts / business partners linked to the account.\n"
10555
- }
10556
- },
10557
10799
  "contact_data": {
10558
10800
  "type": "object",
10559
10801
  "description": "Additional contact entity fields to set when creating the contact for the invited user.\nThese are mapped directly to contact entity attributes (e.g. first_name, last_name, phone).\nValues can be strings or arrays of strings (for multiselect attributes).\n",
@@ -11404,6 +11646,69 @@
11404
11646
  }
11405
11647
  },
11406
11648
  "schemas": {
11649
+ "PortalNotification": {
11650
+ "type": "object",
11651
+ "description": "A 360 notification addressed to a portal user.",
11652
+ "required": [
11653
+ "id",
11654
+ "read"
11655
+ ],
11656
+ "properties": {
11657
+ "id": {
11658
+ "type": "string",
11659
+ "description": "Stable string identifier of the notification (the numeric notification id as a string).",
11660
+ "example": "1234567890"
11661
+ },
11662
+ "notification_id": {
11663
+ "type": "number",
11664
+ "description": "Numeric id of the notification, used to mark it as read.",
11665
+ "example": 1234567890
11666
+ },
11667
+ "type": {
11668
+ "type": "string",
11669
+ "description": "Type of notification.",
11670
+ "example": "workflow_step_overdue"
11671
+ },
11672
+ "title": {
11673
+ "type": "object",
11674
+ "description": "Localized, already-rendered notification title.",
11675
+ "properties": {
11676
+ "en": {
11677
+ "type": "string"
11678
+ },
11679
+ "de": {
11680
+ "type": "string"
11681
+ }
11682
+ }
11683
+ },
11684
+ "message": {
11685
+ "type": "object",
11686
+ "description": "Localized, already-rendered notification message.",
11687
+ "properties": {
11688
+ "en": {
11689
+ "type": "string"
11690
+ },
11691
+ "de": {
11692
+ "type": "string"
11693
+ }
11694
+ }
11695
+ },
11696
+ "created_at": {
11697
+ "type": "string",
11698
+ "format": "date-time",
11699
+ "description": "When the notification was created."
11700
+ },
11701
+ "read": {
11702
+ "type": "boolean",
11703
+ "description": "Whether the notification has been read by the user.",
11704
+ "example": false
11705
+ },
11706
+ "redirect_url": {
11707
+ "type": "string",
11708
+ "description": "Optional URL the notification points to."
11709
+ }
11710
+ }
11711
+ },
11407
11712
  "MobileBuildStatus": {
11408
11713
  "type": "object",
11409
11714
  "description": "Latest build/upload status for a platform (system-written).",
@@ -12719,6 +13024,45 @@
12719
13024
  "additionalProperties": {
12720
13025
  "$ref": "#/components/schemas/Block"
12721
13026
  }
13027
+ },
13028
+ "notification_triggers": {
13029
+ "type": "array",
13030
+ "description": "Configures which 360 events generate an in-app notification for the portal user. Each enabled trigger renders the referenced notification template and creates a notification addressed to the portal user. Admin/builder-only — never exposed via the public portal config.",
13031
+ "items": {
13032
+ "$ref": "#/components/schemas/NotificationTriggerConfig"
13033
+ }
13034
+ }
13035
+ }
13036
+ },
13037
+ "NotificationTriggerConfig": {
13038
+ "type": "object",
13039
+ "required": [
13040
+ "trigger_type"
13041
+ ],
13042
+ "properties": {
13043
+ "trigger_type": {
13044
+ "type": "string",
13045
+ "description": "The 360 event that fires this notification trigger.",
13046
+ "enum": [
13047
+ "entity_created",
13048
+ "entity_assigned",
13049
+ "workflow_step_overdue"
13050
+ ]
13051
+ },
13052
+ "entity_schema": {
13053
+ "type": "string",
13054
+ "description": "For `entity_created` / `entity_assigned` triggers, the entity schema slug (e.g. `opportunity`, `order`) whose creation or assignment fires this trigger. Ignored for other trigger types.",
13055
+ "example": "opportunity"
13056
+ },
13057
+ "enabled": {
13058
+ "type": "boolean",
13059
+ "description": "Whether this trigger is active.",
13060
+ "default": true
13061
+ },
13062
+ "template_id": {
13063
+ "type": "string",
13064
+ "format": "uuid",
13065
+ "description": "Entity id of the notification_template to render for this trigger."
12722
13066
  }
12723
13067
  }
12724
13068
  },
@@ -14509,6 +14853,14 @@
14509
14853
  "is_new": {
14510
14854
  "type": "boolean",
14511
14855
  "description": "Indicate whether the user has not seen/downloaded the file before"
14856
+ },
14857
+ "custom_download_url_auth": {
14858
+ "type": "string",
14859
+ "enum": [
14860
+ "token",
14861
+ "presigned"
14862
+ ],
14863
+ "description": "Authorization mode of an externally hosted file's download url. `presigned` (the default) means `public_url` is HMAC-signed and needs no auth header; `token` means it authorizes the caller's bearer token instead and must be fetched with an `Authorization` header. Because `presigned` is the default, the absence of this property does NOT prove the file is stored in epilot — an external file may omit it."
14512
14864
  }
14513
14865
  }
14514
14866
  }
@@ -14534,6 +14886,10 @@
14534
14886
  "format": "uri",
14535
14887
  "description": "A Content-Disposition: inline URL to render in a preview viewer. Present only when kind is \"pdf\" or \"image\". Short-lived — do not cache across dialog opens."
14536
14888
  },
14889
+ "requires_auth": {
14890
+ "type": "boolean",
14891
+ "description": "When true, `url` only answers to the portal user's bearer token: fetch the bytes with an `Authorization: Bearer <token>` header and render them from an object URL. Only ever set for URLs on an allow-listed ERP file-proxy host."
14892
+ },
14537
14893
  "download_url": {
14538
14894
  "type": "string",
14539
14895
  "format": "uri",
@@ -14786,6 +15142,57 @@
14786
15142
  "link"
14787
15143
  ]
14788
15144
  },
15145
+ "OutstandingTask": {
15146
+ "type": "object",
15147
+ "required": [
15148
+ "entity_id",
15149
+ "entity_schema",
15150
+ "entity_title",
15151
+ "workflow_id",
15152
+ "workflow_name",
15153
+ "step_id",
15154
+ "step_name",
15155
+ "journey_id"
15156
+ ],
15157
+ "properties": {
15158
+ "entity_id": {
15159
+ "type": "string",
15160
+ "description": "ID of the entity the task belongs to"
15161
+ },
15162
+ "entity_schema": {
15163
+ "type": "string",
15164
+ "description": "Schema slug of the entity (opportunity, order or contract)"
15165
+ },
15166
+ "entity_title": {
15167
+ "type": "string",
15168
+ "description": "Title (_title) of the entity"
15169
+ },
15170
+ "workflow_id": {
15171
+ "type": "string",
15172
+ "description": "Workflow execution id"
15173
+ },
15174
+ "workflow_name": {
15175
+ "type": "string",
15176
+ "description": "Workflow execution / template name"
15177
+ },
15178
+ "step_id": {
15179
+ "type": "string",
15180
+ "description": "Task (step) id within the workflow execution"
15181
+ },
15182
+ "step_name": {
15183
+ "type": "string",
15184
+ "description": "Task (step) name"
15185
+ },
15186
+ "journey_id": {
15187
+ "type": "string",
15188
+ "description": "Journey id the customer needs to fill out"
15189
+ },
15190
+ "complete_task_automatically": {
15191
+ "type": "boolean",
15192
+ "description": "Whether submitting the journey from the portal should auto-complete the task. When false, an internal user completes it."
15193
+ }
15194
+ }
15195
+ },
14789
15196
  "WorkflowExecution": {
14790
15197
  "type": "object",
14791
15198
  "properties": {},
@@ -18237,7 +18644,8 @@
18237
18644
  },
18238
18645
  "token_endpoint": {
18239
18646
  "type": "string",
18240
- "description": "URL of the authorization endpoint",
18647
+ "deprecated": true,
18648
+ "description": "Deprecated and ignored; the token endpoint is derived server-side from the provider config.",
18241
18649
  "example": "https://www.facebook.com/v12.0/dialog/oauth"
18242
18650
  },
18243
18651
  "grant_type": {