---
title: "Collect credential associated with the bearer token and the transaction id. This endpoint is used for deferred issuance."
method: POST
path: "/oid4vci/api/deferred_credential"
tags: ["Issuer OID4VCI API"]
---

# Collect credential associated with the bearer token and the transaction id. This endpoint is used for deferred issuance.

`POST /oid4vci/api/deferred_credential`

## Request

- Base URL: `http://localhost:8080`
- URL: `http://localhost:8080/oid4vci/api/deferred_credential`
- Auth: HTTP bearer

Issues a credential for a deferred transaction. Requires a valid bearer token and transaction details in the request body.

## Headers

- `Authorization` string, required
- `DPoP` string

## Request body

- DeferredCredentialEndpointRequest: Request to the deferred credential endpoint.
  - `transaction_id` string, uuid, required: Id received from the create credential request for the deferred flow.
  - `credential_response_encryption` CredentialResponseEncryption
    - `jwk` object, required
    - `enc` string, required

## Response `200`

Credential issued successfully

- CredentialEndpointResponse
  - `credentials` CredentialObjectDto[]
    - `credential` string: One sdjwt credential as string, if multiple credentials are issued each is wrapped in a separate CredentialObjectDto object.

## Other responses

- `202`: Credential issuance still pending — retry with the transaction_id
- `400`: Invalid request or validation error. Includes error code invalid_proof if the key attestation is invalid or cannot be validated. No details about the cause are returned.
- `401`: Unauthorized
- `500`: Internal Server Error

## Changes

- **2026-09-16** `5f1ad9f9b9c2`: 2 breaking, 3 info
  - the response's body type changed from `string` to `object` for status `401`
  - removed the media type `application/jwt` for the response with the status `401`
  - added the non-success response with the status `500`
  - added the optional property `error` to the response with the `401` status
  - …1 more
- **2026-07-10** `326f17103133`: 2 warning
  - removed the optional property `interval` from the response with the `200` status
  - removed the optional property `transaction_id` from the response with the `200` status
- **2026-07-10** `9ae4c8794bda`: 2 breaking, 5 info
  - the response's body type changed from `string` to `object` for status `400`
  - removed the media type `application/jwt` for the response with the status `400`
  - added the optional property `detail` to the response with the `400` status
  - added the optional property `error_description` to the response with the `400` status
  - …3 more
- **2026-05-26** `beb3cc8fa8bf`: 1 info
  - removed the non-success response with the status `404`
- **2026-05-11** `946f3ed5970f`: 1 warning
  - removed the request property `credential_response_encryption/alg`

[Operation history](https://skmtc.dev/swiyu/apis/issuer-service-api/changes/oid4vci/api/deferred_credential/post.md)

---

[API](https://skmtc.dev/swiyu/apis/issuer-service-api.md) - [All operations](https://skmtc.dev/swiyu/apis/issuer-service-api/llms.txt) - [OpenAPI document](https://skmtc.dev/swiyu/apis/issuer-service-api/revisions/f2f3fbbaf461?raw)
