Skip to main content

Event Catalog

The Business Wallet emits a small, deliberately focused set of domain events to integration channels. Every event:

  • Is wrapped in a CloudEvents 1.0 envelope.
  • Has a type ending in .v<major> — backwards-compatible additions reuse the same major version, breaking changes mint a new one.
  • Has a public JSON Schema at ${WALLET_BASE_URL}/api/public/schemas/integration/<slug>/v1.json (no authentication required) which is also pinned in the envelope's dataschema attribute.

Catalog at a glance

Event typeTriggersubject pattern
com.credenco.businesswallet.wallet.created.v1A Business Wallet is created.wallets/{walletExternalKey}
com.credenco.businesswallet.identifier.created.v1A wallet identifier (DID, X509, or JWK) is created.wallets/{walletExternalKey}/identifiers/{identifierExternalKey}
com.credenco.businesswallet.credential.issued.v1An issuer-side credential is issued and stored by the Business Wallet.wallets/{walletExternalKey}/credentials/{credentialUuid}
com.credenco.businesswallet.credential.revoked.v1An issued credential is revoked.wallets/{walletExternalKey}/credentials/{credentialUuid}
com.credenco.businesswallet.credential.received.v1A holder-side credential is received and stored by the Business Wallet.wallets/{walletExternalKey}/credentials/{credentialExternalKey}
com.credenco.businesswallet.presentation.verified.v1A verify session reaches the verified state.wallets/{walletExternalKey}/verify-sessions/{sessionKey}
com.credenco.businesswallet.publicprofile.updated.v1A Business Wallet's public profile is updated.wallets/{walletExternalKey}

All event types follow the naming convention com.credenco.businesswallet.<aggregate>.<verb>.v<major>. The trailing .v<major> segment is the major version. Backward-compatible additions (new optional fields) ship as the same .v1 type; breaking changes ship as a new type (.v2) so existing consumers keep working.

JSON Schemas are served at ${WALLET_BASE_URL}/api/public/schemas/integration/<slug>/v1.json (no authentication required) and are pinned per-event via the dataschema envelope attribute.


com.credenco.businesswallet.wallet.created.v1

Trigger. Fired exactly once when a Business Wallet is created — either via the UI, the public API, or onboarding. The event is published atomically with the wallet itself, so consumers will never observe a wallet that the wallet itself does not yet know about.

Subject. wallets/{walletExternalKey}

Data fields.

FieldTypeDescription
walletExternalKeystring (UUID)Stable external identifier of the wallet. Match this against your own records.
displayNamestringHuman-readable name shown in the wallet UI.
emailstring | nullPrimary contact email, if provided during creation.
websitestring | nullPrimary website URL, if provided.
phoneNumberstring | nullPrimary phone number, if provided.
addressobject | nullPostal address with street, postalCode, city, country. Any inner field may be null.
createdAtstring (RFC 3339)UTC timestamp of wallet creation.
createdBystringSubject (sub) of the principal that created the wallet — a human user ID or an OAuth2 client ID.

Sample envelope (binary CloudEvents over HTTP).

POST /webhooks/credenco HTTP/1.1
Host: receiver.example.com
Content-Type: application/json
ce-specversion: 1.0
ce-type: com.credenco.businesswallet.wallet.created.v1
ce-source: /credenco/wallets
ce-id: 9c7d6b1f-1d17-4c2c-8a5d-2e0f6b1a4f10
ce-time: 2026-05-01T09:42:17.812Z
ce-subject: wallets/3f2504e0-4f89-41d3-9a0c-0305e82c3301
ce-dataschema: https://wallet.acc.credenco.com/api/public/schemas/integration/wallet-created/v1.json
ce-datacontenttype: application/json
ce-walletexternalkey: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
ce-correlationid: 5b1e2dca-6c3a-4b9b-9f0d-7c12da3a1b88
X-Credenco-Signature: t=1746094937,v1=2c1f8e30…

{
"walletExternalKey": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"displayName": "Acme Healthcare B.V.",
"email": "ops@acme-healthcare.example",
"website": "https://acme-healthcare.example",
"phoneNumber": "+31 20 555 0100",
"address": {
"street": "Tolnasingel 3",
"postalCode": "2411 PV",
"city": "Bodegraven",
"country": "NL"
},
"createdAt": "2026-05-01T09:42:17.812Z",
"createdBy": "auth0|admin@acme-healthcare.example"
}

JSON Schema. https://wallet.acc.credenco.com/api/public/schemas/integration/wallet-created/v1.json


com.credenco.businesswallet.identifier.created.v1

Trigger. Fired exactly once when a wallet identifier (DID, X509 certificate, or JWK) is created. Like wallet.created.v1, the event is published atomically with the underlying change so it is never lost.

Subject. wallets/{walletExternalKey}/identifiers/{identifierExternalKey}

