---
title: "Update a credential"
method: PATCH
path: "/v1/credentials/{id}"
tags: ["Credentials"]
---

# Update a credential

`PATCH /v1/credentials/{id}`

Use this endpoint to update a credential.

## Path parameters

- `id` string, required — The unique ID of the credential

## Headers

- `Certifier-Version` string, required — API version header. Required for all requests.

## Request body

- UpdateCredential
  - `recipient` object — The recipient of the credential
    - `id` string, required — The credential recipient's unique identifier
    - `name` string, required — The name of the credential's recipient
    - `email` string, email — The email of the credential's recipient
  - `issueDate` string — The date of your credential's issuance (by default is set to today, only YYYY-MM-DD format is allowed)
  - `expiryDate` string, nullable — The date of your credential's expiration (by default uses the settings configured on the group (credential template), only YYYY-MM-DD format is allowed). Set to null if you want to reset this field
  - `customAttributes` object — The key-value object of your custom attributes, where key is your attribute's tag and value is the text value you want to store

## Response `200`

Credential updated successfully

- Credential
  - `id` string, required — The unique credential's identifier
  - `publicId` string, uuid, required — The external unique credential's identifier (used in the digital wallet to generate a URL, e.g. https://credsverse.com/credentials/{publicId})
  - `groupId` string, required — The unique identifier of the group (credential template).
  - `status` 'draft' | 'scheduled' | 'issued' | 'expired', required — The status of the credential
  - `recipient` Recipient, nullable, required — The recipient object (if an email was provided)
    - `id` string, required — The credential recipient's unique identifier
    - `name` string, required — The name of the credential's recipient
    - `email` string, email, required — The email of the credential's recipient
  - `issueDate` string, required — The date of your credential's issuance. Formatted as an ISO 8601 date string (YYYY-MM-DD)
  - `expiryDate` string, nullable, required — The date of your credential's expiration. Formatted as an ISO 8601 date string (YYYY-MM-DD)
  - `attributes` object, required — The key-value object of the credential's attributes. Currently this can only be the recipient.name, configured on a per-credential basis
  - `customAttributes` object, required — The key-value object of your custom attributes, where key is your attribute's tag and value is the text value you want to store
  - `createdAt` string, date-time, required — The date and time when this credential was created. Formatted as an ISO 8601 date and time string
  - `updatedAt` string, date-time, required — The date and time when this credential was updated. Formatted as an ISO 8601 date and time string

## Other responses

- `400` — Bad Request - Missing version, invalid version, invalid JSON, or validation error
- `401` — Unauthorized - Invalid or missing authentication token
- `404` — Not Found - Resource does not exist
- `429` — Rate Limited - Too many requests
- `500` — Internal Server Error - Problem on Certifier's end

---

[API](https://skmtc.dev/certifier/apis/certifier-api.md) · [All operations](https://skmtc.dev/certifier/apis/certifier-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/certifier/certifier-api/revisions/a84fb47b7f6f/schema)
