# WebhookPayloadSchemaField

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

One node in a webhook payload schema tree. Describes a single field that a subscriber will see
in the rich `data` body of an outbound webhook for a given event type.


The tree is produced by `IWebhookEntityProjector.DescribeAsync(Type)`, which walks the
payload CLR type through the <em>same</em> exclusion layers the runtime projector applies when
it builds the actual delivered payload. A property that the projector strips (PCI-sensitive,
encrypted, or framework/system) is therefore absent from this schema as well: the schema and
the delivered payload cannot drift because they share one traversal.

## Fields
- `name` (string): The JSON field name (the CLR property name, emitted verbatim by the projector). (nullable)
- `type` (string): The JSON type the value serializes as. One of the values in  `WebhookPayloadSchemaTypes`: `string`, `integer`, `number`,  `boolean`, `datetime`, `object`, or `array`. (nullable)
- `nullable` (boolean): Whether the field can be `null` / absent. Reference types and `Nullable`  value types are nullable; non-nullable value types are not. This is a best-effort hint derived  from the CLR type, not a guarantee that the field is always populated.
- `description` (string): A curated, integrator-facing note about this field, or `null` when its name and  type say enough. Sourced from `WebhookPayloadFieldDescriptions` by the field's  dotted path, so the catalog and the delivered payload still come from one traversal. (nullable)
- `fields` (array<[WebhookPayloadSchemaField](https://devportal.demo.winkpg.io/docs/api/models/WebhookPayloadSchemaField.md)>): For `type` == `object`: the nested fields of the object. Null for scalar fields. (nullable)
- `items` ([WebhookPayloadSchemaField](https://devportal.demo.winkpg.io/docs/api/models/WebhookPayloadSchemaField.md)): For `type` == `array`: a descriptor for the array's element. The element  descriptor's `name` is empty. Null for non-array fields.
- `truncated` (boolean): True when the describe walk stopped at this node because the recursion-depth ceiling or a  type cycle was hit. The actual delivered payload carries a `__truncated` marker in the  same place. Defensive guard: not expected on today's tree-shaped aggregates.

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