Data fields.

FieldTypeDescription
walletExternalKeystring (UUID)External identifier of the owning wallet.
identifierExternalKeystring (UUID)Stable external identifier of the identifier itself.
identifierTypeenumOne of DID, X509, JWK.
identifierstringThe actual identifier value — a DID URI, an X509 subject, or a JWK thumbprint.
displayNamestringHuman-readable label set by the operator.
didTypestring | nullPopulated only when identifierType = DID (e.g. did:web, did:key, did:ebsi). null for X509 and JWK.
didEnvironmentstring | nullPopulated only when identifierType = DID and the DID method has environments (e.g. pilot, production for did:ebsi). null otherwise.
createdAtstring (RFC 3339)UTC timestamp of identifier creation.
createdBystringSubject of the principal that created the identifier.

Sample envelope (binary CloudEvents over HTTP).

POST /webhooks/credenco HTTP/1.1
Host: receiver.example.com
Content-Type: application/json
ce-specversion: 1.0
ce-type: com.credenco.businesswallet.identifier.created.v1
ce-source: /credenco/wallets
ce-id: 7e2b1a86-9c1e-4d2e-b6a4-1f8db4a90f22
ce-time: 2026-05-01T09:43:02.401Z
ce-subject: wallets/3f2504e0-4f89-41d3-9a0c-0305e82c3301/identifiers/c4a4e34b-1d6d-4b9a-9e6f-3a7d6f8b1e02
ce-dataschema: https://wallet.acc.credenco.com/api/public/schemas/integration/identifier-created/v1.json
ce-datacontenttype: application/json
ce-walletexternalkey: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
ce-correlationid: 5b1e2dca-6c3a-4b9b-9f0d-7c12da3a1b88
X-Credenco-Signature: t=1746094982,v1=8d4a91c2…

{
"walletExternalKey": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"identifierExternalKey": "c4a4e34b-1d6d-4b9a-9e6f-3a7d6f8b1e02",
"identifierType": "DID",
"identifier": "did:web:acme-healthcare.example",
"displayName": "Primary issuer DID",
"didType": "did:web",
"didEnvironment": null,
"createdAt": "2026-05-01T09:43:02.401Z",
"createdBy": "auth0|admin@acme-healthcare.example"
}

JSON Schema. https://wallet.acc.credenco.com/api/public/schemas/integration/identifier-created/v1.json


com.credenco.businesswallet.credential.issued.v1

Trigger. Fired when an issuer-side credential is issued and stored by the Business Wallet. The event is published atomically with the issuance so consumers never observe an issued credential the wallet does not yet know about. The payload carries external and business identifiers only, never the credential document or any subject claims.

Subject. wallets/{walletExternalKey}/credentials/{credentialUuid}

Data fields.

FieldTypeDescription
walletExternalKeystring (UUID)External identifier of the owning wallet.
credentialUuidstringStable business identifier of the issued credential.
credentialFormatstringCredential format, one of JWT, SD_JWT, LDP, STATUSLIST, MDOC.
credentialConfigurationIdstring | nullIssuer credential-configuration identifier the credential was issued from, if known.
issuanceDatestring (ISO-8601 date-time)Timestamp the credential was issued.
revocationUuidstring | nullRevocation list entry key, present when the credential is revocable.

Sample envelope (binary CloudEvents over HTTP).

POST /webhooks/credenco HTTP/1.1
Host: receiver.example.com
Content-Type: application/json
ce-specversion: 1.0
ce-type: com.credenco.businesswallet.credential.issued.v1
ce-source: /credenco/wallets
ce-id: 0b8c1d2e-3f4a-4b5c-9d6e-7a8b9c0d1e2f
ce-time: 2026-05-04T09:42:17.812Z
ce-subject: wallets/3f2504e0-4f89-41d3-9a0c-0305e82c3301/credentials/11111111-1111-1111-1111-111111111111
ce-dataschema: https://wallet.acc.credenco.com/api/public/schemas/integration/credential-issued/v1.json
ce-datacontenttype: application/json
ce-walletexternalkey: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
ce-correlationid: 5b1e2dca-6c3a-4b9b-9f0d-7c12da3a1b88
X-Credenco-Signature: t=1746351737,v1=9a1b2c3d…

{
"walletExternalKey": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"credentialUuid": "11111111-1111-1111-1111-111111111111",
"credentialFormat": "SD_JWT",
"credentialConfigurationId": "DiplomaCredential",
"issuanceDate": "2026-05-04T09:42:17.812",
"revocationUuid": "22222222-2222-2222-2222-222222222222"
}

JSON Schema. https://wallet.acc.credenco.com/api/public/schemas/integration/credential-issued/v1.json


com.credenco.businesswallet.credential.revoked.v1

Trigger. Fired when an issued credential is revoked. The payload carries external and business identifiers only, never the credential document.

