Appearance
Issuer OID4VCI Support
When creating an OID4VCI Credential Offer, the inputs include the schema, format, and claim values, and the output is the generated Credential Offer.
As a prerequisite, you must configure a value with the key oid4vci has to be set according to Issuer Configuration, which must contain one or more OID4VCI credential configurations, using one of the DIDs registered in your Wallet Service.
API Reference
See API Reference.
Create an OID4VCI Credential Offer
The following request returns an OID4VCI Credential Offer.
Request
Example:
bash
curl -X POST "https://api.godiddy.com/1.0.0/universal-issuer-oid4vci/v1/authorize/pre-authorize" \
-H "Authorization: Bearer b082c420-df67-4b06-899c-b7c51d75fba0" \
-H "Content-Type: application/json" \
-d '{
"claims": {
"issuanceDate": "2023-11-15T10:00:00-07:00",
"expirationDate": "2027-11-15T12:00:00-06:00",
"credentialSubject": {
"family_name": "Abt",
"given_name": "Bernd",
"birth_date": "1962.10.26",
"age_over_12": true,
"age_over_14": true,
"age_over_16": true,
"age_over_18": true,
"age_over_21": true,
"age_in_years": 62,
"age_birth_year": 1992,
"family_name_birth": "Abt",
"given_name_birth": "Bernd",
"birth_place": "Innsbrucl",
"birth_country": "AT",
"birth_state": "Tirol",
"birth_city": "Innsbruck",
"resident_address": "Dorfstrasse 58,3100 St. Poelten",
"resident_country": "AT",
"resident_state": "Niederoesterreich",
"resident_city": "St. Poelten",
"resident_postal_code": "3100",
"resident_street": "Dorfstrasse",
"resident_house_number": "58",
"sex": 0,
"nationality": [
"AT"
],
"issuance_date": "2025-03-13T13:40:05Z",
"expiry_date": "2027-03-13T13:40:05Z",
"issuing_authority": "Miniwahr",
"document_number": "50b84d41-8d9b-48f0-b5b6-e3b4a7e48455",
"administrative_number": "",
"issuing_country": "AT",
"issuing_jurisdiction": "AT-0",
"personal_administrative_number": "6b25b9ce-8da7-40d4-9ef7-550719aa361b",
"email_address": "abt.bernd@example.com",
"mobile_phone_number": "+431234567890"
}
},
"schema": "EuPid2023_sd_jwt_dc"
}'1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Request Body
- Type:
Object - Content-Type:
application/json - Required: Yes
Example:
json
{
"claims": {
"given_name": "John",
"family_name": "Doe",
"birthdate": "1990-01-01"
},
"schema": "example_schma_1",
"txCode": {
"input_mode": "numeric",
"length": 6,
"description": "Enter the 6-digit code"
},
"txPin": "123456"
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Fields:
claims(Required): Map of credential claims to be issuedschema(Required): The schema of the credential. This value must be configured in the Issuer Configuration.txCode(Optional): Transaction code configurationtxPin(Optional): Transaction PIN used for additional security.receiverEmail(Optional): Optional field to send the Credential Offer (QR) via the email.receiverName(Optional): Name of the email receiver.
Success Response
- Status Code:
200 OK - Content-Type:
application/json - Body:
PreAuthResponseobject
Example:
json
{
"credentialOfferUrl": "openid-credential-offer://?credential_offer=eyJ...",
"requestId": "abc123def456",
"issuanceStatusUrl": "https://api.godiddy.com/1.0.0/universal-issuer-oid4vci/v1/issuance-status?requestId=db7e3771-4df7-4424-8e0b-5813e7e3d161"
}1
2
3
4
5
2
3
4
5
Fields:
credentialOfferUrl: The Credential Offer URL used to initiate the credential issuance.requestId: Request IDissuanceStatusUrl: URL to track the VC issuance state
Error Responses
400 Bad Request- Description: Invalid request parameters or configuration
- Example: Invalid account ID or malformed request body
500 Internal Server Error- Description: Server-side error during processing
- Example: Database connection issues or configuration errors
Track the OID4VCI Credential Issuance
The OID4VCI Credential Offer API includes an issuanceStatusUrl in the response, which can be used to track the issuance process.
Request
bash
curl -X GET "https://api.godiddy.com/1.0.0/universal-issuer-oid4vci/v1/issuance-status?requestId=db7e3771-4df7-4424-8e0b-5813e7e3d161" \
-H "Authorization: Bearer b082c420-df67-4b06-899c-b7c51d75fba0"1
2
2
Success Response
- Status Code:
200 OK - Content-Type:
application/json - Body:
PreAuthResponseobject
Example:
json
{
"metadata": {},
"credential": "ey....",
"requestId": "db7e3771-4df7-4424-8e0b-5813e7e3d161",
"status": "INITIALIZED"
}1
2
3
4
5
6
2
3
4
5
6
Fields:
metadata: Credential related metadatacredential: The issued verifiable credential. This may be a string (for JWT-VC and SD-JWT formats) or an object (for JSON-LD credentials).requestId: VC issuance request IDstatus: Status of the issuance. Values areINITIALIZED | IN_PROGRESS | ISSUED | FAILED
API Endpoints
The application exposes the following endpoints:
OID4VCI specification version v1 internal endpoints
POST /1.0.0/universal-issuer-oid4vci/v1/authorize/pre-authorize- Pre-authorize credential issuanceGET /1.0.0/universal-issuer-oid4vci/v1/issuance-status- Track the VC issuance state
OID4VCI specification version draft-15 external endpoints
POST /1.0/{accountId}/v1/token- Exchanges an authorization code for an access token.POST /1.0/{accountId}/v1/credential- Issue verifiable credentialPOST /1.0/{accountId}/v1/nonce- Get cryptographic nonceGET /.well-known/oauth-authorization-server/1.0/{accountId}/v1- OAuth authorization server metadataGET /.well-known/openid-credential-issuer/1.0/{accountId}/v1- Credential issuer metadataGET /1.0/{accountId}/v1/jwks- JSON Web Key Set