- metadata.businessTransactionId always equals businessTransactionId
- authorization.authorityId always equals authority.authorityId
- intent.authorizationId always equals authorization.authorizationId
Properties
businessTransactionId?
Defaults to a fresh crypto.randomUUID() if omitted.readonlyoptionalbusinessTransactionId?:string
authorityType?
Defaults to “SERVICE”, the correct value for an autonomous agent. Never “AGENT”; that value does not exist server-side.readonlyoptionalauthorityType?:"USER"|"ROLE"|"SERVICE"|"ORGANIZATION"
principalId
The identity this transaction is submitted as. Must match one of the caller API key’s own allowedPrincipalIds server-side, or the request is rejected before policy ever runs. See GET /callers/me.readonlyprincipalId:string
displayName?
readonlyoptionaldisplayName?:string
purpose
Human-readable reason for authorization.purpose.readonlypurpose:string
action
The capability being invoked, e.g. “paytm:refund”.readonlyaction:string
target
readonlytarget:string
parameters
readonlyparameters:Record<string,unknown>
policy
readonlypolicy:PolicyReference
signals
Facts the named policy evaluates. Every fact a policy rule references must appear here, and every boundSignals entry the policy declares is cross-checked against the matching intent field (see the policy’s own boundSignals) before evaluation runs at all. A mismatch is rejected as a binding-tamper attempt, not silently ignored.readonlysignals:Record<string,unknown>
correlationId?
readonlyoptionalcorrelationId?:string
tenantId?
readonlyoptionaltenantId?:string
sourceSystem?
readonlyoptionalsourceSystem?:string
submittedBy?
readonlyoptionalsubmittedBy?:string