Skip to main content
Documentation
StartOverviewArchitectureAuthenticationSend your first message
TypeScript SDKOverviewTrusted app serverApp-user clientsRealtimeErrors & webhooks
Flutter SDKOverviewInstallationAuthenticationChannels & messagesOffline & syncRealtimeUI componentsPush & lifecycle
ConceptsTenancy & scopeChannels & messagesDelivery & reconciliationSecurity checklist
ProtocolsRealtimeSigned webhooks
ReferenceREST APIErrors, limits & retriesDeploy docs to Coolify
VV ChatDocs API v1
Recommended starting points
Build chat without rebuilding infrastructureV Chat is a multi-tenant messaging backend with typed server, web, and Flutter integration paths.StartArchitecture at a glanceUnderstand the control plane, data plane, realtime path, and SDK boundaries before integrating.StartAuthentication and credentialsSelect the correct credential for dashboard, trusted-server, app-user, realtime, and webhook flows.StartSend your first messageUse the trusted TypeScript server client to create the minimum safe messaging flow.StartTypeScript SDK overviewChoose the correct typed client for trusted servers, app users, dashboard sessions, realtime, and webhooks.TypeScript SDKTrusted app-server clientUse AppServerClient from a protected backend to manage data-plane resources and mint app-user tokens.TypeScript SDKApp-user clientsBuild browser or Node app-user flows with VChatClient or the lower-level AppUserClient.TypeScript SDK
↑↓ Navigate↵ Openesc Close
API reference
StartOverviewArchitectureAuthenticationSend your first message
TypeScript SDKOverviewTrusted app serverApp-user clientsRealtimeErrors & webhooks
Flutter SDKOverviewInstallationAuthenticationChannels & messagesOffline & syncRealtimeUI componentsPush & lifecycle
ConceptsTenancy & scopeChannels & messagesDelivery & reconciliationSecurity checklist
ProtocolsRealtimeSigned webhooks
ReferenceREST APIErrors, limits & retriesDeploy docs to Coolify
Contract sourceOpenAPI JSON
Docs/API/Dashboard identity provider integration
POST/v1/integrations/oidc/dashboard-events

Receive a signed dashboard identity-provider lifecycle event

operationIdreceiveDashboardIdentityProviderEvent

Authentication

Public operation

The OpenAPI operation declares no credential requirement.

Request

No path, query, or header parameters are declared on this operation.

Request body Required

Request body.

application/x-www-form-urlencoded
{
  "$ref": "#/components/schemas/DashboardProviderEventRequestDto",
  "properties": {
    "logout_token": {
      "description": "Signed OIDC Back-Channel Logout token issued by Auth0.",
      "maxLength": 65536,
      "type": "string"
    }
  },
  "required": [
    "logout_token"
  ],
  "type": "object"
}

cURL template

Replace path placeholders, the credential, and request body with values valid for your exact scope.

cURL
curl --request POST \
+  --url 'https://api.example.com/v1/integrations/oidc/dashboard-events' \
+  -H 'Content-Type: application/json' \
+  --data '<request-body>'

Responses

