Portal Community

How It Works

BizFirstGO registers a DIDComm messaging endpoint (accessible via the platform's DID document). Inbound encrypted messages are received, decrypted, and dispatched to the matching workflow trigger based on the message type.

Trigger Configuration

{
  "triggerType": "DIDCommReceive",
  "config": {
    "acceptedMessageTypes": [
      "https://didcomm.org/present-proof/3.0/presentation",
      "https://didcomm.org/basic-message/2.0/message"
    ],
    "recipientDidCredentialId": 88,
    "filterFromDid": null,
    "signatureRequired": true
  }
}

Trigger Payload ($json)

{
  "messageId": "urn:uuid:abc123",
  "fromDid": "did:web:partner.example.com",
  "toDid": "did:web:acme.bizfirstai.com",
  "messageType": "https://didcomm.org/present-proof/3.0/presentation",
  "body": {
    "presentations~attach": [
      { "data": { "base64": "..." } }
    ]
  },
  "createdTime": "2026-05-25T10:00:00Z",
  "authenticated": true
}

Accessing Sender Identity

// Sender DID (authenticated):
$json.fromDid

// Message body fields:
$json.body.comment
$json.body["presentations~attach"][0].data.base64

// Whether message was cryptographically authenticated:
$json.authenticated   // true = authcrypt; false = anoncrypt
Authentication verification: Always check $json.authenticated === true before trusting sender identity. Anoncrypt messages (authenticated: false) do not prove sender identity — anyone can send them. Route unauthenticated messages to a restricted processing path.