Proven Webhook Documentation
Proven Webhook Documentation
Overview
Webhooks provide real-time notifications about events on Proven agents. They are delivered as HTTP POST requests to a configured endpoint.
Webhook Structure
Headers:
Header
Example Value
Description
Content-Type
application/json
Request content type
X-API-Key
24680AEIOUY
Authentication key
User-Agent
node-fetch/1.0
Client identifier
Content-Length
1584
Request body size in bytes
Accept-Encoding
gzip,deflate
Supported compression methods
Payload Format:
{
"event": "event_type",
"webhook": {
// Event-specific data
}
}
Webhook Events
Description: This is triggered when a connection is fully established.
Event Type: connection:completed
Payload Example:
{
"event": "connection:completed",
"webhook": {
"connection_id": "13eeacd4-0c4e-495e-81cc-d66c6eeb8545",
"invitation_key": "2St9MAnpToLcnUxhfskNBYgNxzS4vzAy42kSWPF8AY9e",
"contact_id": null,
"wallet_id": "f161e7a3-9a88-4f2c-a988-cc9cf3fbea2f",
"discovered_features": [
{
"pid": "https://didcomm.org/present-proof/2.0",
"roles": ["prover", "verifier"]
},
// ... additional protocol features
]
}
}
AnonCred/JSON-LD Credential Issued
Description: This is triggered when a credential is successfully issued.
Event Type: credentials:done
Payload Example:
{
"event": "credentials:done",
"webhook": {
"state": "done",
"connection_id": "13eeacd4-0c4e-495e-81cc-d66c6eeb8545",
"cred_ex_id": "794657e2-187e-4642-b5f2-77dd27138a49",
"thread_id": "d92933ef-74d8-4e53-9d4a-6526feb991c5",
"wallet_id": "f161e7a3-9a88-4f2c-a988-cc9cf3fbea2f",
"role": "issuer",
"initiator": "self",
"created_at": "2025-03-13T22:14:41.138935Z",
"updated_at": "2025-03-13T22:15:02.479961Z",
"credential_id": null
}
}
AnonCred/JSON-LD Presentation Verified
Description: This is triggered when a presentation is successfully verified.
Event Type: presentation:verified
Payload Example:
{
"event": "presentation:verified",
"webhook": {
"state": "done",
"connection_id": "13eeacd4-0c4e-495e-81cc-d66c6eeb8545",
"pres_ex_id": "7ec0d756-58e8-402d-9688-2dc4cd48cf17",
"thread_id": "00b7fe05-79a1-44a8-91bd-8f0fe47f249d",
"wallet_id": "f161e7a3-9a88-4f2c-a988-cc9cf3fbea2f",
"role": "verifier",
"initiator": "self",
"verified": "true",
"created_at": "2025-03-13T22:15:04.202161Z",
"updated_at": "2025-03-13T22:15:14.343137Z"
}
}
OID4VC Issued
Description: This is triggered when a credential is successfully issued.
Event Type: oid4vc-credential:issued
Payload Example:
{
event: 'oid4vc-credential:issued',
webhook: {
exchange_id: 'd3e347d2-e6df-45cf-bb02-27a929311260',
supported_cred_id: '413f8b60-6587-40bd-95ee-58797c3d6543',
credential_subject: {
given_name: 'Alice',
family_name: 'Smith',
something_nested: { key1: { key2: { key3: 'something nested' } } },
source_document_type: 'id_card',
age_equal_or_over: {
'12': true,
'14': true,
'16': true,
'18': true,
'21': true,
'65': false
}
},
verification_method: 'did:sov:NQ6iZJjvwdMzedXHzxX1vf#key-1',
state: 'issued',
issuer_id: 'did:sov:NQ6iZJjvwdMzedXHzxX1vf',
code: 'Naqioo54ryqIAbNbfcWYTg',
token: 'eyJ0eXAiOiAiSldUIiwgImtpZCI6ICJkaWQ6c292Ok5RNmlaSmp2d2RNemVkWEh6eFgxdmYja2V5LTEiLCAiYWxnIjogIkVkRFNBIn0.eyJpZCI6ICJkM2UzNDdkMi1lNmRmLTQ1Y2YtYmIwMi0yN2E5MjkzMTEyNjAiLCAiZXhwIjogMTc0MjA3NDM2Mn0.JffFZI7MgkWyZDLckUpY75flch4HdMqIHnUh1suHAoOOjjQ0OD9nNCNChNl5uCHrWZnrxsT9nQl-npZGqGDIDA'
}
}
OID4VCP Verified
Description: This is triggered when a presentation is successfully verified.
Event Type: presentation:verified
Payload Example:
{
event: 'oid4vc-presentation:verified',
webhook: {
pres_def_id: 'b1c679d4-6edb-4d22-ba65-553dd7f6ef0a',
presentation_id: '28e70110-57b4-494e-b13b-aa728eac88c4',
request_id: '00f70502-0618-4b9e-af9f-e8af07f6edcd',
matched_credentials: {
'ID Card': {
something_nested: { key1: { key2: { key3: 'something nested' } } },
source_document_type: 'id_card',
age_equal_or_over: {},
sub: 'did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6IkFlRzUyZk9oVnliN2VsYWtxVEFwc25ab2RCMkhuRGQ0YzE0d2NtRTRsOWMiLCJ5IjoiLW5VTmljSi0yUVV0UTNaVjBSc0NMMzNEVmVtcFNNUXBheG04VWQ0ZXlSayJ9',
cnf: {
kid: 'did:jwk:eyJrdHkiOiJFQyIsImNydiI6IlAtMjU2IiwieCI6IkFlRzUyZk9oVnliN2VsYWtxVEFwc25ab2RCMkhuRGQ0YzE0d2NtRTRsOWMiLCJ5IjoiLW5VTmljSi0yUVV0UTNaVjBSc0NMMzNEVmVtcFNNUXBheG04VWQ0ZXlSayJ9#0'
},
vct: 'testCard',
iss: 'did:sov:NQ6iZJjvwdMzedXHzxX1vf',
iat: 1741987962,
given_name: 'Alice',
family_name: 'Smith'
}
},
state: 'presentation-valid'
}
}
Basic Message Received
Description: This is triggered when a presentation is successfully verified.
Event Type: webhook:basic-message
Payload Example:
{
event: 'basic-message:received',
webhook: {
connection_id: '9775b821-be93-4980-94d9-e3deaf6698d3',
message_id: '4a977851-e5be-40fd-b3d6-3e01ae249c77',
content: 'New',
state: 'received',
sent_time: '2025-03-14T02:28:57.839Z',
locale: 'en',
wallet_id: '122b480d-2813-42b5-9146-2d359a5dd807'
}
}
Authentication
Header:
x-api-key
(optional)Example:
x-api-key: 24680AEIOUY
Security Considerations
Use the
x-api-key
header (recommended).Use HTTPS for all endpoints.
Verify request signatures if available.
Validate JSON schema of incoming payloads.
Copyright 2025 Indicio PBC, All rights reserved
Last updated
Was this helpful?