204
No response body
400
application/json
Response schema
{
  "$ref": "#/components/schemas/PublicErrorResponseDto",
  "properties": {
    "error": {
      "$ref": "#/components/schemas/PublicErrorBodyDto",
      "properties": {
        "code": {
          "enum": [
            "validation_failed",
            "authentication_failed",
            "authentication_required",
            "reauthentication_required",
            "permission_denied",
            "resource_not_found",
            "idempotency_conflict",
            "target_account_unavailable",
            "organization_owner_removal_conflict",
            "organization_owner_role_conflict",
            "organization_role_conflict",
            "membership_conflict",
            "invitation_conflict",
            "invitation_expired",
            "application_name_conflict",
            "application_settings_version_conflict",
            "environment_settings_version_conflict",
            "app_user_version_conflict",
            "channel_type_conflict",
            "channel_type_version_conflict",
            "channel_type_limit_reached",
            "channel_conflict",
            "channel_version_conflict",
            "channel_membership_conflict",
            "channel_membership_version_conflict",
            "channel_membership_limit_reached",
            "message_conflict",
            "message_version_conflict",
            "channel_read_state_conflict",
            "thread_reply_limit_reached",
            "message_reaction_type_not_allowed",
            "message_reaction_limit_reached",
            "thread_read_state_conflict",
            "credential_limit_reached",
            "credential_lifecycle_conflict",
            "device_registration_conflict",
            "device_registration_version_conflict",
            "device_registration_limit_reached",
            "attachment_upload_incomplete",
            "attachment_not_ready",
            "attachment_limit_reached",
            "moderation_relationship_limit_reached",
            "moderation_blocklist_limit_reached",
            "moderation_case_resolution_conflict",
            "message_moderation_rejected",
            "retention_policy_version_conflict",
            "data_job_not_cancelable",
            "data_job_not_ready",
            "data_job_limit_exceeded",
            "webhook_endpoint_conflict",
            "webhook_endpoint_version_conflict",
            "webhook_endpoint_limit_reached",
            "webhook_destination_rejected",
            "webhook_secret_rotation_conflict",
            "webhook_delivery_not_replayable",
            "conflict",
            "rate_limit_exceeded",
            "internal_error",
            "service_unavailable"
          ],
          "example": "service_unavailable",
          "type": "string"
        },
        "details": {
          "$ref": "#/components/schemas/PublicErrorDetailsDto"
        },
        "message": {
          "example": "The service is temporarily unavailable.",
          "type": "string"
        },
        "requestId": {
          "example": "req_01J00000000000000000000000",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message",
        "requestId",
        "details"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
401
application/json
Response schema
{
  "$ref": "#/components/schemas/PublicErrorResponseDto",
  "properties": {
    "error": {
      "$ref": "#/components/schemas/PublicErrorBodyDto",
      "properties": {
        "code": {
          "enum": [
            "validation_failed",
            "authentication_failed",
            "authentication_required",
            "reauthentication_required",
            "permission_denied",
            "resource_not_found",
            "idempotency_conflict",
            "target_account_unavailable",
            "organization_owner_removal_conflict",
            "organization_owner_role_conflict",
            "organization_role_conflict",
            "membership_conflict",
            "invitation_conflict",
            "invitation_expired",
            "application_name_conflict",
            "application_settings_version_conflict",
            "environment_settings_version_conflict",
            "app_user_version_conflict",
            "channel_type_conflict",
            "channel_type_version_conflict",
            "channel_type_limit_reached",
            "channel_conflict",
            "channel_version_conflict",
            "channel_membership_conflict",
            "channel_membership_version_conflict",
            "channel_membership_limit_reached",
            "message_conflict",
            "message_version_conflict",
            "channel_read_state_conflict",
            "thread_reply_limit_reached",
            "message_reaction_type_not_allowed",
            "message_reaction_limit_reached",
            "thread_read_state_conflict",
            "credential_limit_reached",
            "credential_lifecycle_conflict",
            "device_registration_conflict",
            "device_registration_version_conflict",
            "device_registration_limit_reached",
            "attachment_upload_incomplete",
            "attachment_not_ready",
            "attachment_limit_reached",
            "moderation_relationship_limit_reached",
            "moderation_blocklist_limit_reached",
            "moderation_case_resolution_conflict",
            "message_moderation_rejected",
            "retention_policy_version_conflict",
            "data_job_not_cancelable",
            "data_job_not_ready",
            "data_job_limit_exceeded",
            "webhook_endpoint_conflict",
            "webhook_endpoint_version_conflict",
            "webhook_endpoint_limit_reached",
            "webhook_destination_rejected",
            "webhook_secret_rotation_conflict",
            "webhook_delivery_not_replayable",
            "conflict",
            "rate_limit_exceeded",
            "internal_error",
            "service_unavailable"
          ],
          "example": "service_unavailable",
          "type": "string"
        },
        "details": {
          "$ref": "#/components/schemas/PublicErrorDetailsDto"
        },
        "message": {
          "example": "The service is temporarily unavailable.",
          "type": "string"
        },
        "requestId": {
          "example": "req_01J00000000000000000000000",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message",
        "requestId",
        "details"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
429
application/json
Response schema
{
  "$ref": "#/components/schemas/PublicErrorResponseDto",
  "properties": {
    "error": {
      "$ref": "#/components/schemas/PublicErrorBodyDto",
      "properties": {
        "code": {
          "enum": [
            "validation_failed",
            "authentication_failed",
            "authentication_required",
            "reauthentication_required",
            "permission_denied",
            "resource_not_found",
            "idempotency_conflict",
            "target_account_unavailable",
            "organization_owner_removal_conflict",
            "organization_owner_role_conflict",
            "organization_role_conflict",
            "membership_conflict",
            "invitation_conflict",
            "invitation_expired",
            "application_name_conflict",
            "application_settings_version_conflict",
            "environment_settings_version_conflict",
            "app_user_version_conflict",
            "channel_type_conflict",
            "channel_type_version_conflict",
            "channel_type_limit_reached",
            "channel_conflict",
            "channel_version_conflict",
            "channel_membership_conflict",
            "channel_membership_version_conflict",
            "channel_membership_limit_reached",
            "message_conflict",
            "message_version_conflict",
            "channel_read_state_conflict",
            "thread_reply_limit_reached",
            "message_reaction_type_not_allowed",
            "message_reaction_limit_reached",
            "thread_read_state_conflict",
            "credential_limit_reached",
            "credential_lifecycle_conflict",
            "device_registration_conflict",
            "device_registration_version_conflict",
            "device_registration_limit_reached",
            "attachment_upload_incomplete",
            "attachment_not_ready",
            "attachment_limit_reached",
            "moderation_relationship_limit_reached",
            "moderation_blocklist_limit_reached",
            "moderation_case_resolution_conflict",
            "message_moderation_rejected",
            "retention_policy_version_conflict",
            "data_job_not_cancelable",
            "data_job_not_ready",
            "data_job_limit_exceeded",
            "webhook_endpoint_conflict",
            "webhook_endpoint_version_conflict",
            "webhook_endpoint_limit_reached",
            "webhook_destination_rejected",
            "webhook_secret_rotation_conflict",
            "webhook_delivery_not_replayable",
            "conflict",
            "rate_limit_exceeded",
            "internal_error",
            "service_unavailable"
          ],
          "example": "service_unavailable",
          "type": "string"
        },
        "details": {
          "$ref": "#/components/schemas/PublicErrorDetailsDto"
        },
        "message": {
          "example": "The service is temporarily unavailable.",
          "type": "string"
        },
        "requestId": {
          "example": "req_01J00000000000000000000000",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message",
        "requestId",
        "details"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
500
application/json
Response schema
{
  "$ref": "#/components/schemas/PublicErrorResponseDto",
  "properties": {
    "error": {
      "$ref": "#/components/schemas/PublicErrorBodyDto",
      "properties": {
        "code": {
          "enum": [
            "validation_failed",
            "authentication_failed",
            "authentication_required",
            "reauthentication_required",
            "permission_denied",
            "resource_not_found",
            "idempotency_conflict",
            "target_account_unavailable",
            "organization_owner_removal_conflict",
            "organization_owner_role_conflict",
            "organization_role_conflict",
            "membership_conflict",
            "invitation_conflict",
            "invitation_expired",
            "application_name_conflict",
            "application_settings_version_conflict",
            "environment_settings_version_conflict",
            "app_user_version_conflict",
            "channel_type_conflict",
            "channel_type_version_conflict",
            "channel_type_limit_reached",
            "channel_conflict",
            "channel_version_conflict",
            "channel_membership_conflict",
            "channel_membership_version_conflict",
            "channel_membership_limit_reached",
            "message_conflict",
            "message_version_conflict",
            "channel_read_state_conflict",
            "thread_reply_limit_reached",
            "message_reaction_type_not_allowed",
            "message_reaction_limit_reached",
            "thread_read_state_conflict",
            "credential_limit_reached",
            "credential_lifecycle_conflict",
            "device_registration_conflict",
            "device_registration_version_conflict",
            "device_registration_limit_reached",
            "attachment_upload_incomplete",
            "attachment_not_ready",
            "attachment_limit_reached",
            "moderation_relationship_limit_reached",
            "moderation_blocklist_limit_reached",
            "moderation_case_resolution_conflict",
            "message_moderation_rejected",
            "retention_policy_version_conflict",
            "data_job_not_cancelable",
            "data_job_not_ready",
            "data_job_limit_exceeded",
            "webhook_endpoint_conflict",
            "webhook_endpoint_version_conflict",
            "webhook_endpoint_limit_reached",
            "webhook_destination_rejected",
            "webhook_secret_rotation_conflict",
            "webhook_delivery_not_replayable",
            "conflict",
            "rate_limit_exceeded",
            "internal_error",
            "service_unavailable"
          ],
          "example": "service_unavailable",
          "type": "string"
        },
        "details": {
          "$ref": "#/components/schemas/PublicErrorDetailsDto"
        },
        "message": {
          "example": "The service is temporarily unavailable.",
          "type": "string"
        },
        "requestId": {
          "example": "req_01J00000000000000000000000",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message",
        "requestId",
        "details"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
503
application/json
Response schema
{
  "$ref": "#/components/schemas/PublicErrorResponseDto",
  "properties": {
    "error": {
      "$ref": "#/components/schemas/PublicErrorBodyDto",
      "properties": {
        "code": {
          "enum": [
            "validation_failed",
            "authentication_failed",
            "authentication_required",
            "reauthentication_required",
            "permission_denied",
            "resource_not_found",
            "idempotency_conflict",
            "target_account_unavailable",
            "organization_owner_removal_conflict",
            "organization_owner_role_conflict",
            "organization_role_conflict",
            "membership_conflict",
            "invitation_conflict",
            "invitation_expired",
            "application_name_conflict",
            "application_settings_version_conflict",
            "environment_settings_version_conflict",
            "app_user_version_conflict",
            "channel_type_conflict",
            "channel_type_version_conflict",
            "channel_type_limit_reached",
            "channel_conflict",
            "channel_version_conflict",
            "channel_membership_conflict",
            "channel_membership_version_conflict",
            "channel_membership_limit_reached",
            "message_conflict",
            "message_version_conflict",
            "channel_read_state_conflict",
            "thread_reply_limit_reached",
            "message_reaction_type_not_allowed",
            "message_reaction_limit_reached",
            "thread_read_state_conflict",
            "credential_limit_reached",
            "credential_lifecycle_conflict",
            "device_registration_conflict",
            "device_registration_version_conflict",
            "device_registration_limit_reached",
            "attachment_upload_incomplete",
            "attachment_not_ready",
            "attachment_limit_reached",
            "moderation_relationship_limit_reached",
            "moderation_blocklist_limit_reached",
            "moderation_case_resolution_conflict",
            "message_moderation_rejected",
            "retention_policy_version_conflict",
            "data_job_not_cancelable",
            "data_job_not_ready",
            "data_job_limit_exceeded",
            "webhook_endpoint_conflict",
            "webhook_endpoint_version_conflict",
            "webhook_endpoint_limit_reached",
            "webhook_destination_rejected",
            "webhook_secret_rotation_conflict",
            "webhook_delivery_not_replayable",
            "conflict",
            "rate_limit_exceeded",
            "internal_error",
            "service_unavailable"
          ],
          "example": "service_unavailable",
          "type": "string"
        },
        "details": {
          "$ref": "#/components/schemas/PublicErrorDetailsDto"
        },
        "message": {
          "example": "The service is temporarily unavailable.",
          "type": "string"
        },
        "requestId": {
          "example": "req_01J00000000000000000000000",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message",
        "requestId",
        "details"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}

Contract source

This page is generated from artifacts/openapi/openapi.json. The dedicated endpoint folder documents authorization, validation, errors, consistency, idempotency, events, retries, and client reconciliation.

View docs/api/v1/dashboard-identity-provider/receiveDashboardIdentityProviderEvent/endpoint.json
On this pageAuthenticationRequestResponsesContract source
All operations