> ## 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.

# Batch Issue Credentials

> Issue up to 1,000 credentials in a single call. Useful for bulk
provisioning — for example, minting agent authorization credentials for an
existing fleet of agents in one request rather than 1,000 individual calls.

Each item is processed sequentially. If an item fails, processing continues
— the response reports per-item success/failure in the same order as the
input array.

Each item may include a `correlation_id` which is echoed back so callers
can match results to inputs.

Limits:
- Maximum 1,000 items per request
- No transactional rollback — failures don't undo successful items



## OpenAPI

````yaml POST /v1/credentials/batch-issue
openapi: 3.1.0
info:
  title: Beltic Credentials API
  version: 1.0.0
servers: []
security: []
paths:
  /v1/credentials/batch-issue:
    post:
      tags:
        - Credentials
      summary: Batch-issue credentials
      description: >-
        Issue up to 1,000 credentials in a single call. Useful for bulk

        provisioning — for example, minting agent authorization credentials for
        an

        existing fleet of agents in one request rather than 1,000 individual
        calls.


        Each item is processed sequentially. If an item fails, processing
        continues

        — the response reports per-item success/failure in the same order as the

        input array.


        Each item may include a `correlation_id` which is echoed back so callers

        can match results to inputs.


        Limits:

        - Maximum 1,000 items per request

        - No transactional rollback — failures don't undo successful items
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchIssueRequest'
      responses:
        '200':
          description: Batch processed (may include per-item failures)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchIssueResponse'
        '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:
    BatchIssueRequest:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              request:
                oneOf:
                  - type: object
                    properties:
                      credential_type:
                        type: string
                        enum:
                          - business
                      self_attestation_complete: {}
                      subject:
                        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: {}
                      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: {}
                      evidence_refs:
                        type: array
                        items:
                          type: string
                          minLength: 1
                          maxLength: 512
                        maxItems: 50
                        default: []
                      ttl:
                        type: string
                        pattern: ^P[\dYMWDTHMS]+$/i
                        default: P1Y
                    required:
                      - credential_type
                      - self_attestation_complete
                      - subject
                      - claims
                  - type: object
                    properties:
                      credential_type:
                        type: string
                        enum:
                          - user
                      self_attestation_complete: {}
                      subject:
                        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: {}
                      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: {}
                      evidence_refs:
                        type: array
                        items:
                          type: string
                          minLength: 1
                          maxLength: 512
                        maxItems: 50
                        default: []
                      ttl:
                        type: string
                        pattern: ^P[\dYMWDTHMS]+$/i
                        default: P1Y
                    required:
                      - credential_type
                      - self_attestation_complete
                      - subject
                      - claims
                  - type: object
                    properties:
                      credential_type:
                        type: string
                        enum:
                          - agent_authorization
                      self_attestation_complete: {}
                      subject:
                        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: {}
                      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: {}
                      evidence_refs:
                        type: array
                        items:
                          type: string
                          minLength: 1
                          maxLength: 512
                        maxItems: 50
                        default: []
                      ttl:
                        type: string
                        pattern: ^P[\dYMWDTHMS]+$/i
                        default: P30D
                    required:
                      - credential_type
                      - self_attestation_complete
                      - subject
                      - claims
                  - type: object
                    properties:
                      credential_type:
                        type: string
                        enum:
                          - outcome_attestation
                      self_attestation_complete: {}
                      attestation_type:
                        type: string
                        minLength: 1
                        maxLength: 64
                      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: {}
                      evidence_refs:
                        type: array
                        items:
                          type: string
                          minLength: 1
                          maxLength: 512
                        maxItems: 50
                        default: []
                      ttl:
                        type: string
                        pattern: ^P[\dYMWDTHMS]+$/i
                        default: P7D
                    required:
                      - credential_type
                      - self_attestation_complete
                      - attestation_type
                      - subject
                      - claims
              correlation_id:
                type: string
            required:
              - request
          minItems: 1
          maxItems: 1000
      required:
        - items
    BatchIssueResponse:
      type: object
      properties:
        success_count:
          type: integer
          minimum: 0
        failure_count:
          type: integer
          minimum: 0
        results:
          type: array
          items:
            anyOf:
              - type: object
                properties:
                  ok:
                    type: boolean
                    enum:
                      - true
                  correlation_id:
                    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
                required:
                  - ok
                  - credential
              - type: object
                properties:
                  ok:
                    type: boolean
                    enum:
                      - false
                  correlation_id:
                    type: string
                  error_code:
                    type: string
                  error_message:
                    type: string
                required:
                  - ok
                  - error_code
                  - error_message
      required:
        - success_count
        - failure_count
        - results
    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

````