Subject. wallets/{walletExternalKey}/credentials/{credentialUuid}

Data fields.

FieldTypeDescription
walletExternalKeystring (UUID)External identifier of the owning wallet.
credentialUuidstringStable business identifier of the revoked credential.
credentialFormatstringCredential format, one of JWT, SD_JWT, LDP, STATUSLIST, MDOC.
statusstringCredential status after revocation, one of VALID, INVALID, EXPIRED. A revoked credential is INVALID.
issuanceDatestring (ISO-8601 date-time)Timestamp the credential was originally issued.
revocationUuidstring | nullRevocation list entry key.

Sample envelope (binary CloudEvents over HTTP).

POST /webhooks/credenco HTTP/1.1
Host: receiver.example.com
Content-Type: application/json
ce-specversion: 1.0
ce-type: com.credenco.businesswallet.credential.revoked.v1
ce-source: /credenco/wallets
ce-id: 1c9d2e3f-4a5b-4c6d-8e7f-9a0b1c2d3e4f
ce-time: 2026-05-06T11:08:44.219Z
ce-subject: wallets/3f2504e0-4f89-41d3-9a0c-0305e82c3301/credentials/11111111-1111-1111-1111-111111111111
ce-dataschema: https://wallet.acc.credenco.com/api/public/schemas/integration/credential-revoked/v1.json
ce-datacontenttype: application/json
ce-walletexternalkey: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
ce-correlationid: 5b1e2dca-6c3a-4b9b-9f0d-7c12da3a1b88
X-Credenco-Signature: t=1746529724,v1=4d5e6f7a…

{
"walletExternalKey": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"credentialUuid": "11111111-1111-1111-1111-111111111111",
"credentialFormat": "SD_JWT",
"status": "INVALID",
"issuanceDate": "2026-05-04T09:42:17.812",
"revocationUuid": "22222222-2222-2222-2222-222222222222"
}

JSON Schema. https://wallet.acc.credenco.com/api/public/schemas/integration/credential-revoked/v1.json


com.credenco.businesswallet.credential.received.v1

Trigger. Fired when a holder-side credential is received and stored by the Business Wallet. The payload carries external identifiers and non-sensitive metadata only, never the credential document or any subject claims.

Subject. wallets/{walletExternalKey}/credentials/{credentialExternalKey}

Data fields.

FieldTypeDescription
walletExternalKeystring (UUID)External identifier of the owning wallet.
credentialExternalKeystring (UUID)Stable external identifier of the received credential.
credentialTypestringCredential type of the received credential.
credentialFormatstringCredential format, one of JWT, SD_JWT, LDP, STATUSLIST, MDOC.
issuerDidstring | nullDID of the credential issuer, when available.
issuanceDatestring (ISO-8601 date-time) | nullIssuer-asserted issuance timestamp, when present in the credential.
createdAtstring (ISO-8601 date-time)Timestamp the credential was stored in the wallet.

Sample envelope (binary CloudEvents over HTTP).

POST /webhooks/credenco HTTP/1.1
Host: receiver.example.com
Content-Type: application/json
ce-specversion: 1.0
ce-type: com.credenco.businesswallet.credential.received.v1
ce-source: /credenco/wallets
ce-id: 2d0e3f4a-5b6c-4d7e-9f8a-0b1c2d3e4f5a
ce-time: 2026-05-04T09:43:01.004Z
ce-subject: wallets/3f2504e0-4f89-41d3-9a0c-0305e82c3301/credentials/33333333-3333-3333-3333-333333333333
ce-dataschema: https://wallet.acc.credenco.com/api/public/schemas/integration/credential-received/v1.json
ce-datacontenttype: application/json
ce-walletexternalkey: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
ce-correlationid: 5b1e2dca-6c3a-4b9b-9f0d-7c12da3a1b88
X-Credenco-Signature: t=1746351781,v1=7a8b9c0d…

{
"walletExternalKey": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"credentialExternalKey": "33333333-3333-3333-3333-333333333333",
"credentialType": "DiplomaCredential",
"credentialFormat": "SD_JWT",
"issuerDid": "did:web:acme-healthcare.example",
"issuanceDate": "2026-05-04T09:42:17.812",
"createdAt": "2026-05-04T09:43:01.004"
}

JSON Schema. https://wallet.acc.credenco.com/api/public/schemas/integration/credential-received/v1.json


com.credenco.businesswallet.presentation.verified.v1

Trigger. Fired when a verify session reaches the verified state. A verify session reaches the verified state at most once, so this event is delivered once per session. The payload carries the verify-session business key, the verdict, and the presented credential types only, never the VP tokens or the presented credential bodies.

Subject. wallets/{walletExternalKey}/verify-sessions/{sessionKey}

Data fields.

