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

# Create a new mDoc credential preset (v1)



## OpenAPI

````yaml products/didx-me/api-reference/v1/me-creds.json post /v1/presets/credentials/mdoc
openapi: 3.0.0
info:
  version: 1.0.0
  title: Me Creds API
  description: >2-

          
    OpenAPI documentation for Me Creds API

          
    Following JSON:API spec https://jsonapi.org/format/ approach to response
    payload format.


    **Unversioned endpoints are deprecated.**

          
     - [JSON - OpenAPI Specification](/me-creds/api/openapi.json)
servers:
  - url: https://test.didxtech.com/me-creds/api
security:
  - bearerAuth: []
tags:
  - name: issuances
    description: >-
      Create and track credential issuance offers. Each issuance represents an
      OID4VCI offer/exchange session. Replaces the legacy `POST
      /credentials/issuance`, `GET /credentials`, and `GET /credentials/{id}`
      endpoints with resources keyed by issuance session ID.
  - name: credentials
    description: >-
      Query and revoke issued credentials. Each credential is a flat issued
      artifact identified by its own credential ID (not the issuance session
      ID). Replaces the legacy `POST /credentials/{id}/revoke` and `POST
      /credentials/revoke` endpoints.
  - name: legacy credentials
    description: >-
      **Deprecated.** These endpoints conflate issuance sessions and issued
      credentials under a single `/credentials` path with inconsistent ID
      semantics. Use the `issuances` and `credentials` groups instead.
  - name: presentations
    description: >-
      Create and query presentation requests. The `/v1/` paths are identical
      mirrors of the deprecated unversioned endpoints — no behavior change.
  - name: templates
    description: >-
      Manage credential and presentation templates. The `/v1/` paths are
      identical mirrors of the deprecated unversioned endpoints — no behavior
      change.
  - name: presets
    description: >-
      Manage credential and presentation presets. The `/v1/` paths are identical
      mirrors of the deprecated unversioned endpoints — no behavior change.
  - name: endpoints
    description: >-
      Manage webhook endpoint destinations. The `/v1/` paths are identical
      mirrors of the deprecated unversioned endpoints — no behavior change.
  - name: trusted-entities
    description: >-
      Manage trusted entities for credential verification. The `/v1/` paths are
      identical mirrors of the deprecated unversioned endpoints — no behavior
      change.
  - name: certificate-signing-requests
    description: >-
      Manage certificate signing requests (CSRs). The `/v1/` paths are identical
      mirrors of the deprecated unversioned endpoints — no behavior change.
  - name: certificates
    description: >-
      Manage root certificates and their lifecycle. The `/v1/` paths are
      identical mirrors of the deprecated unversioned endpoints — no behavior
      change.
  - name: ecosystem-subscriptions
    description: >-
      Manage trust ecosystem subscriptions. The `/v1/` paths are identical
      mirrors of the deprecated unversioned endpoints — no behavior change.
paths:
  /v1/presets/credentials/mdoc:
    post:
      tags:
        - presets
      summary: Create a new mDoc credential preset.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMdocCredentialPresetRequestSchema'
      responses:
        '200':
          description: Created mDoc credential preset.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MdocCredentialPresetApiResponse'
