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

# Step 1: Create a Presentation Template

> Define what credential information you want to request from youth.

## Overview

A presentation template specifies what credentials and attributes you want to verify. The `type` field must match the **VCT URI** from the issuing partner's credential template response — this is how the system knows which credentials to request from the youth's wallet.

<Warning>
  The `type` must be the **full VCT URI** (e.g. `https://didx.co.za/vct/didx/course-completion`), not the issuer's short `code`. Coordinate with the issuing partner to obtain this URI.
</Warning>

## Endpoint

```
POST https://test.didxtech.com/me-creds/api/templates/presentations
```

## Request

```bash theme={null}
curl -X POST "https://test.didxtech.com/me-creds/api/templates/presentations" \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Web Development Verification",
    "description": "Verify that a candidate completed the Umuzi web development programme",
    "credentials": [
      {
        "name": "Web Development Completion",
        "description": "Umuzi web development programme credential",
        "type": "https://didx.co.za/vct/didx/course-completion",
        "attributes": {
          "programmeName": {
            "type": "string"
          },
          "completionDate": {
            "type": "string"
          },
          "fullName": {
            "type": "string"
          }
        }
      }
    ]
  }'
```

### Request Body

| Field                      | Type   | Description                                                  |
| -------------------------- | ------ | ------------------------------------------------------------ |
| `name`                     | string | Name for this presentation template                          |
| `description`              | string | Description of what this template verifies                   |
| `credentials`              | array  | List of credential types to request                          |
| `credentials[].type`       | string | Must match the VCT URI from the issuer's credential template |
| `credentials[].attributes` | object | The specific attributes to request from the credential       |

### Requesting Specific Attributes

You only need to list the attributes you want to verify. In the example above, the employment provider requests `programmeName`, `completionDate`, and `fullName` — but not `skillsCovered` or `assessmentScore`. This keeps the request minimal and respects youth privacy.

If an attribute was marked `alwaysDisclosed: true` by the issuer, it will always be included regardless. Attributes marked `alwaysDisclosed: false` are shared only if the youth consents.

## Response

**HTTP 200 OK**

```json theme={null}
{
  "data": {
    "name": "Web Development Verification",
    "description": "Verify that a candidate completed the Umuzi web development programme",
    "createdAt": "2025-02-20T11:27:37.051Z",
    "updatedAt": "2025-02-20T11:27:37.051Z",
    "id": "cm2ytsdid009u4ke3t30aiuvc",
    "credentials": [
      {
        "name": "Web Development Completion",
        "description": "Umuzi web development programme credential",
        "format": "sd-jwt-vc",
        "type": "https://didx.co.za/vct/didx/course-completion",
        "attributes": {
          "programmeName": {
            "type": "string"
          },
          "completionDate": {
            "type": "string"
          },
          "fullName": {
            "type": "string"
          }
        }
      }
    ]
  },
  "links": {
    "self": "https://test.didxtech.com/me-creds/api/templates/presentations/cm2ytsdid009u4ke3t30aiuvc"
  },
  "meta": {
    "version": "1.0"
  }
}
```

### Key Response Fields

| Field    | Description                                               |
| -------- | --------------------------------------------------------- |
| `id`     | Unique template identifier — save this for Step 2         |
| `format` | `sd-jwt-vc` — credential format with selective disclosure |

<Tip>
  Presentation templates are reusable. Create one template and use it for all verification requests of that type — save the `id` for [Step 2: Create a Presentation Request](/api/verifiers/create-presentation-request).
</Tip>
