Offering
Retrieves all available offerings
Responses
200
A list of all offerings in the system
application/json
get
GET /v1/offerings HTTP/1.1
Host: api
Accept: */*
200
A list of all offerings in the system
[
{
"id": "text",
"credential_issuer": "text",
"credential_configuration_ids": [
"text"
],
"display": {
"locale": "text",
"name": "text"
},
"grants": {
"authorization_code": {
"issuer_state": "text"
}
},
"credential_subject": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"recipient": "text",
"redemption_limit": 1,
"expires_at": "2025-07-11T16:56:58.144Z",
"redemptions": [
{
"id": "text",
"offering_id": "text",
"credential_id": "text",
"recipient_did": "text",
"redeemed_at": "2025-07-11T16:56:58.144Z",
"offering": {
"id": "text",
"credential_issuer": "text",
"credential_configuration_ids": [
"text"
],
"display": {
"locale": "text",
"name": "text"
},
"grants": {
"authorization_code": {
"issuer_state": "text"
}
},
"credential_subject": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"recipient": "text",
"redemption_limit": 1,
"expires_at": "2025-07-11T16:56:58.144Z",
"redemptions": [
"[Circular Reference]"
]
},
"credential": {
"id": "text",
"configuration_id": "text",
"configuration": {
"id": "text",
"name": "",
"type": "",
"version": 1,
"schemaUri": "text",
"schemaBody": {}
},
"vc": {
"evidence": {},
"credentialStatus": [
{
"id": "text",
"type": "BitstringStatusListEntry",
"statusPurpose": "refresh",
"statusListIndex": 1,
"statusListCredential": "text",
"statusSize": 1,
"statusMessage": [
{
"message": "text",
"status": "text",
"ANY_ADDITIONAL_PROPERTY": "anything"
}
]
}
],
"credentialSchema": {
"type": "JsonSchemaValidator2018",
"id": "text"
},
"expirationDate": "text",
"proof": {
"challange": "text",
"nonce": "text",
"jws": "text",
"proofValue": "text",
"proofPurpose": "assertionMethod",
"verificationMethod": "text",
"created": "text",
"type": "EcdsaSecp256k1Signature2019"
},
"credentialSubject": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"issuanceDate": "text",
"issuer": {
"name": "text",
"id": "text"
},
"id": "text",
"type": [
"text"
],
"@context": [
"text"
]
},
"revoked": false
}
}
]
}
]
Create a new credential offering with QR code
Validates the credential subject against the schema and creates an offering
that can be claimed by a holder. Generates a QR code for the offering.
post
Creates a new credential offering
Authorizations
Body
Request containing credential type, subject data and optional recipient
credential_typestringRequiredExample:
Type of credential to be issued
ProofOfPurchase
recipientstringOptionalExample:
Optional recipient DID
did:empe:testnet:123456789abcdef
redemption_limitnumber · doubleOptionalExample:
Optional redemption limit
1
expires_atstring · date-timeOptionalExample:
Optional expiration date
2025-05-09T13:14:55.000Z
Responses
201
Created
application/json
404
Not Found
application/json
post
POST /v1/offerings HTTP/1.1
Host: api
x-client-secret: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 237
{
"credential_type": "ProofOfPurchase",
"credential_subject": {
"ticket": "Concert Ticket",
"seat": "A12",
"description": "Super concert"
},
"recipient": "did:empe:testnet:123456789abcdef",
"redemption_limit": 1,
"expires_at": "2025-05-09T13:14:55.000Z"
}
{
"id": "830e3227-c36d-4e96-96a6-71701da6752b",
"credential_issuer": "http://localhost:3000",
"credential_configuration_ids": [
"ProofOfPurchase"
],
"display": {
"name": "Empe",
"locale": "en-US"
},
"grants": {
"authorization_code": {
"issuer_state": "tHnoFiydCIqgvY88-DFc5gFNrqRMMS8y"
}
},
"qr_code_url": "http://localhost:3000/api/v1/issuer-qrcode-data/ddd07d52-71ac-4f09-9f67-0ab8506c30d2",
"offering_id": "830e3227-c36d-4e96-96a6-71701da6752b",
"offering_full_url": "http://localhost:3000/api/v1/offering/830e3227-c36d-4e96-96a6-71701da6752b",
"redemption_limit": 10,
"expires_at": "2025-05-09T13:14:55.000Z"
}
Retrieves an offering by its ID
Path parameters
idstringRequired
The unique identifier of the offering to retrieve
Responses
200
Found
application/json
404
Not Found
application/json
get
GET /v1/offerings/{id} HTTP/1.1
Host: api
Accept: */*
{
"id": "830e3227-c36d-4e96-96a6-71701da6752b",
"credential_issuer": "http://localhost:3000",
"credential_configuration_ids": [
"ProofOfPurchase"
],
"display": {
"name": "Empe",
"locale": "en-US"
},
"grants": {
"authorization_code": {
"issuer_state": "tHnoFiydCIqgvY88-DFc5gFNrqRMMS8y"
}
},
"qr_code_url": "http://localhost:3000/api/v1/issuer-qrcode-data/ddd07d52-71ac-4f09-9f67-0ab8506c30d2",
"offering_id": "830e3227-c36d-4e96-96a6-71701da6752b",
"offering_full_url": "http://localhost:3000/api/v1/offering/830e3227-c36d-4e96-96a6-71701da6752b",
"redemption_limit": 10,
"expires_at": "2025-05-09T13:14:55.000Z"
}
Retrieves the QR code for a specific offering
Path parameters
idstringRequired
The unique identifier of the offering
Responses
200
The QR code data for the offering
application/json
Responsestring
404
Not Found
application/json
get
GET /v1/offerings/{id}/qr-code HTTP/1.1
Host: api
Accept: */*
text
Issue a credential from an offering
Creates a verifiable credential from an offering and assigns it to the authenticated holder
post
Issues a credential from an existing offering
Authorizations
Path parameters
idstringRequired
The unique identifier of the offering to issue
Responses
200
Success
application/json
401
Unauthorized
application/json
404
Not Found
application/json
post
POST /v1/offerings/{id}/claim HTTP/1.1
Host: api
Authorization: Bearer JWT
Accept: */*
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"vc": {
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"type": [
"VerifiableCredential"
],
"id": "urn:uuid:d290f1ee-6c54-4b01-90e6-d701748f0851",
"issuer": "did:empe:0x1234567890abcdef",
"issuanceDate": "2023-01-01T00:00:00Z"
}
}