Offering

List all credential offerings

get

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_typestringRequired

Type of credential to be issued

Example: ProofOfPurchase
recipientstringOptional

Optional recipient DID

Example: did:empe:testnet:123456789abcdef
redemption_limitnumber · doubleOptional

Optional redemption limit

Example: 1
expires_atstring · date-timeOptional

Optional expiration date

Example: 2025-05-09T13:14:55.000Z
Responses
201
Created
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"
}

Get a specific offering by ID

get

Retrieves an offering by its ID

Path parameters
idstringRequired

The unique identifier of the offering to retrieve

Responses
200
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"
}

Get QR code for an offering

get

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
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
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"
  }
}