{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/signatureapi-com/json-schema/signatureapi-com-event-recipient-event-schema.json",
  "title": "Event.RecipientEvent",
  "description": "An event associated with a recipient. Tracks the recipient's progress through the signing lifecycle, from release to completion, as well as delivery issues and actions like replacement or resending. The `type` field determines which event schema applies.",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/signatureapi-com-openapi.yml#/components/schemas/Event.RecipientEvent",
  "x-schema-role": "model",
  "x-schema-direction": "output",
  "oneOf": [
    {
      "$ref": "#/$defs/Event.RecipientReleased"
    },
    {
      "$ref": "#/$defs/Event.RecipientSent"
    },
    {
      "$ref": "#/$defs/Event.RecipientAccessed"
    },
    {
      "$ref": "#/$defs/Event.RecipientIdentityVerificationStarted"
    },
    {
      "$ref": "#/$defs/Event.RecipientIdentityVerified"
    },
    {
      "$ref": "#/$defs/Event.RecipientIdentityRejected"
    },
    {
      "$ref": "#/$defs/Event.RecipientViewed"
    },
    {
      "$ref": "#/$defs/Event.RecipientCompleted"
    },
    {
      "$ref": "#/$defs/Event.RecipientSoftBounced"
    },
    {
      "$ref": "#/$defs/Event.RecipientHardBounced"
    },
    {
      "$ref": "#/$defs/Event.RecipientRejected"
    },
    {
      "$ref": "#/$defs/Event.RecipientFailed"
    },
    {
      "$ref": "#/$defs/Event.RecipientReplaced"
    },
    {
      "$ref": "#/$defs/Event.RecipientResent"
    }
  ],
  "$defs": {
    "Ceremony.IdentityEvidenceReference": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "title": "Identity Evidence Reference",
      "description": "The provider's own handle on the completed verification. Quote this value back to the provider to retrieve the underlying proof.\n\nThis reference never carries personal data. It appears in the `recipient.identity_verified` and `recipient.identity_rejected` events and in the envelope audit log.\n"
    },
    "Ceremony.IdentityVerificationMethod": {
      "x-schema-role": "property",
      "x-schema-direction": "any",
      "type": "string",
      "title": "Identity Verification Method",
      "description": "The identity verification the recipient must complete. Required — there is no automatic selection.\n\n- `document_selfie` -- The recipient photographs a government-issued identity document and takes a selfie for a liveness and face match.\n- `eid` -- The recipient authenticates with a national or government-issued electronic identity scheme.\n- `video_ident` -- The recipient completes a video session with an agent who checks their identity document.\n- `reuse_credential` -- The recipient reuses an identity credential they already hold with the provider, without verifying again.\n",
      "x-enum-descriptions": {
        "document_selfie": "Identity document photo plus a selfie liveness and face match.",
        "eid": "National or government-issued electronic identity scheme.",
        "video_ident": "Live video session with an agent.",
        "reuse_credential": "Reuse of an identity credential the recipient already holds with the provider."
      },
      "enum": [
        "document_selfie",
        "eid",
        "video_ident",
        "reuse_credential"
      ]
    },
    "Ceremony.IdentityVerificationProvider": {
      "x-schema-role": "property",
      "x-schema-direction": "any",
      "type": "string",
      "title": "Identity Verification Provider",
      "description": "The identity verification provider that performs the check. Optional — defaults to `stub`.\n\n- `stub` -- A built-in test provider that simulates the verification without contacting a real identity service.\n",
      "x-enum-descriptions": {
        "stub": "Built-in test provider that simulates the verification."
      },
      "default": "stub",
      "enum": [
        "stub"
      ]
    },
    "Envelope.Id": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "format": "uuid",
      "title": "Envelope Id",
      "description": "The unique identifier of the envelope, in UUID format."
    },
    "Envelope.Metadata": {
      "x-schema-role": "property",
      "x-schema-direction": "any",
      "type": "object",
      "title": "Envelope Metadata",
      "description": "Set of key-value pairs to store additional information about the envelope. Use metadata to attach internal reference IDs, tracking numbers, or other data that connects envelopes to your systems.\n\nMetadata is included in all API responses and webhook payloads (in the `data.envelope_metadata` field), making it useful for correlating events with your records.\n\nUp to 10 keys are allowed. Keys can be up to 32 characters (letters, digits, and underscores). Values can be up to 1,000 characters.\n\nUse metadata only for ordinary business identifiers that are appropriate to store with an envelope.\n",
      "unevaluatedProperties": false,
      "maxProperties": 10,
      "default": {},
      "additionalProperties": {
        "type": "string",
        "minLength": 1,
        "maxLength": 1000
      },
      "propertyNames": {
        "type": "string",
        "pattern": "^[a-zA-Z0-9_]*$",
        "minLength": 1,
        "maxLength": 32
      }
    },
    "Event.EventBase": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "description": "Base properties shared by all events. Every event includes a unique identifier and a timestamp recording when the event occurred.",
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/$defs/Event.Id"
        },
        "timestamp": {
          "$ref": "#/$defs/Event.Timestamp"
        }
      },
      "required": [
        "id",
        "timestamp"
      ]
    },
    "Event.Id": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "description": "Unique identifier for the event. Uses the `evt_` prefix."
    },
    "Event.ObjectType": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "description": "The type of object this event refers to. Indicates whether the event relates to an envelope, recipient, deliverable, or sender.",
      "x-enum-descriptions": {
        "envelope": "The event relates to an envelope.",
        "recipient": "The event relates to a recipient.",
        "deliverable": "The event relates to a deliverable (signed document).",
        "sender": "The event relates to a sender."
      },
      "enum": [
        "envelope",
        "recipient",
        "deliverable",
        "sender"
      ]
    },
    "Event.RecipientAccessed": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Accessed Event",
      "description": "Fired when the recipient enters the signing ceremony. Emitted at most once every 60 seconds per IP address and user agent to reduce duplicates. The `data` includes the recipient's IP address, user agent, and session ID.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.accessed"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "ip": {
                      "$ref": "#/$defs/Recipient.IP"
                    },
                    "user_agent": {
                      "$ref": "#/$defs/Recipient.UserAgent"
                    },
                    "session_id": {
                      "$ref": "#/$defs/Recipient.SessionId"
                    }
                  },
                  "required": [
                    "ip",
                    "user_agent",
                    "session_id"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientCompleted": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Completed Event",
      "description": "Fired when the recipient finishes signing. The recipient status changes to `completed`. The `data` includes the session ID.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.completed"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "session_id": {
                      "$ref": "#/$defs/Recipient.SessionId"
                    }
                  }
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientEventData": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "object",
      "description": "Data payload for recipient events. Contains the recipient identifier, the parent envelope identifier, envelope metadata, and recipient details such as type and key.",
      "properties": {
        "envelope_id": {
          "$ref": "#/$defs/Envelope.Id"
        },
        "object_type": {
          "allOf": [
            {
              "$ref": "#/$defs/Event.ObjectType"
            },
            {
              "const": "recipient"
            }
          ]
        },
        "object_id": {
          "$ref": "#/$defs/Recipient.Id"
        },
        "envelope_metadata": {
          "$ref": "#/$defs/Envelope.Metadata"
        },
        "recipient_type": {
          "$ref": "#/$defs/Recipient.Type"
        },
        "recipient_key": {
          "$ref": "#/$defs/Recipient.Key"
        }
      },
      "required": [
        "envelope_id",
        "object_type",
        "object_id",
        "envelope_metadata",
        "recipient_type",
        "recipient_key"
      ]
    },
    "Event.RecipientFailed": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Failed Event",
      "description": "Fired when the recipient encounters a general failure. The `data.detail` field contains the failure reason.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.failed"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "$ref": "#/$defs/Recipient.FailDetail"
                    }
                  },
                  "required": [
                    "detail"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientHardBounced": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Hard Bounced Event",
      "description": "Fired when the email to the recipient permanently bounces. Common causes include an invalid email address. After a hard bounce, you cannot send additional requests to this recipient without using the Replace Recipient endpoint. The `data.detail` field contains the bounce reason.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.hard_bounced"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "$ref": "#/$defs/Recipient.BounceDetail"
                    }
                  },
                  "required": [
                    "detail"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientIdentityRejected": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Identity Rejected Event",
      "description": "Fired when the identity verification provider does not confirm the recipient's identity. The recipient can retry until the attempt cap is reached. The `data` includes the verification `method`, the `provider`, and the `evidence_reference` the provider left behind.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.identity_rejected"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "method": {
                      "$ref": "#/$defs/Ceremony.IdentityVerificationMethod"
                    },
                    "provider": {
                      "$ref": "#/$defs/Ceremony.IdentityVerificationProvider"
                    },
                    "evidence_reference": {
                      "$ref": "#/$defs/Ceremony.IdentityEvidenceReference"
                    }
                  },
                  "required": [
                    "method",
                    "provider"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientIdentityVerificationStarted": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Identity Verification Started Event",
      "description": "Fired when the recipient is sent to the identity verification provider. Nothing is proven yet at this point. The `data` includes the verification `method` and the `provider` handling the check.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.identity_verification_started"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "method": {
                      "$ref": "#/$defs/Ceremony.IdentityVerificationMethod"
                    },
                    "provider": {
                      "$ref": "#/$defs/Ceremony.IdentityVerificationProvider"
                    }
                  },
                  "required": [
                    "method",
                    "provider"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientIdentityVerified": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Identity Verified Event",
      "description": "Fired when the identity verification provider confirms the recipient's identity. The `data` includes the verification `method`, the `provider`, and the `evidence_reference` the provider left behind.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.identity_verified"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "method": {
                      "$ref": "#/$defs/Ceremony.IdentityVerificationMethod"
                    },
                    "provider": {
                      "$ref": "#/$defs/Ceremony.IdentityVerificationProvider"
                    },
                    "evidence_reference": {
                      "$ref": "#/$defs/Ceremony.IdentityEvidenceReference"
                    }
                  },
                  "required": [
                    "method",
                    "provider"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientRejected": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Rejected Event",
      "description": "Fired when the recipient declines the envelope. The `data.reason` field contains the rejection reason if the recipient provided one. The `data` includes the session ID.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.rejected"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "reason": {
                      "$ref": "#/$defs/Recipient.RejectReason"
                    },
                    "session_id": {
                      "$ref": "#/$defs/Recipient.SessionId"
                    }
                  },
                  "required": [
                    "reason",
                    "session_id"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientReleased": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Released Event",
      "description": "Fired when a recipient is ready to receive a signing request. The recipient status changes to `pending`.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.released"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientReplaced": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Replaced Event",
      "description": "Fired when the recipient is replaced with a new recipient through the Replace Recipient endpoint. The `data` includes the new recipient's ID and name.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.replaced"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "new_recipient_id": {
                      "$ref": "#/$defs/Recipient.Id"
                    },
                    "new_recipient_name": {
                      "$ref": "#/$defs/Recipient.Name"
                    }
                  },
                  "required": [
                    "new_recipient_id",
                    "new_recipient_name"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientResent": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Resent Event",
      "description": "Fired when the signing request is resent to the recipient.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.resent"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientSent": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Sent Event",
      "description": "Fired when the signing request email is delivered to the recipient.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.sent"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientSoftBounced": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Soft Bounced Event",
      "description": "Fired when the email to the recipient temporarily bounces. Common causes include a full mailbox or a temporary server issue. The `data.detail` field contains the bounce reason.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.soft_bounced"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "$ref": "#/$defs/Recipient.BounceDetail"
                    }
                  },
                  "required": [
                    "detail"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.RecipientViewed": {
      "x-schema-role": "model",
      "x-schema-direction": "output",
      "title": "Recipient Viewed Event",
      "description": "Fired after the recipient authenticates and views the documents in the signing ceremony. The `data` includes the session ID.",
      "allOf": [
        {
          "$ref": "#/$defs/Event.EventBase"
        },
        {
          "type": "object",
          "required": [
            "type",
            "data"
          ],
          "properties": {
            "type": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.Type"
                },
                {
                  "const": "recipient.viewed"
                }
              ]
            },
            "data": {
              "allOf": [
                {
                  "$ref": "#/$defs/Event.RecipientEventData"
                },
                {
                  "type": "object",
                  "properties": {
                    "session_id": {
                      "$ref": "#/$defs/Recipient.SessionId"
                    }
                  },
                  "required": [
                    "session_id"
                  ]
                }
              ]
            }
          }
        }
      ]
    },
    "Event.Timestamp": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "title": "Event Timestamp",
      "description": "When the event occurred, in ISO 8601 format.",
      "type": "string",
      "format": "date-time"
    },
    "Event.Type": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "description": "The type of the event. Determines the category and the shape of the `data` payload. Event types are grouped into four categories: envelope, recipient, deliverable, and sender.",
      "x-enum-descriptions": {
        "envelope.created": "A new envelope was created.",
        "envelope.started": "The envelope finished processing and is ready to send to recipients.",
        "envelope.completed": "All recipients completed (for example, signed) the envelope.",
        "envelope.failed": "The envelope encountered an error and moved to a failed status.",
        "envelope.canceled": "The envelope was canceled through the Cancel Envelope endpoint.",
        "recipient.released": "The recipient is ready to receive a signing request. Status changed to pending.",
        "recipient.sent": "The signing request email was delivered to the recipient.",
        "recipient.accessed": "The recipient entered the signing ceremony.",
        "recipient.identity_verification_started": "The recipient was sent to the identity verification provider.",
        "recipient.identity_verified": "The identity verification provider confirmed the recipient's identity.",
        "recipient.identity_rejected": "The identity verification provider did not confirm the recipient's identity.",
        "recipient.viewed": "The recipient authenticated and viewed the documents.",
        "recipient.completed": "The recipient finished signing. Status changed to completed.",
        "recipient.soft_bounced": "The email to the recipient temporarily bounced (for example, full mailbox).",
        "recipient.hard_bounced": "The email to the recipient permanently bounced (for example, invalid address).",
        "recipient.rejected": "The recipient declined the envelope.",
        "recipient.failed": "The recipient encountered a general failure.",
        "recipient.replaced": "The recipient was replaced with a new recipient.",
        "recipient.resent": "The signing request was resent to the recipient.",
        "deliverable.generated": "The signed document was generated and is available for download.",
        "deliverable.failed": "The signed document failed to generate.",
        "sender.created": "A verification request was initiated for a sender.",
        "sender.verified": "The sender completed email verification.",
        "sender.failed": "The sender verification failed.",
        "sender.deleted": "The sender was deleted."
      },
      "enum": [
        "envelope.created",
        "envelope.started",
        "envelope.completed",
        "envelope.failed",
        "envelope.canceled",
        "recipient.released",
        "recipient.sent",
        "recipient.accessed",
        "recipient.identity_verification_started",
        "recipient.identity_verified",
        "recipient.identity_rejected",
        "recipient.viewed",
        "recipient.completed",
        "recipient.soft_bounced",
        "recipient.hard_bounced",
        "recipient.rejected",
        "recipient.failed",
        "recipient.replaced",
        "recipient.resent",
        "deliverable.generated",
        "deliverable.failed",
        "sender.created",
        "sender.verified",
        "sender.failed",
        "sender.deleted"
      ]
    },
    "Recipient.BounceDetail": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "title": "Recipient Bounce Detail",
      "description": "A human-readable explanation of why the email bounced. Contains information from the remote email server, such as \"Mailbox Full\" or \"User Unknown.\"\n\nPresent when the recipient status is `soft_bounced` or `hard_bounced`.\n"
    },
    "Recipient.FailDetail": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "title": "Recipient Fail Detail",
      "description": "A human-readable explanation of why the recipient failed. For example, the recipient's email may be on a blocklist.\n\nPresent when the recipient status is `failed`.\n"
    },
    "Recipient.IP": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "title": "Recipient IP Address",
      "description": "The IP address of the recipient when they accessed the ceremony. Captured from the recipient's browser session.\n\nAvailable in `recipient.accessed` events.\n"
    },
    "Recipient.Id": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "title": "Recipient Id",
      "description": "The unique identifier of the recipient. Recipient IDs use the `re_` prefix.\n",
      "type": "string"
    },
    "Recipient.Key": {
      "x-schema-role": "property",
      "x-schema-direction": "any",
      "title": "Recipient Key",
      "description": "A user-provided key that identifies a recipient within an envelope. Use the key to reference this recipient when assigning document places.\n\nThe key must start with a lowercase letter and can contain lowercase letters, numbers, and underscores. Maximum 32 characters.\n",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]*$",
      "minLength": 1,
      "maxLength": 32
    },
    "Recipient.Name": {
      "x-schema-role": "property",
      "x-schema-direction": "any",
      "type": "string",
      "title": "Recipient Name",
      "description": "The full name of the recipient. Appears in invitation emails and is pre-filled for typed signatures.\n",
      "minLength": 1,
      "maxLength": 500
    },
    "Recipient.RejectReason": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "title": "Recipient Reject Reason",
      "description": "An explanation provided by the recipient for rejecting the envelope. The recipient may optionally enter a reason during the ceremony when they decline to sign.\n\nPresent when the recipient status is `rejected`. May be empty if the recipient did not provide a reason.\n",
      "maxLength": 2000
    },
    "Recipient.SessionId": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "title": "Recipient Session ID",
      "description": "A unique identifier for the recipient's ceremony session. Use this to correlate multiple events from the same session, such as `recipient.accessed`, `recipient.viewed`, and `recipient.completed`.\n"
    },
    "Recipient.Type": {
      "x-schema-role": "property",
      "x-schema-direction": "any",
      "title": "Recipient Type",
      "description": "The type of the recipient. Determines what actions the recipient can perform during the ceremony.\n\n| Type | Description |\n|------|-------------|\n| `signer` | Signs documents. Every envelope must have at least one signing recipient. |\n| `qualified_signer` | Signs with a qualified electronic signature through a qualified trust service provider. |\n| `approver` | Reviews and approves documents without signing. |\n| `preparer` | Fills in document fields on behalf of another party. |\n| `automatic_signer` | The signature is applied automatically by the system. |\n",
      "type": "string",
      "enum": [
        "signer",
        "qualified_signer",
        "approver",
        "preparer",
        "automatic_signer"
      ]
    },
    "Recipient.UserAgent": {
      "x-schema-role": "property",
      "x-schema-direction": "output",
      "type": "string",
      "title": "Recipient User Agent",
      "description": "The browser user agent string of the recipient when they accessed the ceremony. Identifies the recipient's browser and operating system.\n\nAvailable in `recipient.accessed` events.\n"
    }
  }
}