---
title: "Accept an offer (demo: server-side PoP)"
method: POST
path: "/v1/credential-offers/{uuid}/accept"
tags: ["OpenID4VCI Protocol"]
---

# Accept an offer (demo: server-side PoP)

`POST /v1/credential-offers/{uuid}/accept`

Accept a credential offer through Didit's server-side demo shortcut. Didit redeems the OpenID4VCI (OpenID for Verifiable Credential Issuance) offer, creates a holder key, and returns the issued SD-JWT VC (Selective-Disclosure JWT Verifiable Credential). Use this only for demo flows where the server accepts the offer for the holder.

## Path parameters

- `uuid` string, uuid, required

## Request body

- object

## Response `200`

Didit accepted the offer and minted the credential.

- object
  - `credential` object — You receive the issued credential expanded for the holder UI.
    - `claims` object[] — You receive the claims embedded in the issued credential.
      - `label` string — Show this claim label to the holder.
      - `name` string — Use this machine-readable claim name to identify the attribute.
      - `selective_disclosure` boolean — You receive true when the holder can selectively disclose this claim later.
      - `value` string — You receive the claim value included in the credential.
    - `credential_name` string — Show this credential display name to the holder.
    - `expires_at` string — You receive the credential expiration timestamp.
    - `format` string — You receive the credential format value.
    - `id` string — Use this identifier for the issued credential record.
    - `issued_at` string — You receive the credential issuance timestamp.
    - `issuer` object — Use this issuer identity block to render the credential.
      - `did` string — Show this decentralized identifier for the issuer.
      - `domain` string — Use this issuer domain as the credential issuer identifier.
      - `id` string — Use this tenant identifier for the issuer.
      - `name` string — Show this issuer display name to the holder.
    - `sd_jwt` string — Store this SD-JWT VC (Selective-Disclosure JWT Verifiable Credential) string in the holder wallet.
    - `status` string — You receive the issued credential status.
    - `subject` string — Show this credential subject value to the holder.
    - `vct` string — You receive the credential VCT (Verifiable Credential Type).
  - `holder_jwk` object — You receive the public JWK (JSON Web Key) that Didit generated for this demo holder flow.
    - `crv` string — You receive the elliptic curve name for the holder key.
    - `kty` string — You receive the JWK (JSON Web Key) key type.
    - `x` string — You receive the x-coordinate of the public key.
    - `y` string — You receive the y-coordinate of the public key.
  - `vct` string — You receive the VCT (Verifiable Credential Type) as a top-level convenience field.

## Other responses

- `400` — The flow could not complete — e.g. the offer was already redeemed, expired, or a tx_code/proof step failed.
- `404` — No offer exists for the given UUID (or it is soft-deleted).

---

[API](https://skmtc.net/didit-protocol/apis/didit-credentials-api.md) · [All operations](https://skmtc.net/didit-protocol/apis/didit-credentials-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/didit-protocol/didit-credentials-api/revisions/e4eddba66557/schema)