FieldTypeDescription
walletExternalKeystring (UUID)External identifier of the verifying wallet.
sessionKeystringVerify-session business key (the external correlation id).
verifiedbooleanVerification verdict.
presentedCredentialTypesarray of stringCredential types presented in the session. May be empty.
verifiedAtstring (ISO-8601 date-time)Timestamp the session reached the verified state.

Sample envelope (binary CloudEvents over HTTP).

POST /webhooks/credenco HTTP/1.1
Host: receiver.example.com
Content-Type: application/json
ce-specversion: 1.0
ce-type: com.credenco.businesswallet.presentation.verified.v1
ce-source: /credenco/wallets
ce-id: 3e1f4a5b-6c7d-4e8f-9a0b-1c2d3e4f5a6b
ce-time: 2026-05-04T09:44:12.330Z
ce-subject: wallets/3f2504e0-4f89-41d3-9a0c-0305e82c3301/verify-sessions/44444444-4444-4444-4444-444444444444
ce-dataschema: https://wallet.acc.credenco.com/api/public/schemas/integration/presentation-verified/v1.json
ce-datacontenttype: application/json
ce-walletexternalkey: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
ce-correlationid: 5b1e2dca-6c3a-4b9b-9f0d-7c12da3a1b88
X-Credenco-Signature: t=1746351852,v1=0d1e2f3a…

{
"walletExternalKey": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"sessionKey": "44444444-4444-4444-4444-444444444444",
"verified": true,
"presentedCredentialTypes": ["DiplomaCredential", "IdentityCredential"],
"verifiedAt": "2026-05-04T09:44:12.330"
}

JSON Schema. https://wallet.acc.credenco.com/api/public/schemas/integration/presentation-verified/v1.json


com.credenco.businesswallet.publicprofile.updated.v1

Trigger. Fired whenever a Business Wallet's public profile is updated, through either the full replace (PUT) or the partial update (PATCH) endpoint. Every successful update emits one event carrying a full snapshot of the current public profile plus the last-modified audit fields.

Subject. wallets/{walletExternalKey}

Data fields.

FieldTypeDescription
walletExternalKeystring (UUID)External identifier of the wallet.
displayNamestringPublic display name.
logostringLogo, as a URL or a data: URI.
emailstringPublic contact email.
websitestringPublic website URL.
phoneNumberstringPublic contact phone number.
addressobjectNested street, postalCode, city, country.
geoLocationobjectNested latitude, longitude (strings).
lastModifiedAtstring (ISO-8601 date-time)Timestamp of this update.
lastModifiedBystringPrincipal that performed the update.

Sample envelope (binary CloudEvents over HTTP).

POST /webhooks/credenco HTTP/1.1
Host: receiver.example.com
Content-Type: application/json
ce-specversion: 1.0
ce-type: com.credenco.businesswallet.publicprofile.updated.v1
ce-source: /credenco/wallets
ce-id: 7c9e6679-7425-40de-944b-e07fc1f90ae7
ce-time: 2026-05-04T09:45:03.120Z
ce-subject: wallets/3f2504e0-4f89-41d3-9a0c-0305e82c3301
ce-dataschema: https://wallet.acc.credenco.com/api/public/schemas/integration/public-profile-updated/v1.json
ce-datacontenttype: application/json
ce-walletexternalkey: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
ce-correlationid: 5b1e2dca-6c3a-4b9b-9f0d-7c12da3a1b88
X-Credenco-Signature: t=1746351903,v1=1a2b3c4d…

{
"walletExternalKey": "3f2504e0-4f89-41d3-9a0c-0305e82c3301",
"displayName": "Acme Healthcare B.V.",
"logo": "https://cdn.credenco.example/logos/acme.png",
"email": "ops@acme-healthcare.example",
"website": "https://acme-healthcare.example",
"phoneNumber": "+31 20 555 0100",
"address": {
"street": "Keizersgracht 123",
"postalCode": "1015 CJ",
"city": "Amsterdam",
"country": "NL"
},
"geoLocation": {
"latitude": "52.3676",
"longitude": "4.9041"
},
"lastModifiedAt": "2026-05-04T09:45:03.120",
"lastModifiedBy": "martijn"
}

JSON Schema. https://wallet.acc.credenco.com/api/public/schemas/integration/public-profile-updated/v1.json


Versioning

The trailing .v1 segment in every event type is the major version. We follow these rules:

  • Adding a new optional field to the data payload is backward compatible and ships as the same v1 type. Build your receivers so that unknown fields are ignored.
  • Removing a field, renaming a field, or changing a field's type is breaking and ships as a new major version (v2). The old v1 type is kept emitting in parallel for at least one major release cycle so you have time to migrate.
  • New event types are added freely; existing receivers are never auto-subscribed to them.

Pin the schema you tested against in your receiver code by storing the dataschema attribute alongside any persisted event.