components:
  schemas:
    CreateMdocCredentialPresetRequestSchema:
      type: object
      properties:
        credentialFormat:
          type: string
          enum:
            - mdoc
        templateName:
          type: string
        code:
          type: string
          pattern: ^[a-z0-9-]+$
        templateDescription:
          type: string
        type:
          type: string
          minLength: 1
        templateAttributes:
          type: object
          additionalProperties:
            type: object
            properties:
              properties:
                type: object
                additionalProperties:
                  $ref: '#/components/schemas/MdocCredentialAttribute'
            required:
              - properties
        validUntil:
          type: object
          properties:
            future:
              type: object
              properties:
                days:
                  type: integer
                  minimum: 0
                months:
                  type: integer
                  minimum: 0
                years:
                  type: integer
                  minimum: 0
          required:
            - future
        issuerConfig:
          type: object
          properties:
            signer:
              type: string
              enum:
                - certificate
            keyType:
              type: string
              enum:
                - P-256
                - Ed25519
          required:
            - signer
        branding:
          $ref: '#/components/schemas/TemplateBranding'
        namespace:
          type: string
          enum:
            - public
            - private
      required:
        - credentialFormat
        - templateName
        - code
        - templateDescription
        - type
        - templateAttributes
        - validUntil
      example:
        credentialFormat: mdoc
        code: national-id
        templateName: National ID
        templateDescription: South African national identity document
        type: za.co.didx.national-id
        templateAttributes:
          za.co.didx:
            properties:
              firstName:
                type: string
                name: First Name
                required: true
              dateOfBirth:
                type: date
                name: Date of Birth
                required: true
        validUntil:
          future:
            days: 365
        issuerConfig:
          signer: certificate
          keyType: P-256
    MdocCredentialPresetApiResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/MdocCredentialPresetResponse'
        links:
          $ref: '#/components/schemas/ApiLinks'
        meta:
          $ref: '#/components/schemas/ApiMeta'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
      required:
        - data
    MdocCredentialAttribute:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        required:
          type: boolean
        type:
          type: string
          enum:
            - string
            - number
            - boolean
            - date
            - binary
            - object
            - array
        properties:
          type: object
          additionalProperties:
            nullable: true
        items:
          nullable: true
      required:
        - type
    TemplateBranding:
      type: object
      properties:
        backgroundColor:
          type: string
          pattern: ^#[0-9A-Fa-f]{6}$
          description: 'Card background colour as a 6-digit hex code (#RRGGBB), e.g. #0066CC'
        textColor:
          type: string
          pattern: ^#[0-9A-Fa-f]{6}$
          description: 'Card text colour as a 6-digit hex code (#RRGGBB), e.g. #FFFFFF'
        backgroundImageUrl:
          type: string
          format: uri
          description: URL of the card background image
      example:
        backgroundColor: '#0066CC'
        textColor: '#FFFFFF'
        backgroundImageUrl: https://example.com/bg.png
    MdocCredentialPresetResponse:
      type: object
      properties:
        credentialFormat:
          type: string
          enum:
            - mdoc
        id:
          type: string
        author:
          type: string
        templateName:
          type: string
        templateType:
          type: string
        code:
          type: string
        templateDescription:
          type: string
        templateAttributes:
          type: object
          additionalProperties:
            type: object
            properties:
              properties:
                type: object
                additionalProperties:
                  $ref: '#/components/schemas/MdocCredentialAttribute'
            required:
              - properties
        validUntil:
          type: object
          properties:
            future:
              type: object
              properties:
                days:
                  type: integer
                  minimum: 0
                months:
                  type: integer
                  minimum: 0
                years:
                  type: integer
                  minimum: 0
          required:
            - future
        issuerConfig:
          type: object
          nullable: true
          properties:
            signer:
              type: string
              enum:
                - certificate
            keyType:
              type: string
              enum:
                - P-256
                - Ed25519
          required:
            - signer
        branding:
          $ref: '#/components/schemas/TemplateBranding'
        namespace:
          type: string
          enum:
            - public
            - private
        createdAt:
          type: string
        updatedAt:
          type: string
      required:
        - credentialFormat
        - id
        - author
        - templateName
        - templateType
        - code
        - templateDescription
        - templateAttributes
        - validUntil
        - issuerConfig
        - namespace
        - createdAt
        - updatedAt
      example:
        credentialFormat: mdoc
        id: didx:national-id
        author: didx
        code: national-id
        templateName: National ID
        templateType: za.co.didx.national-id
        templateDescription: South African national identity document
        templateAttributes:
          za.co.didx:
            properties:
              firstName:
                type: string
                name: First Name
                required: true
        validUntil:
          future:
            days: 365
        issuerConfig:
          signer: certificate
          keyType: P-256
        namespace: public
        createdAt: '2025-02-20T11:27:37.051Z'
        updatedAt: '2025-02-20T11:27:37.051Z'
    ApiLinks:
      type: object
      properties:
        self:
          type: string
          format: uri
        first:
          type: string
          format: uri
        last:
          type: string
          format: uri
        prev:
          type: string
          format: uri
        next:
          type: string
          format: uri
        related:
          type: string
          format: uri
    ApiMeta:
      type: object
      additionalProperties:
        nullable: true
    ApiError:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
        code:
          type: string
        title:
          type: string
        detail:
          type: string
        source:
          type: object
          properties:
            pointer:
              type: string
            parameter:
              type: string
        meta:
          type: object
          additionalProperties:
            nullable: true
      required:
        - detail
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````