Skip to content

Get credential offer.

Request

Returns the current status of a credential offer created via POST /b2b/v1/credential-offers. Poll this endpoint until the status is no longer `pending`.

Security
BearerAuth
Path
offerIdstring, (uuid)required
Headers
X-Org-Idstring, (uuid)required

Organization the call is acting on. The authenticated service user must be a member of this organization in DeepAdmin; otherwise the request returns 404.

X-Environmentstringrequired

Environment the call is scoped to. Resources are isolated per environment.

Enum:"beta""production"
curl -i -X GET \
  'https://docs.deepcredentials.swiss/_mock/docs/openapi/credential-offers-v1/b2b/v1/credential-offers/{offerId}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'X-Environment: beta' \
  -H 'X-Org-Id: 497f6eca-6276-4993-bfeb-53cbbbba6f08'

Responses

Success response

Bodyapplication/json
claimsobjectrequired

Claim values for the credential.

completed_atstring, (date-time)

Set when the offer leaves pending (issued, failed, or expired).

created_atstring, (date-time)required

When the offer was created (RFC3339).

credential_definitionobject(b2b.credentialDefinitionRef)required

Credential definition reference.

credential_validity_secondsinteger, (int64)

Credential lifetime to apply at issuance (SD-JWT exp = iat + N). Absent means the credential will be issued without an exp claim.

environmentstringrequired

Swiyu environment: "beta" or "production".

error_codestring

Machine-readable failure reason when status is failed or expired.

error_descriptionstring

Human-readable error detail when status is failed or expired.

expires_atstring, (date-time)required

When a pending offer expires if not completed (RFC3339).

idstring, (uuid)required

Offer id (matches the value returned at creation time). UUID v4 identifier.

Example:"550e8400-e29b-41d4-a716-446655440000"
invitation_idstring, (uuid)

InvitationID / SelfServiceRequestID expose the upstream lineage anchors when this offer was created from one. nil for plain portal or B2B offers.

Example:"550e8400-e29b-41d4-a716-446655440000"
issued_credential_idstring, (uuid)

Only when status is issued: ID of the issued credential. UUID v4 identifier.

Example:"550e8400-e29b-41d4-a716-446655440000"
qr_content_base64string

Only when status is pending: Base64-encoded PNG QR code (240×240 px).

reference_idstring

Your reference_id from the create request, if any.

self_service_request_idstring, (uuid)

UUID v4 identifier.

Example:"550e8400-e29b-41d4-a716-446655440000"
sourcestringrequired

Source records where this offer originated: "portal" (admin UI), "b2b" (API caller), "invitation" (redeemed email invitation), or "self_service" (admin approval of a public request). Stable at row level — captured at create and never mutated.

statusstring(issuer.OfferStatus)required

Current lifecycle state of the offer.

Enum:"pending""issued""accepted""expired""failed"
Response
{ "id": "d4e5f6a7-b8c9-0123-4567-89abcdef0123", "environment": "beta", "credential_definition": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "vct": "person-id-vct", "name": "Person ID" }, "status": "issued", "claims": { "given_name": "Max", "family_name": "Mustermann", "date_of_birth": "1990-01-15", "is_over_18": true }, "reference_id": "order-12345", "issued_credential_id": "f1e2d3c4-b5a6-7890-1234-567890abcdef", "expires_at": "2026-03-29T12:10:00Z", "created_at": "2026-03-29T12:00:00Z", "completed_at": "2026-03-29T12:01:30Z" }