> ## Documentation Index
> Fetch the complete documentation index at: https://docs.beltic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Revoke a Credential

> Flip the credential's status_list_index bit to 1, mark status=revoked,
record revoked_at. Audit trail is preserved (use `DELETE` for GDPR
erasure). Verifiers fetching the status list at
`/.well-known/status-lists/v1` will see the revocation within seconds.

Returns 409 if the credential is not currently active (already revoked,
expired, or suspended).



## OpenAPI

````yaml POST /v1/credentials/{id}/revoke
openapi: 3.1.0
info:
  title: Beltic Credentials API
  version: 1.0.0
servers: []
security: []
paths:
  /v1/credentials/{id}/revoke:
    post:
      tags:
        - Credentials
      summary: Revoke a credential
      description: |-
        Flip the credential's status_list_index bit to 1, mark status=revoked,
        record revoked_at. Audit trail is preserved (use `DELETE` for GDPR
        erasure). Verifiers fetching the status list at
        `/.well-known/status-lists/v1` will see the revocation within seconds.

        Returns 409 if the credential is not currently active (already revoked,
        expired, or suspended).
      parameters:
        - schema:
            type: string
            example: cred_abc123
          required: true
          name: id
          in: path
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RevokeCredentialRequest'
      responses:
        '200':
          description: Credential revoked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credential'
        '400':
          description: Validation error or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '403':
          description: Forbidden — caller lacks required permission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '409':
          description: Conflict (e.g., credential already revoked, idempotency clash)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    RevokeCredentialRequest:
      type: object
      properties:
        reason:
          type: string
    Credential:
      oneOf:
        - type: object
          properties:
            credential_type:
              type: string
              enum:
                - business
            subject:
              anyOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - organisation
                    id:
                      type: string
                      minLength: 1
                    registration_number:
                      type: string
                    jurisdiction:
                      type: string
                    legal_form:
                      type: string
                    registered_name:
                      type: string
                    trading_name:
                      type: string
                    founded_year:
                      type: integer
                    website:
                      type: string
                    sector:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - person
                    id:
                      type: string
                      minLength: 1
                    email:
                      type: string
                      format: email
                    nationality:
                      type: string
                      minLength: 2
                      maxLength: 2
                    first_name:
                      type: string
                    last_name:
                      type: string
                    preferred_name:
                      type: string
                    title:
                      type: string
                    phone:
                      type: string
                    date_of_birth:
                      type: string
                    city:
                      type: string
                    role_at_org:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - agent
                    id:
                      type: string
                      pattern: ^did:jwk:[A-Za-z0-9_-]+$
                    agent_external_id:
                      type: string
                    agent_display_name:
                      type: string
                    agent_framework:
                      type: string
                    parent_user_id:
                      type: string
                    parent_business_id:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - email
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - transaction
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - document
                    id:
                      type: string
                      minLength: 1
                    mime_type:
                      type: string
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      anyOf:
                        - type: string
                          enum:
                            - organisation
                            - person
                            - agent
                            - email
                            - transaction
                            - document
                        - type: string
                          minLength: 1
                          maxLength: 64
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                  additionalProperties: {}
            claims:
              type: object
              properties:
                kyb_tier:
                  type: string
                  enum:
                    - tier_0
                    - tier_1
                    - tier_2_basic
                    - tier_2_standard
                    - tier_3
                    - tier_4
                kyb_status:
                  type: string
                  enum:
                    - pending
                    - approved
                    - declined
                    - manual_review
                registered_address:
                  type: object
                  properties:
                    line1:
                      type: string
                    line2:
                      type: string
                    city:
                      type: string
                    state_or_region:
                      type: string
                    postal_code:
                      type: string
                    country:
                      type: string
                      minLength: 2
                      maxLength: 2
                  required:
                    - line1
                    - city
                    - country
                beneficial_owners:
                  type: array
                  items:
                    type: object
                    properties:
                      person_id:
                        type: string
                      full_name:
                        type: string
                      ownership_percent:
                        type: number
                        minimum: 0
                        maximum: 100
                      role:
                        type: string
                      pep_status:
                        type: string
                        enum:
                          - clear
                          - flagged
                          - match
                          - pending
                          - not_checked
                      sanctions_status:
                        type: string
                        enum:
                          - clear
                          - flagged
                          - match
                          - pending
                          - not_checked
                    required:
                      - full_name
                      - ownership_percent
                  maxItems: 50
                tax_id_verified:
                  type: boolean
                jurisdiction:
                  type: string
                business_type:
                  type: string
                  enum:
                    - company
                    - individual
                    - non_profit
                    - government_entity
                vat_number:
                  type: string
                incorporation_date:
                  type: string
                lei_code:
                  type: string
                regulatory_licenses:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                      license_number:
                        type: string
                      status:
                        type: string
                      jurisdiction:
                        type: string
                      issued_at:
                        type: string
                      lapsed_at:
                        type: string
                      regulator_url:
                        type: string
                    required:
                      - type
                  maxItems: 50
                bank_account_verified:
                  type: boolean
                bank_account_country:
                  type: string
                  minLength: 2
                  maxLength: 2
                bank_sort_code_hash:
                  type: string
                aml_status:
                  type: string
                  enum:
                    - clear
                    - flagged
                    - match
                    - pending
                    - not_checked
                sanctions_status:
                  type: string
                  enum:
                    - clear
                    - flagged
                    - match
                    - pending
                    - not_checked
                pep_director_check:
                  type: string
                  enum:
                    - clear
                    - flagged
                    - match
                    - pending
                    - not_checked
                adverse_media_status:
                  type: string
                  enum:
                    - clear
                    - flagged
                    - match
                    - pending
                    - not_checked
                aml_risk_rating:
                  type: string
                  enum:
                    - low
                    - medium
                    - high
                    - critical
                screening_provider:
                  type: string
                last_reviewed_at:
                  type: string
                  format: date-time
                next_review_due:
                  type: string
                  format: date-time
              required:
                - kyb_status
              additionalProperties: {}
            id:
              type: string
            credential_id:
              type: string
            issuer_did:
              type: string
            status:
              type: string
              enum:
                - active
                - revoked
                - expired
                - suspended
            status_list_index:
              type: integer
              minimum: 0
            proof_format:
              type: string
              enum:
                - jwt_vc
                - sd_jwt_vc
            vct:
              type: string
            alg:
              type: string
              enum:
                - ES256
            kid:
              type: string
            signed_payload:
              type: string
            evidence_refs:
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 512
              maxItems: 50
            issued_at:
              type: string
              format: date-time
            expires_at:
              type: string
              format: date-time
            revoked_at:
              type:
                - string
                - 'null'
              format: date-time
            revocation_reason:
              type:
                - string
                - 'null'
            created_via:
              type: string
              enum:
                - batch_mint
                - workflow_block
                - api
                - cli
                - mcp
              default: api
            developer_id:
              type: string
          required:
            - credential_type
            - subject
            - claims
            - id
            - credential_id
            - issuer_did
            - status
            - status_list_index
            - proof_format
            - alg
            - kid
            - signed_payload
            - evidence_refs
            - issued_at
            - expires_at
        - type: object
          properties:
            credential_type:
              type: string
              enum:
                - user
            subject:
              anyOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - organisation
                    id:
                      type: string
                      minLength: 1
                    registration_number:
                      type: string
                    jurisdiction:
                      type: string
                    legal_form:
                      type: string
                    registered_name:
                      type: string
                    trading_name:
                      type: string
                    founded_year:
                      type: integer
                    website:
                      type: string
                    sector:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - person
                    id:
                      type: string
                      minLength: 1
                    email:
                      type: string
                      format: email
                    nationality:
                      type: string
                      minLength: 2
                      maxLength: 2
                    first_name:
                      type: string
                    last_name:
                      type: string
                    preferred_name:
                      type: string
                    title:
                      type: string
                    phone:
                      type: string
                    date_of_birth:
                      type: string
                    city:
                      type: string
                    role_at_org:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - agent
                    id:
                      type: string
                      pattern: ^did:jwk:[A-Za-z0-9_-]+$
                    agent_external_id:
                      type: string
                    agent_display_name:
                      type: string
                    agent_framework:
                      type: string
                    parent_user_id:
                      type: string
                    parent_business_id:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - email
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - transaction
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - document
                    id:
                      type: string
                      minLength: 1
                    mime_type:
                      type: string
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      anyOf:
                        - type: string
                          enum:
                            - organisation
                            - person
                            - agent
                            - email
                            - transaction
                            - document
                        - type: string
                          minLength: 1
                          maxLength: 64
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                  additionalProperties: {}
            claims:
              type: object
              properties:
                trust_level:
                  type: string
                  enum:
                    - self_attested
                    - liveness_verified
                    - idv_verified
                    - enterprise_verified
                  default: self_attested
                kyc_status:
                  type: string
                  enum:
                    - pending
                    - approved
                    - declined
                    - manual_review
                parent_business_id:
                  type: string
                id_document_type:
                  type: string
                  enum:
                    - passport
                    - drivers_license
                    - national_id
                    - residence_permit
                id_document_country:
                  type: string
                  minLength: 2
                  maxLength: 2
                kyc_provider:
                  type: string
                  maxLength: 64
                kyc_session_id:
                  type: string
                kyc_completed_at:
                  type: string
                  format: date-time
                kyc_started_at:
                  type: string
                  format: date-time
                id_document_expiry:
                  type: string
                id_document_number_hash:
                  type: string
                liveness_check:
                  type: string
                  enum:
                    - passed
                    - failed
                    - not_performed
                liveness_score:
                  type: number
                  minimum: 0
                  maximum: 1
                face_match_score:
                  type:
                    - number
                    - 'null'
                  minimum: 0
                  maximum: 1
                phone_verified:
                  type: string
                phone_verified_at:
                  type: string
                  format: date-time
                phone_carrier:
                  type: string
                address_verified:
                  type: boolean
                address:
                  type: object
                  properties:
                    line1:
                      type: string
                    line2:
                      type: string
                    city:
                      type: string
                    state_or_region:
                      type: string
                    postal_code:
                      type: string
                    country:
                      type: string
                      minLength: 2
                      maxLength: 2
                  required:
                    - line1
                    - city
                    - country
                pep_status:
                  type: string
                  enum:
                    - clear
                    - flagged
                    - match
                    - pending
                    - not_checked
                sanctions_status:
                  type: string
                  enum:
                    - clear
                    - flagged
                    - match
                    - pending
                    - not_checked
                adverse_media_status:
                  type: string
                  enum:
                    - clear
                    - flagged
                    - match
                    - pending
                    - not_checked
                aml_risk_rating:
                  type: string
                  enum:
                    - low
                    - medium
                    - high
                    - critical
                screening_provider:
                  type: string
                screening_completed_at:
                  type: string
                  format: date-time
                age_over_18:
                  type: boolean
                age_over_21:
                  type: boolean
              required:
                - kyc_status
              additionalProperties: {}
            id:
              type: string
            credential_id:
              type: string
            issuer_did:
              type: string
            status:
              type: string
              enum:
                - active
                - revoked
                - expired
                - suspended
            status_list_index:
              type: integer
              minimum: 0
            proof_format:
              type: string
              enum:
                - jwt_vc
                - sd_jwt_vc
            vct:
              type: string
            alg:
              type: string
              enum:
                - ES256
            kid:
              type: string
            signed_payload:
              type: string
            evidence_refs:
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 512
              maxItems: 50
            issued_at:
              type: string
              format: date-time
            expires_at:
              type: string
              format: date-time
            revoked_at:
              type:
                - string
                - 'null'
              format: date-time
            revocation_reason:
              type:
                - string
                - 'null'
            created_via:
              type: string
              enum:
                - batch_mint
                - workflow_block
                - api
                - cli
                - mcp
              default: api
            developer_id:
              type: string
          required:
            - credential_type
            - subject
            - claims
            - id
            - credential_id
            - issuer_did
            - status
            - status_list_index
            - proof_format
            - alg
            - kid
            - signed_payload
            - evidence_refs
            - issued_at
            - expires_at
        - type: object
          properties:
            credential_type:
              type: string
              enum:
                - agent_authorization
            subject:
              anyOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - organisation
                    id:
                      type: string
                      minLength: 1
                    registration_number:
                      type: string
                    jurisdiction:
                      type: string
                    legal_form:
                      type: string
                    registered_name:
                      type: string
                    trading_name:
                      type: string
                    founded_year:
                      type: integer
                    website:
                      type: string
                    sector:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - person
                    id:
                      type: string
                      minLength: 1
                    email:
                      type: string
                      format: email
                    nationality:
                      type: string
                      minLength: 2
                      maxLength: 2
                    first_name:
                      type: string
                    last_name:
                      type: string
                    preferred_name:
                      type: string
                    title:
                      type: string
                    phone:
                      type: string
                    date_of_birth:
                      type: string
                    city:
                      type: string
                    role_at_org:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - agent
                    id:
                      type: string
                      pattern: ^did:jwk:[A-Za-z0-9_-]+$
                    agent_external_id:
                      type: string
                    agent_display_name:
                      type: string
                    agent_framework:
                      type: string
                    parent_user_id:
                      type: string
                    parent_business_id:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - email
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - transaction
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - document
                    id:
                      type: string
                      minLength: 1
                    mime_type:
                      type: string
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      anyOf:
                        - type: string
                          enum:
                            - organisation
                            - person
                            - agent
                            - email
                            - transaction
                            - document
                        - type: string
                          minLength: 1
                          maxLength: 64
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                  additionalProperties: {}
            claims:
              type: object
              properties:
                role:
                  type: array
                  items:
                    type: string
                  maxItems: 16
                  default: []
                intent:
                  type: string
                  maxLength: 512
                permissions:
                  type: array
                  items:
                    type: object
                    properties:
                      resource_type:
                        anyOf:
                          - type: string
                            enum:
                              - merchant
                              - website
                              - api
                              - wallet
                              - service
                          - type: string
                            minLength: 1
                            maxLength: 64
                      resource_id:
                        type: string
                        minLength: 1
                        maxLength: 256
                      actions:
                        type: array
                        items:
                          type: string
                          minLength: 1
                          maxLength: 64
                        minItems: 1
                        maxItems: 32
                      conditions:
                        type: array
                        items:
                          type: object
                          properties:
                            field:
                              type: string
                              minLength: 1
                              maxLength: 64
                            op:
                              type: string
                              enum:
                                - eq
                                - neq
                                - in
                                - not_in
                                - lt
                                - lte
                                - gt
                                - gte
                                - between
                                - contains
                                - starts_with
                                - ends_with
                                - matches
                            value: {}
                          required:
                            - field
                            - op
                        maxItems: 16
                    required:
                      - resource_type
                      - resource_id
                      - actions
                  maxItems: 64
                  default: []
                spend_limit:
                  type: object
                  properties:
                    amount:
                      type: integer
                      minimum: 0
                    currency:
                      type: string
                      minLength: 3
                      maxLength: 3
                    period:
                      type: string
                      enum:
                        - per_transaction
                        - daily
                        - weekly
                        - monthly
                        - lifetime
                  required:
                    - amount
                    - currency
                    - period
                trust_level:
                  type: string
                  enum:
                    - self_attested
                    - liveness_verified
                    - idv_verified
                    - enterprise_verified
                  default: self_attested
                max_idle_duration:
                  type: string
                  pattern: ^P[\dYMWDTHMS]+$/i
                delegated_by_subject_id:
                  type: string
                authorized_currencies:
                  type: array
                  items:
                    type: string
                    minLength: 3
                    maxLength: 3
                  maxItems: 20
                human_present:
                  type: boolean
              additionalProperties: {}
            id:
              type: string
            credential_id:
              type: string
            issuer_did:
              type: string
            status:
              type: string
              enum:
                - active
                - revoked
                - expired
                - suspended
            status_list_index:
              type: integer
              minimum: 0
            proof_format:
              type: string
              enum:
                - jwt_vc
                - sd_jwt_vc
            vct:
              type: string
            alg:
              type: string
              enum:
                - ES256
            kid:
              type: string
            signed_payload:
              type: string
            evidence_refs:
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 512
              maxItems: 50
            issued_at:
              type: string
              format: date-time
            expires_at:
              type: string
              format: date-time
            revoked_at:
              type:
                - string
                - 'null'
              format: date-time
            revocation_reason:
              type:
                - string
                - 'null'
            created_via:
              type: string
              enum:
                - batch_mint
                - workflow_block
                - api
                - cli
                - mcp
              default: api
            developer_id:
              type: string
          required:
            - credential_type
            - subject
            - claims
            - id
            - credential_id
            - issuer_did
            - status
            - status_list_index
            - proof_format
            - alg
            - kid
            - signed_payload
            - evidence_refs
            - issued_at
            - expires_at
        - type: object
          properties:
            credential_type:
              type: string
              enum:
                - outcome_attestation
            attestation_type:
              type: string
            subject:
              anyOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - organisation
                    id:
                      type: string
                      minLength: 1
                    registration_number:
                      type: string
                    jurisdiction:
                      type: string
                    legal_form:
                      type: string
                    registered_name:
                      type: string
                    trading_name:
                      type: string
                    founded_year:
                      type: integer
                    website:
                      type: string
                    sector:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - person
                    id:
                      type: string
                      minLength: 1
                    email:
                      type: string
                      format: email
                    nationality:
                      type: string
                      minLength: 2
                      maxLength: 2
                    first_name:
                      type: string
                    last_name:
                      type: string
                    preferred_name:
                      type: string
                    title:
                      type: string
                    phone:
                      type: string
                    date_of_birth:
                      type: string
                    city:
                      type: string
                    role_at_org:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - agent
                    id:
                      type: string
                      pattern: ^did:jwk:[A-Za-z0-9_-]+$
                    agent_external_id:
                      type: string
                    agent_display_name:
                      type: string
                    agent_framework:
                      type: string
                    parent_user_id:
                      type: string
                    parent_business_id:
                      type: string
                  required:
                    - type
                    - id
                  additionalProperties: {}
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - email
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - transaction
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - document
                    id:
                      type: string
                      minLength: 1
                    mime_type:
                      type: string
                  required:
                    - type
                    - id
                - type: object
                  properties:
                    type:
                      anyOf:
                        - type: string
                          enum:
                            - organisation
                            - person
                            - agent
                            - email
                            - transaction
                            - document
                        - type: string
                          minLength: 1
                          maxLength: 64
                    id:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - id
                  additionalProperties: {}
            claims:
              type: object
              additionalProperties: {}
            id:
              type: string
            credential_id:
              type: string
            issuer_did:
              type: string
            status:
              type: string
              enum:
                - active
                - revoked
                - expired
                - suspended
            status_list_index:
              type: integer
              minimum: 0
            proof_format:
              type: string
              enum:
                - jwt_vc
                - sd_jwt_vc
            vct:
              type: string
            alg:
              type: string
              enum:
                - ES256
            kid:
              type: string
            signed_payload:
              type: string
            evidence_refs:
              type: array
              items:
                type: string
                minLength: 1
                maxLength: 512
              maxItems: 50
            issued_at:
              type: string
              format: date-time
            expires_at:
              type: string
              format: date-time
            revoked_at:
              type:
                - string
                - 'null'
              format: date-time
            revocation_reason:
              type:
                - string
                - 'null'
            created_via:
              type: string
              enum:
                - batch_mint
                - workflow_block
                - api
                - cli
                - mcp
              default: api
            developer_id:
              type: string
          required:
            - credential_type
            - attestation_type
            - subject
            - claims
            - id
            - credential_id
            - issuer_did
            - status
            - status_list_index
            - proof_format
            - alg
            - kid
            - signed_payload
            - evidence_refs
            - issued_at
            - expires_at
    ApiErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ApiError'
      required:
        - error
    ApiError:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/ApiErrorDetail'
        request_id:
          type: string
      required:
        - code
        - message
    ApiErrorDetail:
      type: object
      properties:
        field:
          type: string
        issue:
          type: string
        hint:
          type: string
      required:
        - issue

````