---
title: Issue a certificate
description: Issue and send a single pending certificate issue
method: POST
path: /api/v1/workspaces/{slug}/issues/{issueID}/issue
group: Issues
scopes: certificates:write
---

# Issue a certificate

# Issue a certificate

Issues (renders, signs, and notifies) a single pending issue. The certificate must have a published template design.

## Authorization

```http
Authorization: Bearer vc_...
```

Requires `certificates:write` (or full access) and an active Pro seat.

## Path parameters

  
- `slug*` string — Workspace slug Example: `acme`.

  
- `issueID*` UUID — Issue id Example: `9b2c1d4e-5f67-4890-a123-456789abcdef`.

## Request

```bash
curl -X POST \
  https://api.verifycate.com/api/v1/workspaces/acme/issues/9b2c1d4e-5f67-4890-a123-456789abcdef/issue \
  -H "Authorization: Bearer vc_your_api_key"
```

```javascript
const issueId = "9b2c1d4e-5f67-4890-a123-456789abcdef";
const res = await fetch(
  `https://api.verifycate.com/api/v1/workspaces/acme/issues/${issueId}/issue`,
  {
    method: "POST",
    headers: { Authorization: "Bearer vc_your_api_key" },
  },
);
const issue = await res.json();
```

```go
req, _ := http.NewRequest(
	"POST",
	"https://api.verifycate.com/api/v1/workspaces/acme/issues/9b2c1d4e-5f67-4890-a123-456789abcdef/issue",
	nil,
)
req.Header.Set("Authorization", "Bearer vc_your_api_key")
```

```python
import urllib.request

req = urllib.request.Request(
    "https://api.verifycate.com/api/v1/workspaces/acme/issues/9b2c1d4e-5f67-4890-a123-456789abcdef/issue",
    method="POST",
    headers={"Authorization": "Bearer vc_your_api_key"},
)
with urllib.request.urlopen(req) as res:
    print(res.read().decode())
```

## Response schema

- `anchor_status*` string — 
- `attributes*` object — 
- `certificate_id*` string — 
- `created_at*` string — 
- `current_version_id*` UUID — 
  - `Bytes*` string — 
  - `Valid*` boolean — 
- `email_delivery_reason*` string — 
- `email_delivery_status*` string — 
- `email_delivery_updated_at*` Timestamptz — 
  - `InfinityModifier*` integer — 
  - `Time*` string — 
  - `Valid*` boolean — 
- `email_provider_message_id*` string — 
- `expires_at*` Timestamptz — 
  - `InfinityModifier*` integer — 
  - `Time*` string — 
  - `Valid*` boolean — 
- `id*` string — 
- `issued_at*` Timestamptz — 
  - `InfinityModifier*` integer — 
  - `Time*` string — 
  - `Valid*` boolean — 
- `notified_at*` Timestamptz — 
  - `InfinityModifier*` integer — 
  - `Time*` string — 
  - `Valid*` boolean — 
- `notify_type*` string — 
- `pending_reason*` string — 
- `public_id*` string — 
- `recipient_email*` string — 
- `recipient_name*` string — 
- `request_submission_id*` UUID — 
  - `Bytes*` string — 
  - `Valid*` boolean — 
- `status*` string — 
- `template_version*` integer — 
- `updated_at*` string — 
- `user_id*` UUID — 
  - `Bytes*` string — 
  - `Valid*` boolean — 

## Response

### 200

```json
{
  "id": "9b2c1d4e-5f67-4890-a123-456789abcdef",
  "certificate_id": "550e8400-e29b-41d4-a716-446655440000",
  "public_id": "vc_pub_ada01",
  "recipient_email": "ada@example.com",
  "recipient_name": "Ada Lovelace",
  "attributes": { "course": "Mathematics" },
  "status": "active",
  "issued_at": "2026-09-03T09:00:00Z",
  "expires_at": "2027-09-03T09:00:00Z",
  "template_version": 2,
  "created_at": "2026-09-03T08:10:00Z",
  "updated_at": "2026-09-03T09:00:00Z"
}
```

### 404

```json
{
  "title": "Not Found",
  "status": 404,
  "detail": "certificate issue not found",
  "code": "issue_not_found"
}
```
