# Signature Definition

# URI

`/trustedx-resources/esignsp/v2/documents/{document_id}/signers/{signature_definition_id}`

# Description

Definition of a document signature. A signature definition always forms part of a document and signature definitions resource and is applied to the document that this resource also contains.

# Representation

A signature definition is represented in JSON as follows:

`{`
`"id" : {string},`
`"self" : {string},`
`"signature_policy_id" : {string},`
`"parameters" : {Parameters},`
`"to_be_signed" : {`
`"digest" : {`
`"algorithm" : {string},`
`"value" : {string}`
`}`
`},`
`"signature" : {string},`
`"to_be_timestamped" : {`
`"type": {string},`
`"digest_algorithm": {string},`
`"digest_value": {string}`
`},`
`"timestamps" : [{string}]`
`"timestamps" : [{`
`"type" : {string},`
`"timestamp": {string}`
`}]`
`} }`

Property | Description
`id` | Identifier of the signature definition. This property is optional and only present when the representation is for an already created resource.
`self` | URL of the signature definition. This property is optional and only present when the representation is for an already created resource.
`signature_policy_id` | Type of signature defined: "`urn:safelayer:eidas:policies:sign:document:pdf`": definition of a PDF/PAdES signature (ETSI TS 102 778, ETSI TS 103 172 and ETSI EN 319 142). `"urn:safelayer:eidas:policies:sign:document:xml"`:definition of a W3C XMLDSig/XAdES signature (ETSI TS 101 903, ETSI TS 103 171 and ETSI EN 319 132). `"urn:safelayer:eidas:policies:sign:document:cms"`: definition of a CMS/CAdES signature (ETSI TS 101 733, ETSI TS 103 173 and ETSI EN 319 122)
`parameters` | Characteristics of the signature defined. This property is optional, although it is necessary for executing the obtain the hash of the document in accordance with a signature definition operation on the resource. The value of this property is represented in JSON as explained in: Parameters Property (PDF/PAdES Signatures) Parameters Property (Enveloped XMLDSig/XAdES Signatures) Parameters Property (Internally Detached XMLDSig/XAdES Signatures) Parameters Property (Externally Detached XMLDSig/XAdES Signatures) Parameters Property (Externally Detached XMLDSig/XAdES Signatures from hashes) Parameters Property (enveloping XMLDSig/XAdES Signatures) Parameters Property (XMLDSig/XAdES Signatures of a Manifest) Parameters Property (XAdES Countersignatures) Parameters Property (CMS/CAdES Signatures) Parameters Property (CMS/CAdES Countersignatures) The default behavior when this property (or any of its characteristics) is not present is described in Behavior for When Parameters Are Missing from the Signature Definition).
`to_be_signed` | Information for calculating the digital signature (PKCS #1) of the document to which the signature definition is applied. This property is optional and is only present after the obtain the hash of the document in accordance with a signature definition operation is executed on the resource.
`to_be_signed.digest` | Information on the hash used to obtain the digital signature (PKCS #1) of the document to which the signature definition is applied.
`to_be_signed.digest.algorithm` | Hash algorithm. The value of this property can be "`sha1"`, "`sha256"`, "`sha384"` or "`sha512".`
`to_be_signed.digest.value` | Hash of the document to which the signature definition is applied, encoded in base64 (the attributes signed are also taken into account in this hash).
`signature` | Digital signature (PKCS #1) of the document to which the signature definition is applied, encoded in base64. This property is optional and only present after its value has been provided using the update signature definition operation.
`to_be_timestamped` | Information on the hash used to obtain the time-stamp of the signature for the signature definition. This property is optional and only present when requested by the obtain the hash of a signature for requesting a time-stamp operation.
`to_be_timestamped.type` | Always has the value "`message_imprint`".
`to_be_timestamped.digest_algorithm` | Hash algorithm. The value of this property can be `"sha1", "sha256", "sha384" or "sha512".`
`to_be_timestamped.digest_value` | Hash of the signature that corresponds to the signature definition.
`timestamps[]` | Time-stamps of the signature that corresponds to the signature definition. Currently only one time-stamp is supported. This property is optional and only present after the time-stamp of a signature is provided via the update a signature definition operation or via a process started by a create a document signature process operation in which a time-stamp policy was requested.
`timestamps[0].type` | Type of signature time-stamp. Always has the value `"rfc3161_timestamp_token"`.
`timestamps[0].tiemstamp` | Base64 encoding of the signature time-stamp. This time-stamp is always in RFC 3161 format.

## Parameters Property (PDF/PAdES Signatures)

The `parameters` property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate": {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm" : {string},`
`"estimated_signature_size" : {number},`
`"certification_level" : {number},`
`"contact_info" : {string},`
`"location" : {string},`
`"reason" : {string},`
`"signature_field" : {`
`"name" : {string},`
`"location" : {`
`"page" : {`
`"number" : {string}`
`},`
`"rectangle" : {`
`"x" : {number},`
`"y" : {number},`
`"height" : {number},`
`"width" : {number}`
`}`
`},`
`"appearance" : {`
`"background_image" : {`
`"file" : {string},`
`"binary" : {string}`
`},`
`"foreground_image" : {`
`"file" : {string},`
`"binary" : {string}`
`},`
`"signature_details" : {SignatureDetails}`
`}`
`},`
`"policy_identifier" : {`
`"policy_id" : {`
`"oid" : {string}`
`}`
`"policy_hash" : {`
`"digest_algorithm_identifier" : {`
`"id" : {string}`
`},`
`"digest_value" : {string}`
`},`
`"policy_qualifiers" : [`
`{`
`"type" : {string},`
`"uri" : {string}`
`}`
`]`
`},`
`"commitments" : [`
`{`
`"type" : {string},`
`"oid" : {string}`
`}`
`]`
`"roles" : {`
`"claimed" : [{string}]`
`},`
`"signed_attributes" : [`
`{`
`"type" : {string},`
`"oid" : {string},`
`"encoded" : {string}`
`}`
`],`
`"unsigned_attributes" : [`
`{`
`"type" : {string},`
`"oid" : {string},`
`"encoded" : {string}`
`}`
`]`
`}`

Property | Description
`type` | Signature type `:` `"pdf"`: PAdES-Basic (ETSI TS 102 778-2) `"pades-bes"`: PAdES-BES (ETSI TS 102 778-3) `"pades-epes"`: PAdES-EPES (ETSI TS 102 778-3) `"pades-baseline"`: baseline PAdES signature as per ETSI EN 319 142. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional although necessary for executing the obtain the hash of the document in accordance with a signature definition operation on the resource.
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm used to obtain the digital signature (PKCS #1) of the document. This property is optional and its value can be "`sha1"`, "`sha256"`, "`sha384"` or "`sha512"`, with `"sha256"` being the default value`.`
`estimated_signature_size` | Maximum size of the signature in bytes. TRIDENT reserves sufficient space in the document for storing a signature of this size. This property is optional.
`certification_level` | Indication on whether the signature is a certification signature. This property is optional and its value can be: 0: Non-certification signature. 1: Certification signature. Once performed, subsequent changes cannot be made to the document. 2: Certification signature. Once performed, the only subsequent changes that can be made to the document are the filling-in of forms and the generation of signatures (in previously-created signature fields). 3: Certification signature. Once performed, the only subsequent changes that can be made to the document are the filling-in of forms, the generation of signatures in previously-created signature fields and the editing of notes.
`contact_info` | The signer's contact details. This property is optional.
`location` | Where the document is signed. This property is optional.
`reason` | Reason why the document is being signed. This property is optional.
`signature_field` | Signature field information. This property is optional.
`signature_field.name` | Name of the signature field. This property is optional. Its default value is `"SFLY Signature <seq>"`, where `seq` is the next number in the sequence of all the fields whose names have this format (the first field in the sequence takes the number 0).
`signature_field.location` | Location of the signature field in the document. This property is optional.
`signature_field.location.page` | Information on the page in which the signature field is located.
`signature_field.location.page.number` | Number of the page where the signature field is located. The `"last"` value denotes the last page of the document.
`signature_field.location.rectangle` | Position and dimensions of the signature field, expressed in user units (see ISO 32000-1), within the page in which it is located. As a reference, on an A4 page where the user unit is 1, the rectangle that corresponds to the whole page has a size of 595 by 842 user units.
`signature_field.location.rectangle.x` | Horizontal coordinate of the lower left corner of the signature field in the page where it is located.
`signature_field.location.rectangle.y` | Vertical coordinate of the lower left corner of the signature field in the page where it is located.
`signature_field.location.rectangle.height` | Height of the signature field.
`signature_field.location.rectangle.width` | Width of the signature field.
`signature_field.appearance` | Information on the signature appearance. This property is optional.
`signature_field.appearance.background_image` | Background image of the signature appearance. This property is optional in the `appearance` property.
`signature_field.appearance.background_image.file` | Complete path, in the TRIDENT's file system, of the background image of the signature appearance. This property is optional but must be present if the `appearance.background_image.binary` property is not.
`signature_field.appearance.background_image.binary` | Base64 encoding of the background image of the signature appearance. JPEG and PNG images are supported. This property is optional but must be present if the `appearance.background_image.file` property is not.
`signature_field.appearance.foreground_image` | Foreground image of the signature appearance. This property is optional in the `appearance` property.
`signature_field.appearance.foreground_image.file` | Complete path, in the TRIDENT's file system, of the foreground image of the signature appearance. This property is optional but must be present if the `appearance.foreground_image.binary` property is not.
`signature_field.appearance.foreground_image.binary` | Base64 encoding of the foreground image of the signature appearance. JPEG and PNG images are supported. This property is optional but must be present if the `appearance.foreground_image.file` property is not.
`signature_field.appearance.signature_details` | Information on the signature details displayed as text in its appearance. This property is optional. Its value is represented in JSON as explained in parameters.signature_field.appearance.signature_details property.
`policy_identifier` | Information on the signature policy. This property is required if the signature type specified (`type` property) is "`pades-epes`“ and must be omitted otherwise.
`policy_identifier.policy_id.oid` | OID that identifies the signature policy.
`policy_identifier.policy_hash` | Information on the hash of the signature policy.
`policy_identifier.policy_hash.digest_algorithm_identifier.id` | Algorithm for calculating the hash of the signature policy. This property can take the following values: "`sha1"`, "`sha256"`, "`sha384"` or "`sha512".`
`policy_identifier.policy_hash.digest_value` | Hash of the signature policy.
`policy_identifier.policy_qualifiers[]` | Qualifiers of the signature policy.
`policy_identifier.policy_qualifiers[].type` | Type of one of the qualifiers of the signature policy. This property always takes the "`spuri`" value.
`policy_identifier.policy_qualifiers[].uri` | URI of the signature policy.
`commitments[]` | Signer commitments. This property is optional if the signature type specified (`type` property) is "`pades-epes`“ and must be omitted otherwise.
`commitments[].type` | Type of one of the signer's commitments. `"proof_of_origin"`: the signer acknowledges creating and sending the document. `"proof_of_receipt"`: the signer acknowledges receiving the document. `"proof_of_delivery"`: the signer acknowledges delivering the document to the recipient. `"proof_of_sender"`: the signer acknowledges sending the document. `"proof_of_approval"`: the signer acknowledges approving the document. `"proof_of_creation"`: the signer acknowledges creating the document. `"custom"`: the signer acknowledges what is specified in the `commitments[].oid` property.
`commitments[].oid` | OID identifying a signer commitment. This property is optional and only used by the "`custom`" type commitments.
`roles.claimed[]` | This property is optional and contains the roles that the signer claims to have. It must be included in the signed attributes of the signature.
`signed_attributes[]` | This property is optional and contains information on the additional signed attributes that must be put in the signature.
`signed_attributes[].type` | This property can only take the `"custom"` value. It specifies the additional signed attribute type that must be put in the signature.
`signed_attributes[].oid` | OID that identifies the type of one of the signed attributes that must be put in the signature.
`signed_attributes[].encoded` | Value of one of signed attributes that must be put in the signature.
`unsigned_attributes[]` | This property is optional and contains information on the unsigned attributes that must be put in the signature.
`unsigned_attributes[].type` | This property can only take the `"custom"` value. It specifies the unsigned attribute type that must be put in the signature.
`unsigned_attributes[].oid` | OID that identifies the type of one of the unsigned attributes that must be put in the signature.
`unsigned_attributes[].encoded` | Value of one of the unsigned attributes that must be put in the signature.

### The parameters.signature_field.appearance.signature_details Property

The `parameters.signature_field.appearance.signature_details` property is represented in JSON as follows:

`{`
`"font" : {`
`"name" : {string},`
`"size" : {number},`
`"style" : {string},`
`"color" : {`
`"r" : {number},`
`"g" : {number},`
`"b" : {number}`
`},`
`"encoding" : {string},`
`"embed" : boolean`
`},`
`"details" : [`
`{`
`"type" : {string},`
`"title" : {string},`
`"timezone" : {string},`
`"format" : {string},`
`"value" : {string}`
`}`
`],`
`"text_direction" : {string}`
`}`

Property | Description
`font` | Information on the font used for the text of the signature details displayed in the signature appearance. This property is optional.
`font.name` | Postscript name of the font used for the text of the signature details displayed in the signature appearance. If the TRIDENT does not have this font when generating the signature corresponding to this definition, it will use the most similar one it has. This property is optional.
`font.size` | Size of the font used for the text of the signature details displayed in the signature appearance. This property is optional.
`font.style` | Style of the font ("`normal"`, "`bold"`, "`italic"`) used for the text of the signature details displayed in the signature appearance. This property is optional.
`font.color` | Color used for the font of the signature details displayed in the signature appearance. This property is optional.
`font.color.r` | Red level used for the text of the signature details displayed in the signature appearance (0-255).
`font.color.g` | Green level used for the text of the signature details displayed in the signature appearance (0-255).
`font.color.b` | Blue level for the text of the signature details displayed in the signature appearance (0-255).
`details[]` | Signature details displayed as text in its appearance. This property is optional.
`details[].type` | Signature detail type displayed as text in the signature appearance. `"subject"`: Subject of the signer's certificate. `"name"`: CN of the subject of the signer's certificate. `"issuer"`: Issuer of the signer's certificate. `"serial"`: Serial number of the signer's certificate. `"contact_info"`: Contact information of the signer (see the `contact_info` property). `"location"`: where the document is signed (see the `location` property). `"reason"`: reason why the document is signed (see the `reason` property). `"date":` date the document is signed. `"text"`: arbitrary text.
`details[].title` | Title that precedes a detail of the signature displayed as text in its appearance. This property is optional.
`details[].timezone` | Time zone (`"GMT"`, `"Europe/Madrid"`, `"America/Caracas"`, etc.) displayed as a detail of the signature in its appearance. This property is optional and can only have a "`date`" type detail.
`details[].format` | Format of the date that is displayed as a detail of the signature in its appearance. This format's syntax is the one used by the java.text.SimpleDateFormat Java API class. This property is optional, its default value is `yyyy.MM.dd hh:mm:ss XXX`, and can only have a "`date`" type detail.
`details[].value` | Arbitrary text displayed as a detail of the signature in its appearance. This property is optional and can only have a "`text`" type detail.
`text_direction` | Text direction in the appearance of the signature. This property is optional and can have the following values: `"ltr"`: text direction is left to right (default value) `"rtl"`: text direction is right to left.

## Parameters Property (Enveloped XMLDSig/XAdES Signatures)

The parameters property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate" : {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm" : {string},`
`"signature_target" : {`
`"type" : "document",`
`"signature_packaging" : "enveloped",`
`"nodes_to_sign" : [`
`{`
`"type" : "document_reference",`
`"xpath" : "/",`
`"uri_type": {string}`
`}`
`],`
`"signature_placement" : {`
`"type" : {string},`
`"xpath" : {string}`
`},`
`"enveloped_transform" : {string}`
`},`
`"include_data_object_format" : {boolean},`
`"default_c14n_method" : {string},`
`"policy_identifier" : {`
`"policy_id" : {`
`"identifier" : {`
`"uri" : {string},`
`"qualifier" : {string}`
`},`
`"description" : {string},`
`"documentation_references" : [`
`{`
`"uri" : {string}`
`}`
`]`
`},`
`"policy_hash" : {`
`"digest_algorithm_identifier" : {`
`"id" : {string}`
`},`
`"digest_value" : {string}`
`},`
`"policy_qualifiers" : [`
`{`
`"type" : "spuri",`
`"uri" : {string}`
`}`
`]`
`}`
`"commitments" : [`
`{`
`"type" : "{string},`
`"uri" : {string}`
`}`
`],`
`"location" : {`
`"city" : {string},`
`"street_address" : {string},`
`"state_or_province" : {string},`
`"postal_code" : {string},`
`"country_name" : {string}`
`}`
`"roles" : {`
`"claimed" : [{string}]`
`}`
`}`

Property | Description
`type` | Type of XML signature. "`xmldsig`": XMLDSig signature "`xades-bes`": XAdES-BES signature (Basic Electronic Signature) as per ETSI TS 101 903 "`xades-epes`": XAdES-EPES signature (Explicit Policy Electronic Signature) as per ETSI TS 101 903 `"xades-baseline"`: baseline XAdES signature as per ETSI EN 319 132-1. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional although it is required to execute the obtain the hash of the document in accordance with a signature definition operation when the value of the property `type` is "`xades-bes"` "`xades-epes"` or `"xades_baseline"` .
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm that must be used for obtaining the hashes that must be calculated in the signature. This property is optional and can take the following values: `"sha1", "sha256", "sha384"` or `"sha512"`, with `"sha256"` being the default value.
`signature_target` | Information on the data to be signed, the relative location of the signature with regard to this data.
`signature_target.type` | This property is optional and can only take the `"document"` value (i.e., the default value).
`signature_target.signature_packaging` | Relative position of the signature with respect to the data being signed. Always has the `"enveloped"` value (the signature is contained in the signed XML document).
`signature_target.nodes_to_sign[]` | This property is optional and contains information on the XML document to which the signature definition is applied (the array has only one element).
`signature_target.nodes_to_sign[].type` | Type of reference to the data to be signed. This property can only take the "`document_reference`" value (the data is a node of the XML document to which the signature definition is applied; specifically, the node whose path is specified by the `signature_target.nodes_to_sign[].xpath property`).
`signature_target.nodes_to_sign[].xpath` | XPath 2.0 expression that describes the path of the element being signed that forms part of document to which the signature definition is being applied. Currently the XPath path can only correspond to the root node of the XML document to which the signature definition is applied. I.e., the XPath path can only be "/".
`signature_target.nodes_to_sign[].uri_type` | Type of URI used in the signature for referencing the data being signed. This property is optional and can take the following values: `"id"`, which is the default value indicating that the signature must reference the data signed with "". `"xpointer_xpath"`, which indicates that the signature must reference the data signed with `"#xpointer(/)"`.
`signature_target.signature_placement` | Information on the position of the signature (in the `<ds:Signature>` element) in the document to which the signature definition is applied. This property is optional. The `"last_child_of"` of the "/" root node is the default position.
`signature_target.signature_placement.xpath` | XPath 2.0 expression that describes (along with the `signature_target.signature_placement.type` parameter) the path of the signature in the document to which the signature definition is applied.
`signature_target.signature_placement.type` | Placement of the node containing the signature (`<ds:Signature>` element) with respect to the path indicated by `signature_target.signature_placement.xpath`. `"last_child_of"`: the signature is the last child node of the node whose path is specified in `signature_target.signature_placement.xpath)`. `"first_child_of"`: the signature is the first child node of the node whose path is specified in `signature_target.signature_placement.xpath)`. `"after"`: the signature is the first sibling node after the node whose path is specified in `signature_target.signature_placement.xpath)`. `"before"`: the signature is the first sibling node before the node whose path is specified in `signature_target.signature_placement.xpath)`.
`signature_target.enveloped_transform` | Transformation that must be made to the XML document to which the signature definition is applied to obtain the value whose hash is put in the signature. `single_signature`: the following transformation must be performed: `http://www.w3.org/2000/09/xmldsig#enveloped-signature`. `multiple_signatures`: an XPath transformation that deletes all the signatures in the XML document must be performed. This property is optional. Its default value is `single_signature`. Note If you plan to include more signatures in the document that will contain the signature (e.g., if you want to add a detached countersignature later on), specify the `multiple_signatures` value. Otherwise, subsequent signatures will invalidate the first signature (all verifications of the signature will state that it is invalid).
`include_data_object_format` | This property is optional and indicates (`true`, `false`) whether the format of the signed data (`DataObjectFormat`) must be included in the qualifying properties that are protected (signed) by the signature, through the corresponding element `ds:Signature/ds: SignedInfo/ds:Reference.` Default value is `false` and the format indicated when the value is `true` is `text/xml`.
`default_c14n_method` | Canonicalization algorithm used: `c14n:` inclusive algorithm (http://www.w3.org/TR/2001/REC-xml-c14n-20010315). `c14nWithComments`: inclusive algorithm with comments (http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments). `excC14n: exclusive algorithm`Will is is an (http://www.w3.org/2001/10/xml-exc-c14n# `excC14nWithComments`: exclusive algorithm with comments (http://www.w3.org/2001/10/xml-exc-c14n#WithComments). This property is optional and its default value is `excC14n`.
`policy_identifier` | Information on the signature policy in accordance with which the signature is performed and with which the signature must be validated. This property is only present (and in this case required) if the `type` property indicates the `"xades-epes"` signature type. Information on the signature policy is included in the signature by inserting a `SignaturePolicyIdentifier` element in the signature's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`policy_identifier.policy_id.identifier.uri` | URI of the signature policy.
`policy_identifier.policy_id.identifier.qualifier` | URI type of the signature policy when this URI is built using an OID. The following values are supported: `OIDAsURI` `OIDAsURN` This property is optional.
`policy_identifier.policy_id.description` | Description of the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[]` | Documents with additional information on the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[].uri` | URI of a document with additional information on the policy.
`policy_identifier.policy_hash` | Information on the hash of the signature policy.
`policy_identifier.policy_hash.digest_algorithm_identifier.id` | Algorithm for calculating the hash of the signature policy. Its value can be `"sha1", "sha256", "sha384"` or `"sha512".`
`policy_identifier.policy_hash.digest_value` | Hash of the signature policy.
`policy_identifier.policy_qualifiers[]` | Qualifiers of the signature policy. This property is optional.
`policy_identifier.policy_qualifiers[].type` | Type of one of the qualifiers of the signature policy. This property always takes the `"spuri"` value.
`policy_identifier.policy_qualifiers[].uri` | URI of one of the qualifiers of the signature policy.
`commitments[]` | Commitments of the signer `(CommitmentTypeIndication)` that must be included in the signed data's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`commitments[].type` | A commitment of the signer. The following values are supported: `"proof_of_origin"`: the signer acknowledges creating and sending the document. `"proof_of_receipt"`: the signer acknowledges receiving the document. `"proof_of_delivery"`: the signer acknowledges delivering the document to the recipient. `"proof_of_sender"`: the signer acknowledges sending the document. `"proof_of_approval"`: the signer acknowledges approving the document. `"proof_of_creation"`: the signer acknowledges creating the document. `"custom"`: the signer acknowledges what is specified in the `commitments[].uri` property.
`commitments[].uri` | URI of one of the signer's commitments. This property is only present if the value of the `commitments[].type property is "custom"`.
`location` | Place where the signature was made `(SignatureProductionPlace` for `xades-bes` and `xades-epes` and `SignatureProductionPlacev2` for `xades-baseline)` that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`location.city` | This property is optional and contains the city where the signature was made.
`location.street_address` | This property is optional. It can only be present if the value of the type property is `"xades-baseline"` and contains the address (street and number) where the signature is made.
`location.state_or_province` | This property is optional and contains the province or state where the signature is made.
`location.postal_code` | This property is optional and contains the postcode where the signature is made.
`location.country_name` | This property is optional and contains the country where the signature is made.
`roles.claimed[]` | Roles the signer claims to have `(SignerRole/ClaimedRoles` for `xades-bes` and `xades-epes` and `SignerRolev2/ClaimedRoles` for `xades-baseline)` that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.

## parameters Property (Internally Detached XMLDSig/XAdES Signatures)

The `parameters` property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate" : {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm" : {string},`
`"signature_target" : {`
`"type" : "document",`
`"signature_packaging" : "detached",`
`"nodes_to_sign" : [`
`{`
`"type" : "document_reference",`
`"xpath" : {string}`
`}`
`],`
`"signature_placement" : {`
`"type" : "{string}",`
`"xpath" : {string}`
`}`
`},`
`"include_data_object_format" : {boolean},`
`"default_c14n_method" : {string},`
`"policy_identifier" : {`
`"policy_id" : {`
`"identifier" : {`
`"uri" : {string},`
`"qualifier" : {string}`
`},`
`"description" : {string},`
`"documentation_references" : [`
`{`
`"uri" : {string}`
`}`
`]`
`},`
`"policy_hash" : {`
`"digest_algorithm_identifier" : {`
`"id" : {string}`
`},`
`"digest_value" : {string}`
`},`
`"policy_qualifiers" : [`
`{`
`"type" : "spuri",`
`"uri" : {string}`
`}`
`]`
`}`
`"commitments" : [`
`{`
`"type" : "{string},`
`"uri" : {string}`
`}`
`],`
`"location" : {`
`"city" : {string},`
`"street_address" : {string},`
`"state_or_province" : {string},`
`"postal_code" : {string},`
`"country_name" : {string}`
`}`
`"roles" : {`
`"claimed" : [{string}]`
`}`
`}`

Property | Description
`type` | Type of XML signature. `"xmldsig"`: XMLDSig signature `"xades-bes"`: XAdES-BES signature (Basic Electronic Signature) as per ETSI TS 101 903 `"xades-epes"`: XAdES-EPES signature (Explicit Policy Electronic Signature) as per ETSI TS 101 903 `"xades-baseline"`: baseline XAdES signature as per ETSI EN 319 132-1. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional although it is required to execute the obtain the hash of the document in accordance with a signature definition operation when the value of the property `type` is "`xades-bes"` "`xades-epes"` or `"xades_baseline"`.
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm that must be used for obtaining the hashes that must be calculated in the signature. This property is optional and can take the following values: `"sha1", "sha256", "sha384"` or `"sha512"`, with `"sha256"` being the default value.
`signature_target` | Information on the data to be signed, the relative location of the signature with regard to this data.
`signature_target.type` | Indicates if the signature is a countersignature. This property is optional and can only take the `"document"` value (i.e., the default value).
`signature_target.signature_packaging` | Relative position of the signature with respect to the data being signed. Always takes the `"detached"` value (the signature is separated from the data being signed).
`signature_target.nodes_to_sign[]` | This property contains information on the elements being signed of the document to which the signature definition is applied. The array can have information from multiple data elements.
`signature_target.nodes_to_sign[].type` | Type of reference to one of the elements to be signed. This property can only take the "`document_reference`" value (the element is a node of the XML document to which the signature definition is applied; specifically, the node whose path is specified by the `signature_target.nodes_to_sign[].xpath` property).
`signature_target.nodes_to_sign[].xpath` | XPath 2.0 expression that describes the path of one of the elements being signed and that forms part of the document to which the signature definition is applied. Currently, the XPath path can only correspond to a node of the document that has the Id. attribute.
`signature_target.signature_placement` | Information on the position of the signature (in the `<ds:Signature>` element) in the document to which the signature definition is applied.
`signature_target.signature_placement.xpath` | XPath 2.0 expression that describes (along with the `signature_target.signature_placement.type` parameter) the path of the signature in the document to which the signature definition is applied.
`signature_target.signature_placement.type` | Placement of the node containing the signature `(<ds:Signature>` element) with respect to the path indicated by signature_target.signature_placement.xpath. `"last_child_of"`: the signature is the last child node of the node whose path is specified in `signature_target.signature_placement.xpath)`. `"first_child_of"`: the signature is the first child node of the node whose path is specified in `signature_target.signature_placement.xpath)`. `"after"`: the signature is the first sibling node after the node whose path is specified in `signature_target.signature_placement.xpath)`. `"before"`: the signature is the first sibling node before the node whose path is specified in signature_target.signature_placement.xpath).
`include_data_object_format` | This property is optional and specifies (`true`, `false`) if the format of the signed data (`DataObjectFormat`) must be included in this data's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element. The default value is `false` and the format specified when the value is `true` is `text/xml.`
`default_c14n_method` | Canonicalization algorithm used: `c14n`: inclusive algorithm (http://www.w3.org/TR/2001/REC-xml-c14n-20010315). `c14nWithComments`: inclusive algorithm with comments (http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments). `excC14n`: exclusive algorithm (http://www.w3.org/2001/10/xml-exc-c14n# `excC14nWithComments`: exclusive algorithm with comments (http://www.w3.org/2001/10/xml-exc-c14n#WithComments). This property is optional and its default value is `excC14n`.
`policy_identifier` | Information on the signature policy in accordance with which the signature is performed and with which the signature must be validated. This property is only present (and in this case required) if the `type` property indicates "`xades-epes"` signature type. Information on the signature policy is included in the signature by inserting a SignaturePolicyIdentifier element in the signature's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`policy_identifier.policy_id.identifier.uri` | URI of the signature policy.
`policy_identifier.policy_id.identifier.qualifier` | URI type of the signature policy when this URI is built using an OID. The following values are supported: `OIDAsURI` `OIDAsURN` This property is optional.
`policy_identifier.policy_id.description` | Description of the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[]` | Documents with additional information on the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[].uri` | URI of a document with additional information on the policy.
`policy_identifier.policy_hash` | Information on the hash of the signature policy.
`policy_identifier.policy_hash.digest_algorithm_identifier.id` | Algorithm for calculating the hash of the signature policy. Its value can be `"sha1", "sha256", "sha384"` or `"sha512"`.
`policy_identifier.policy_hash.digest_value` | Hash of the signature policy.
`policy_identifier.policy_qualifiers[]` | Qualifiers of the signature policy. This property is optional.
`policy_identifier.policy_qualifiers[].type` | Type of one of the qualifiers of the signature policy. This property always takes the `"spuri"` value.
`policy_identifier.policy_qualifiers[].uri` | URI of one of the qualifiers of the signature
`commitments[]` | Commitments of the signer `(CommitmentTypeIndication)` that must be included in the signed data's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`commitments[].type` | A commitment of the signer. The following values are supported: `"proof_of_origin"`: the signer acknowledges creating and sending the document. `"proof_of_receipt"`: the signer acknowledges receiving the document. `"proof_of_delivery"`: the signer acknowledges delivering the document to the recipient. `"proof_of_sender"`: the signer acknowledges sending the document. `"proof_of_approval"`: the signer acknowledges approving the document. `"proof_of_creation"`: the signer acknowledges creating the document. `"custom"`: the signer acknowledges what is specified in the `commitments[].uri` property.
`commitments[].uri` | URI of one of the signer's commitments. This property is only present if the value of the `commitments[].type property is "custom"`.
`location` | Place where the signature was made `(SignatureProductionPlace` for `xades-bes` and `xades-epes` and `SignatureProductionPlacev2` for `xades-baseline)` that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`location.city` | This property is optional and contains the city where the signature was made.
`location.street_address` | This property is optional. It can only be present if the value of the type property is `"xades-baseline"` and contains the address (street and number) where the signature is made.
`location.state_or_province` | This property is optional and contains the province or state where the signature is made.
`location.postal_code` | This property is optional and contains the postcode where the signature is made.
`location.country_name` | This property is optional and contains the country where the signature is made.
`roles.claimed[]` | Roles the signer claims to have (`SignerRole/ClaimedRoles` for `xades-bes` and `xades-epes` and `SignerRolev2/ClaimedRoles` for `xades-baseline`) that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.

## Parameters Property (Externally Detached XMLDSig/XAdES Signatures)

The `parameters` property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate" : {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm" : {string},`
`"signature_target" : {`
`"type" : "document",`
`"signature_packaging" : "detached",`
`"nodes_to_sign" : [`
`{`
`"type" : "raw_reference",`
`"uri" : {string}`
`}`
`]`
`},`
`"include_data_object_format" : {boolean},`
`"policy_identifier" : {`
`"policy_id" : {`
`"identifier" : {`
`"uri" : {string},`
`"qualifier" : {string}`
`},`
`"description" : {string},`
`"documentation_references" : [`
`{`
`"uri" : {string}`
`}`
`]`
`},`
`"policy_hash" : {`
`"digest_algorithm_identifier" : {`
`"id" : {string}`
`},`
`"digest_value" : {string}`
`},`
`"policy_qualifiers" : [`
`{`
`"type" : "spuri",`
`"uri" : {string}`
`}`
`]`
`}`
`"commitments" : [`
`{`
`"type" : "{string},`
`"uri" : {string}`
`}`
`],`
`"location" : {`
`"city" : {string},`
`"street_address" : {string},`
`"state_or_province" : {string},`
`"postal_code" : {string},`
`"country_name" : {string}`
`}`
`"roles" : {`
`"claimed" : [{string}]`
`}`
`}`

Property | Description
`type` | Type of XML signature. `"xmldsig"`: XMLDSig signature `"xades-bes"`: XAdES-BES signature (Basic Electronic Signature) as per ETSI TS 101 903 `"xades-epes"`: XAdES-EPES signature (Explicit Policy Electronic Signature) as per ETSI TS 101 903 `"xades-baseline"`: baseline XAdES signature as per ETSI EN 319 132-1. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional although it is required to execute the obtain the hash of the document in accordance with a signature definition operation when the value of the property `type` is "`xades-bes"` "`xades-epes"` or `"xades_baseline"` .
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm that must be used for obtaining the hashes that must be calculated in the signature. This property is optional and can take the following values: `"sha1", "sha256", "sha384" or "sha512"`, with `"sha256"` being the default value.
`signature_target` | Information on the data to be signed, the relative location of the signature with regard to this data.
`signature_target.type` | Indicates if the signature is a countersignature. This property is optional and can only take the `"document"` value (i.e., the default value).
`signature_target.signature_packaging` | Relative position of the signature with respect to the data being signed. Always takes the `"detached"` value (the signature is separated from the data being signed).
`signature_target.nodes_to_sign[]` | This property is optional and contains information on the document (of any type) to which the signature definition is applied (the array only has one element).
`signature_target.nodes_to_sign[].type` | Reference type of data to be signed. This property is optional and can only take the `"raw_reference"` value (the data is in the document, of any type, to which the signature definition is applied).
`signature_target.nodes_to_sign[].uri` | URI of data to be signed that must appear in the signature. This parameter is optional and its default value is `"file:///<docname>"`, where `<docname>` is the name of the document to which the signature definition is applied. This is the name given to the document part of the multipart message for creating the document signature process or the document resource itself).
`include_data_object_format` | This property is optional and specifies (`true`, `false`) if the format of the signed data (`DataObjectFormat`) must be included in this data's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element. The default value is `false` and the format specified when the value is `true` is the format sent in the HTTP `Content-Type` header when the create a document signature process or the create a document and signature definitions resource operation is invoked to upload the document on which the signature definition is applied.
`policy_identifier` | Information on the signature policy in accordance with which the signature is performed and with which the signature must be validated. This property is only present (and in this case required) if the `type` property indicates "`xades-epes"` signature type. Information on the signature policy is included in the signature by inserting a SignaturePolicyIdentifier element in the signature's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`policy_identifier.policy_id.identifier.uri` | URI of the signature policy.
`policy_identifier.policy_id.identifier.qualifier` | URI type of the signature policy when this URI is built using an OID. The following values are supported: `OIDAsURI` `OIDAsURN` This property is optional.
`policy_identifier.policy_id.description` | Description of the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[]` | Documents with additional information on the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[].uri` | URI of a document with additional information on the policy.
`policy_identifier.policy_hash` | Information on the hash of the signature policy.
`policy_identifier.policy_hash.digest_algorithm_identifier.id` | Algorithm for calculating the hash of the signature policy. Its value can be `"sha1", "sha256", "sha384"` or `"sha512"`.
`policy_identifier.policy_hash.digest_value` | Hash of the signature policy.
`policy_identifier.policy_qualifiers[]` | Qualifiers of the signature policy. This property is optional.
`policy_identifier.policy_qualifiers[].type` | Type of one of the qualifiers of the signature policy. This property always takes the `"spuri"` value.
`policy_identifier.policy_qualifiers[].uri` | URI of one of the qualifiers of the signature policy.
`commitments[]` | Commitments of the signer (CommitmentTypeIndication) that must be included in the signed data's qualifying properties that are protected (signed) by the signature itself via the corresponding ds:Signature/ds:SignedInfo/ds:Reference element.
`commitments[].type` | A commitment of the signer. The following values are supported: `"proof_of_origin"`: the signer acknowledges creating and sending the document. `"proof_of_receipt"`: the signer acknowledges receiving the document. `"proof_of_delivery"`: the signer acknowledges delivering the document to the recipient. `"proof_of_sender"`: the signer acknowledges sending the document. `"proof_of_approval"`: the signer acknowledges approving the document. `"proof_of_creation"`: the signer acknowledges creating the document. `"custom"`: the signer acknowledges what is specified in the `commitments[].uri` property.
`location` | Place where the signature was made (SignatureProductionPlace for xades-bes and xades-epes and SignatureProductionPlacev2 for xades-baseline) that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding ds:Signature/ds:SignedInfo/ds:Reference element.
`location.city` | This property is optional and contains the city where the signature was made.
`location.street_address` | This property is optional. It can only be present if the value of the type property is "xades-baseline" and contains the address (street and number) where the signature is made.
`location.state_or_province` | This property is optional and contains the province or state where the signature is made.
`location.postal_code` | This property is optional and contains the postcode where the signature is made.
`location.country_name` | This property is optional and contains the country where the signature is made.
`roles.claimed[]` | Roles the signer claims to have (SignerRole/ClaimedRoles for xades-bes and xades-epes and SignerRolev2/ClaimedRoles for xades-baseline) that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding ds:Signature/ds:SignedInfo/ds:Reference element.

## Parameters Property (Externally Detached XMLDSig/XAdES Signatures from hashes)

The `parameters` property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate": {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm" : {string},`
`"signature_target" : {`
`"type" : "document",`
`"signature_packaging" : "detached",`
`"nodes_to_sign" : [`
`{`
`"type" : "external_reference",`
`"uri" : {string},`
`"reference_type" : {string},`
`"digest_algorithm" : {string},`
`"digest_value" : {string},`
`"transforms" : [`
`{`
`"type" : "c14n",`
`"method" : {string}`
`}`
`]`
`}`
`]`
`},`
`"policy_identifier" : {`
`"policy_id" : {`
`"identifier" : {`
`"uri" : {string},`
`"qualifier" : {string}`
`},`
`"description" : {string},`
`"documentation_references" : [`
`{`
`"uri" : {string}`
`}`
`]`
`},`
`"policy_hash" : {`
`"digest_algorithm_identifier" : {`
`"id" : {string}`
`},`
`"digest_value" : {string}`
`},`
`"policy_qualifiers" : [`
`{`
`"type" : "spuri",`
`"uri" : {string}`
`}`
`]`
`}`
`"commitments" : [`
`{`
`"type" : "{string},`
`"uri" : {string}`
`}`
`],`
`"location" : {`
`"city" : {string},`
`"street_address" : {string},`
`"state_or_province" : {string},`
`"postal_code" : {string},`
`"country_name" : {string}`
`}`
`"roles" : {`
`"claimed" : [{string}]`
`}`
`}`

Property | Description
`type` | Type of XML signature: `"xmldsig"`: XMLDSig signature `"xades-bes"`: XAdES-BES signature (Basic Electronic Signature) as per ETSI TS 101 903 `"xades-epes"`: XAdES-EPES signature (Explicit Policy Electronic Signature) as per ETSI TS 101 903 `"xades-baseline"`: baseline XAdES signature as per ETSI EN 319 132-1. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional, although it is necessary for executing the obtain the hash of the document in accordance with a signature definition operation when the value of the type property is "`xades-bes"` "`xades-epes"` or `"xades_baseline"`.
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm that must be used for obtaining the hashes that must be calculated in the signature. This property is optional and can take the following values: `"sha1"`, `"sha256"`, `"sha384"` or `"sha512"`, with `"sha256"` being the default value.
`signature_target` | Information on the data to be signed, the relative location of the signature with regard to this data.
`signature_target.type` | Indicates if the signature is a countersignature. This property is optional and can only take the `"document"` value (i.e., the default value).
`signature_target.signature_packaging` | Relative position of the signature with respect to the data being signed. Always takes the `"detached"` value (the signature is separated from the data being signed).
`signature_target.nodes_to_sign[]` | This property contains information on the external data (of any type) to be signed. The array can have information from multiple data elements.
`signature_target.nodes_to_sign[].type` | Type of reference to one piece of the data to be signed. This property can only take the`"external_reference"` value (the data is external and not in the platform). This value is equivalent to saying "there is no reference" or that the reference is the hash of the data.
`signature_target.nodes_to_sign[].uri` | URI of one of the pieces of data to be signed that must appear in the signature.
`signature_target.nodes_to_sign[].digest_algorithm` | Algorithm used to obtain hash of one of the pieces of data to be signed. Its value can be`"sha1"`, `"sha256"`, `"sha384"` or `"sha512"`.
`signature_target.nodes_to_sign[].digest_value` | Hash of one of the pieces of data to be signed.
`signature_target.nodes_to_sign[].reference_type` | This property is optional and contains information on the type of data signed, as defined by the XML-DSig standard (corresponding to the `Type` attribute of the `<Reference>` element of this standard).
`signature_target.nodes_to_sign[].transforms[]` | This property is optional and contains information on the transformations performed on the data signed prior to calculating its hash (the array only has one element).
`signature_target.nodes_to_sign[].transforms[].type` | This property is required and specifies the type of one of the transformations performed on the data signed prior to calculating its hash. Currently, only the c14n value is supported (only canonicalization transformations are supported).
`signature_target.nodes_to_sign[].transforms[].method` | This property is required and specifies the one of the transformations performed on the data signed prior to calculating its hash. (This property can take as its value all the canonicalization algorithms.) c14n: inclusive algorithm (http://www.w3.org/TR/2001/REC-xml-c14n-20010315). `c14nWithComments`: inclusive algorithm with comments (http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments). `excC14n`: exclusive algorithm (http://www.w3.org/2001/10/xml-exc-c14n# `excC14nWithComments`: exclusive algorithm with comments (http://www.w3.org/2001/10/xml-exc-c14n#WithComments).
`policy_identifier` | Information on the signature policy in accordance with which the signature is performed and with which the signature must be validated. This property is only present (and in this case required) if the `type` property indicates "`xades-epes"` signature type. Information on the signature policy is included in the signature by inserting a SignaturePolicyIdentifier element in the signature's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`policy_identifier.policy_id.identifier.uri` | URI of the signature policy.
`policy_identifier.policy_id.identifier.qualifier` | URI type of the signature policy when this URI is built using an OID. The following values are supported: OIDAsURI OIDAsURN This property is optional.
`policy_identifier.policy_id.description` | Description of the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[]` | Documents with additional information on the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[].uri` | URI of a document with additional information on the policy.
`policy_identifier.policy_hash` | Information on the hash of the signature policy.
`policy_identifier.policy_hash.digest_algorithm_identifier.id` | Algorithm for calculating the hash of the signature policy. Its value can be `"sha1"`, `"sha256"`, `"sha384"` or `"sha512"`.
`policy_identifier.policy_hash.digest_value` | Hash of the signature policy.
`policy_identifier.policy_qualifiers[]` | Qualifiers of the signature policy. This property is optional.
`policy_identifier.policy_qualifiers[].type` | Type of one of the qualifiers of the signature policy. This property always takes the `"spuri"` value.
`policy_identifier.policy_qualifiers[].uri` | URI of one of the qualifiers of the signature policy.
`commitments[]` | Commitments of the signer (CommitmentTypeIndication) that must be included in the signed data's qualifying properties that are protected (signed) by the signature itself via the corresponding ds:Signature/ds:SignedInfo/ds:Reference element.
`commitments[].type` | A commitment of the signer. The following values are supported: `"proof_of_origin"`: the signer acknowledges creating and sending the document. `"proof_of_receipt"`: the signer acknowledges receiving the document. `"proof_of_delivery"`: the signer acknowledges delivering the document to the recipient. `"proof_of_sender"`: the signer acknowledges sending the document. `"proof_of_approval"`: the signer acknowledges approving the document. `"proof_of_creation"`: the signer acknowledges creating the document. `"custom"`: the signer acknowledges what is specified in the `commitments[].uri` property.
`commitments[].uri` | URI of one of the signer's commitments. This property is only present if the value of the commitments[].type property is "custom".
`location` | Place where the signature was made (SignatureProductionPlace for xades-bes and xades-epes and SignatureProductionPlacev2 for xades-baseline) that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding ds:Signature/ds:SignedInfo/ds:Reference element.
`location.city` | This property is optional and contains the city where the signature was made.
`location.street_address` | This property is optional. It can only be present if the value of the type property is "xades-baseline" and contains the address (street and number) where the signature is made.
`location.state_or_province` | This property is optional and contains the province or state where the signature is made.
`location.postal_code` | This property is optional and contains the postcode where the signature is made.
`location.country_name` | This property is optional and contains the country where the signature is made.
`roles.claimed[]` | Roles the signer claims to have (SignerRole/ClaimedRoles for xades-bes and xades-epes and SignerRolev2/ClaimedRoles for xades-baseline) that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding ds:Signature/ds:SignedInfo/ds:Reference element.

## Parameters Property (Enveloping XMLDSig/XAdES Signatures)

The `parameters` property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate": {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm" : {string},`
`"signature_target" : {`
`"type" : "document",`
`"signature_packaging" : "enveloping"`
`},`
`"include_data_object_format" : {boolean},`
`"policy_identifier" : {`
`"policy_id" : {`
`"identifier" : {`
`"uri" : {string},`
`"qualifier" : {string}`
`},`
`"description" : {string},`
`"documentation_references" : [`
`{`
`"uri" : {string}`
`}`
`]`
`},`
`"policy_hash" : {`
`"digest_algorithm_identifier" : {`
`"id" : {string}`
`},`
`"digest_value" : {string}`
`},`
`"policy_qualifiers" : [`
`{`
`"type" : "spuri",`
`"uri" : {string}`
`}`
`]`
`}`
`"commitments" : [`
`{`
`"type" : {string},`
`"uri" : {string}`
`}`
`],`
`"location" : {`
`"city" : {string},`
`"street_address" : {string},`
`"state_or_province" : {string},`
`"postal_code" : {string},`
`"country_name" : {string}`
`}`
`"roles" : {`
`"claimed" : [{string}]`
`}`
`}`

Property | Description
`type` | Type of XML signature: `"xmldsig"`: XMLDSig signature `"xades-bes"`: XAdES-BES signature (Basic Electronic Signature) as per ETSI TS 101 903 `"xades-epes"`: XAdES-EPES signature (Explicit Policy Electronic Signature) as per ETSI TS 101 903 `"xades-baseline"`: baseline XAdES signature as per ETSI EN 319 132-1. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional, although it is necessary for executing the obtain the hash of the document in accordance with a signature definition operation when the value of the type property is "`xades-bes"` "`xades-epes"` or `"xades_baseline"`.
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm that must be used to obtain the hashes that must be calculated in the signature. This property is optional and can take the following values: `"sha1", "sha256", "sha384"` or `"sha512"`, with `"sha256"` being the default value.
`signature_target` | Information on the data to be signed, the relative location of the signature with regard to this data.
`signature_target.type` | Indicates if the signature is a countersignature. This property is optional and can only take the `"document"` value (i.e., the default value).
`signature_target.signature_packaging` | Relative position of the signature with respect to the data being signed. Always takes the `"enveloping"` value (the XML signature contains the data being signed).
`include_data_object_format` | This property is optional and specifies `(true, false)`if the format of the signed data (`DataObjectFormat`) must be included in this data's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element. The default value is `false` and the format specified when the value is `true` is the format sent in the HTTP `Content-Type` header when the create a document signature process or the create a document and signature definitions resource operation is invoked to upload the document on which the signature definition is applied.
`policy_identifier` | Information on the signature policy in accordance with which the signature is performed and with which the signature must be validated. This property is only present (and in this case required) if the `type` property indicates the `"xades-epes"` signature type. Information on the signature policy is included in the signature by inserting a `SignaturePolicyIdentifier` element in the signature's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`policy_identifier.policy_id.identifier.uri` | URI of the signature policy.
`policy_identifier.policy_id.identifier.qualifier` | URI type of the signature policy when this URI is built using an OID. The following values are supported: `OIDAsURI` `OIDAsURN` This property is optional.
`policy_identifier.policy_id.description` | Description of the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[]` | Documents with additional information on the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[].uri` | URI of a document with additional information on the policy.
`policy_identifier.policy_hash` | Information on the hash of the signature policy.
`policy_identifier.policy_hash.digest_algorithm_identifier.id` | Algorithm for calculating the hash of the signature policy. Its value can be `"sha1", "sha256", "sha384"` or `"sha512"`.
`policy_identifier.policy_hash.digest_value` | Hash of the signature policy.
`policy_identifier.policy_qualifiers[]` | Qualifiers of the signature policy. This property is optional.
`policy_identifier.policy_qualifiers[].type` | Type of one of the qualifiers of the signature policy. This property always takes the `"spuri"` value.
`policy_identifier.policy_qualifiers[].uri` | URI of one of the qualifiers of the signature policy.
`commitments[]` | Commitments of the signer `(CommitmentTypeIndication)` that must be included in the signed data's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`commitments[].type` | A commitment of the signer. The following values are supported: `"proof_of_origin"`: the signer acknowledges creating and sending the document. `"proof_of_receipt"`: the signer acknowledges receiving the document. `"proof_of_delivery"`: the signer acknowledges delivering the document to the recipient. `"proof_of_sender"`: the signer acknowledges sending the document. `"proof_of_approval"`: the signer acknowledges approving the document. `"proof_of_creation"`: the signer acknowledges creating the document. `"custom"`: the signer acknowledges what is specified in the `commitments[].uri` property.
`commitments[].uri` | URI of one of the signer's commitments. This property is only present if the value of the `commitments[].type` property is `"custom"`.
`location` | Place where the signature was made `(SignatureProductionPlace` for `xades-bes` and `xades-epes` and `SignatureProductionPlacev2` for `xades-baseline)` that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`location.city` | This property is optional and contains the city where the signature was made.
`location.street_address` | This property is optional. It can only be present if the value of the type property is `"xades-baseline"` and contains the address (street and number) where the signature is made.
`location.state_or_province` | This property is optional and contains the province or state where the signature is made.
`location.postal_code` | This property is optional and contains the postcode where the signature is made.
`location.country_name` | This property is optional and contains the country where the signature is made.
`roles.claimed[]` | Roles the signer claims to have `(SignerRole/ClaimedRoles` for `xades-bes` and `xades-epes` and `SignerRolev2/ClaimedRoles` for `xades-baseline)` that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.

## Parameters Property (XMLDSig/XAdES Signatures of a Manifest)

The parameters property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate" : {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm": {string},`
`"signature_target": {`
`"type": "document",`
`"signature_packaging": "enveloping",`
`"nodes_to_sign": [`
`{`
`"type": "manifest",`
`"references": [`
`{`
`"uri": {string},`
`"digest_algorithm": {string},`
`"digest_value": {string},`
`"transforms": [`
`{`
`"type": "c14n",`
`"method": {string},`
`}`
`]`
`}`
`]`
`}`
`]`
`}`
`}`

Property | Description
`type` | Type of XML signature: "`xmldsig`": XMLDSig signature "`xades-bes`": XAdES-BES signature (Basic Electronic Signature) as per ETSI TS 101 903 "`xades-epes`": XAdES-EPES signature (Explicit Policy Electronic Signature) as per ETSI TS 101 903 "`xades-baseline`": baseline XAdES signature as per ETSI EN 319 132-1. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional, although it is necessary when the value of the type property is `"xades-bes"`, `"xades-epes"`, or `"xades_baseline".`
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm that must be used for obtaining the hashes that must be calculated in the signature. This property is optional and can take the following values: `"sha1"`, `"sha256"`, `"sha384"` or `"sha512"`, with `"sha256"` being the default value.
`signature_target` | Information on the data to be signed, and the relative location of the signature with regard to this data.
`signature_target.type` | Indicates if the signature is a countersignature. This property is optional and can only take the `"document"` value (i.e., the default value).
`signature_target.signature_packaging` | Relative position of the signature with respect to the data being signed. Always takes the `"enveloping"` value (The XML signature contains the `Manifest` element which is signed).
`signature_target.nodes_to_sign[]` | This property contains information on the data to be signed. The array can only have information regarding a single piece of data (the manifest).
`signature_target.nodes_to_sign[0].type` | This property can only take the "`manifest`" value.
`signature_target.nodes_to_sign[0].references[]` | Information on the data to be signed by including it in the Manifest element.
`signature_target.nodes_to_sign[0].references[].uri` | URI of one piece of data to be signed by including it in the Manifest element.
`signature_target.nodes_to_sign[0].references[].digest_algorithm` | Algorithm used to obtain the hash of one piece of data to be signed by including it in the Manifest element. Its value can be "`sha1`", "`sha256`", "`sha384`" or "`sha512`".
`signature_target.nodes_to_sign[0].references[].digest_value` | Hash of one piece of data to be signed by including it in the Manifest element.
`signature_target.nodes_to_sign[0].references[].transforms[]` | This property is optional and contains information on the transformations performed on one piece of data to be signed by including it in the Manifest element (the array can only hold one element).
`signature_target.nodes_to_sign[0].references[].transforms[0].type` | This property is required and specifies the type of one transformation performed on one piece of data to be signed by including it in the Manifest element before calculating its hash. Currently, only the `c14n` value is supported (only canonicalization transformations are supported).
`signature_target.nodes_to_sign[0].references[].transforms[0].method` | This property is required and specifies one of the transformations performed on one piece of data to be signed by including it in the Manifest element before calculating its hash. (This property can take as its value all the canonicalization algorithms.) `c14n`: inclusive algorithm (`http://www.w3.org/TR/2001/REC-xml-c14n-20010315`). `c14nWithComments`: inclusive algorithm with comments (`http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments`). `excC14n`: exclusive algorithm (`http://www.w3.org/2001/10/xml-exc-c14n#`). `excC14nWithComments`: exclusive algorithm with comments (`http://www.w3.org/2001/10/xml-exc-c14n#WithComments`).

## Parameters Property (XAdES Countersignatures)

The parameters property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate": {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm" : {string},`
`"signature_target" : {`
`"type" : "signature",`
`"signature_packaging" : {string},`
`"nodes_to_sign" : [`
`{`
`"type" : "signature_reference",`
`"xpath" : {string}`
`}`
`],`
`"signature_placement" : {`
`"type" : {string},`
`"xpath" : {string}`
`}`
`},`
`"default_c14n_method" : {string},`
`"policy_identifier" : {`
`"policy_id" : {`
`"identifier" : {`
`"uri" : {string},`
`"qualifier" : {string}`
`},`
`"description" : {string},`
`"documentation_references" : [`
`{`
`"uri" : {string}`
`}`
`]`
`},`
`"policy_hash" : {`
`"digest_algorithm_identifier" : {`
`"id" : {string}`
`},`
`"digest_value" : {string}`
`},`
`"policy_qualifiers" : [`
`{`
`"type" : "spuri",`
`"uri" : {string}`
`}`
`]`
`}`
`"commitments" : [`
`{`
`"type" : {string},`
`"uri" : {string}`
`}`
`],`
`"location" : {`
`"city" : {string},`
`"street_address" : {string},`
`"state_or_province" : {string},`
`"postal_code" : {string},`
`"country_name" : {string}`
`}`
`"roles" : {`
`"claimed" : [{string}]`
`}`
`}`

Property | Description
`type` | Type of XML signature: `"xmldsig"`: XMLDSig signature `"xades-bes"`: XAdES-BES (basic electronic signature) signature as per ETSI TS 101 903 `"xades-epes"`: XAdES-EPES (explicit policy electronic signature) signature as per ETSI TS 101 903 `"xades-baseline"`: baseline XAdES signature as per ETSI EN 319 132-1. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional, although it is necessary for executing the obtain the hash of the document in accordance with a signature definition operation when the value of the type property is "`xades-bes"` "`xades-epes"` or `"xades_baseline"`.
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm that must be used to obtain the hashes that must be calculated in the signature. This property is optional and can take the following values: `"sha1"`, `"sha256"`, `"sha384"` or `"sha512"`, with `"sha256"` being the default value.
`signature_target` | Information on the signature to be countersigned and the relative location of the signature with regard to this data.
`signature_target.type` | This property can only have the `"signature"` value. It specifies that the data to be signed corresponds to a signature to be countersigned.
`signature_target.signature_packaging` | Location of the countersignature with respect to the signature to be countersigned. `"enveloped":` the countersignature is contained in the countersigned signed XML. `"detached":` the countersignature is separate from the XML signature that is countersigned (as a result, the countersignature can be updated after an archive time-stamp has been added to the signature being countersigned).
`signature_target.nodes_to_sign[]` | This optional property contains information on the signature or signatures to be countersigned. If the countersignature is `"enveloped"`, the array can only have one element. By default, the countersignature is applied to the only signature (or countersignature) that has not been countersigned. If more than one (or no signature) meets this condition, an error occurs when the signature is performed. If the countersignature is `"detached"`, the array can have multiple elements, each pointing to a different signature. In the resulting countersignature, a Reference element is created for each element specified (i.e., a `"detached"` countersignature can countersign various signatures simultaneously). Each signature to be countersigned must include a `SignatureValue` element with the `Id` attribute.
`signature_target.nodes_to_sign[].type` | Type of reference to the signature to be countersigned. This property can only take the `"signature_reference"` value.
`signature_target.nodes_to_sign[].xpath` | XPath 2.0 expression that describes the path of the signatures to be countersigned (one in the "enveloped" case, any number in the `"detached"` case). The expression must be resolved in one or more Signature elements (and not in one or more `SignatureValue` elements), and these elements must have the Id attribute.
`signature_target.signature_placement` | This property can only be present if the signature definition corresponds to a detached countersignature, in which case it is optional. It contains information on the position of the counter (in the `<ds:Signature>` element) in the document to which the signature definition is applied. If not included, when the signature provider performs the countersignature based on the signature definition, it returns only the countersignature in question, analogously or however externally detached signatures are performed.
`signature_target.signature_placement.xpath` | XPath 2.0 expression that describes (along with the `signature_target.signature_placement.type` parameter) the path of the countersignature in the document to which the signature definition is applied.
`signature_target.signature_placement.type` | Placement of the node containing the signature (<ds:Signature> element) with respect to the path indicated by signature_target.signature_placement.xpath. `"last_child_of"`: the signature is the last child node of the node whose path is specified in signature_target.signature_placement.xpath). `"first_child_of"`: the signature is the first child node of the node whose path is specified in signature_target.signature_placement.xpath). `"after"`: the signature is the first sibling node after the node whose path is specified in signature_target.signature_placement.xpath). `"before"`: the signature is the first sibling node prior to the node whose path is specified in signature_target.signature_placement.xpath).
`default_c14n_method` | Canonicalization algorithm used: `c14n`: inclusive algorithm (`http://www.w3.org/TR/2001/REC-xml-c14n-20010315`). `c14nWithComments`: inclusive algorithm with comments (`http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments`). `excC14n`: exclusive algorithm (`http://www.w3.org/2001/10/xml-exc-c14n#` `excC14nWithComments`: exclusive algorithm with comments (`http://www.w3.org/2001/10/xml-exc-c14n#WithComments)`. This property is optional and its default value is `excC14n`.
`policy_identifier` | Information on the signature policy in accordance with which the signature is performed and with which the signature must be validated. This property is only present (and in this case required) if the type property indicates the `"xades-epes"` signature type. Information on the signature policy is included in the signature by inserting a `SignaturePolicyIdentifier` element in the signature's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`policy_identifier.policy_id.identifier.uri` | URI of the signature policy.
`policy_identifier.policy_id.identifier.qualifier` | URI type of the signature policy when this URI is built using an OID. The following values are supported: `OIDAsURI` `OIDAsURN` This property is optional.
`policy_identifier.policy_id.description` | Description of the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[]` | Documents with additional information on the policy. This property is optional.
`policy_identifier.policy_id.documentation_references[].uri` | URI of a document with additional information on the policy.
`policy_identifier.policy_hash` | Information on the hash of the signature policy.
`policy_identifier.policy_hash.digest_algorithm_identifier.id` | Algorithm for calculating the hash of the signature policy. Its value can be `"sha1"`, `"sha256"`, `"sha384"` or `"sha512"`.
`policy_identifier.policy_hash.digest_value` | Hash of the signature policy.
`policy_identifier.policy_qualifiers[]` | Qualifiers of the signature policy. This property is optional.
`policy_identifier.policy_qualifiers[].type` | Type of one of the qualifiers of the signature policy. This property always takes the `"spuri"` value.
`policy_identifier.policy_qualifiers[].uri` | URI of one of the qualifiers of the signature policy.
`commitments[]` | Commitments of the signer (`CommitmentTypeIndication`) that must be included in the signed data's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`commitments[].type` | A commitment of the signer. The following values are supported: "`proof_of_origin`": the signer acknowledges creating and sending the document. "`proof_of_receipt`": the signer acknowledges receiving the document. "`proof_of_delivery`": the signer acknowledges delivering the document to the recipient. "`proof_of_sender`": the signer acknowledges sending the document. "`proof_of_approval`": the signer acknowledges approving the document. "`proof_of_creation`": the signer acknowledges creating the document. "`custom`": the signer acknowledges what is specified in the commitments[].uri.
`commitments[].uri` | URI of one of the signer's commitments. This property is only present if the value of the `commitments[].type` property is `"custom"`.
`location` | Place where the signature was made (`SignatureProductionPlace` for `xades-bes` and `xades-epes` and `SignatureProductionPlacev2` for`xades-baseline`) that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.
`location.city` | This property is optional and contains the city where the signature was made.
`location.street_address` | This property is optional. It can only be present if the value of the type property is `"xades-baseline"` and contains the address (street and number) where the signature is made.
`location.state_or_province` | This property is optional and contains the province or state where the signature is made.
`location.postal_code` | This property is optional and contains the postcode where the signature is made.
`location.country_name` | This property is optional and contains the country where the signature is made.
`roles.claimed[]` | Roles the signer claims to have (`SignerRole/ClaimedRoles` for `xades-bes` and `xades-epes` and `SignerRolev2/ClaimedRoles` for `xades-baseline`) that must be included in the signer's qualifying properties that are protected (signed) by the signature itself via the corresponding `ds:Signature/ds:SignedInfo/ds:Reference` element.

## Parameters Property (CMS/CAdES Signatures)

The `parameters` property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate": {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm" : {string},`
`"signature_target" : {`
`"type" : "document",`
`"signature_packaging" : {string}`
`},`
`"policy_identifier" : {`
`"policy_id" : { "oid" : {string} },`
`"policy_hash" : {`
`"digest_algorithm_identifier" : { "id" : {string} },`
`"digest_value" : {string}`
`}`
`},`
`"mime-type" : {string},`
`"commitments" : [ { "type" : {string} } ],`
`"location" : {`
`"country_name" : {string},`
`"locality_name" : {string},`
`"postal_address" : {string}`
`}`
`"roles" : {`
`"claimed" : [{string}]`
`},`
`"signed_attributes" : [`
`{`
`"type" : {string},`
`"oid" : {string},`
`"encoded" : {string}`
`}`
`],`
`"unsigned_attributes" : [`
`{`
`"type" : {string},`
`"oid" : {string},`
`"encoded" : {string}`
`}`
`]`
`"content_hints" : [`
`{`
`"content_type" : { "oid" : {string} },`
`"content_description" : {string}`
`}`
`]`
`}`

Property | Description
`type` | Type of CMS signature`:` `"cms":` CMS signature as per RFC 3852 `"cades-bes":` CAdES-BES signature (Basic Electronic Signature) as per ETSI TS 101 733 `"cades-epes":` CAdES-EPES signature (Explicit Policy-based Electronic Signature) as per ETSI TS 101 733 `"cades-baseline":` baseline CAdES signature as per ETSI EN 319 132-1. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional, although it is necessary for executing the obtain the hash of the document in accordance with a signature definition operation when the value of the type property is `"cades-bes", "cades-epes"` or `"cades-baseline"`.
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm that must be used to obtain the hashes that must be calculated in the signature. This property is optional and can take the following values: `"sha1", "sha256", "sha384"` or `"sha512"`, with `"sha256"` being the default value.
`signature_target` | This property is optional and contains information on the relative position of the signature with regard to the data to be signed.
`signature_target.type` | This property is optional and can only take the `"document"` value (i.e., the default value).
`signature_target.signature_packaging` | Relative position of the signature with respect to the data being signed. This property is optional. It supports the following values: `"detached"` or `"enveloping"` (attached). `"detached"` is the default value.
`policy_identifier` | Information on the signature policy in accordance with which the signature is performed and with which the signature must be validated. This property is required if the signature type specified by the type property is `"cades-epes"`. It is optional if the signature type is `"cades-baseline"`. It cannot be present if the signature type is `"cms"` or `"cades-bes"`.
`policy_identifier.policy_id.oid` | OID of the signature policy.
`policy_identifier.policy_hash.digest_algorithm_identifier.id` | Algorithm for calculating the hash of the signature policy. Its value can be `"sha1", "sha256", "sha384"` or `"sha512"`.
`policy_identifier.policy_hash.digest_value` | Hash of the signature policy.
`mime-type` | MIME type of the signed data. This property is optional if the value of the type property is `"cades-bes", "cades-epes"` or `"cades-baseline"`. This property cannot be present if this value is `"cms"`.
`commitments[]` | Commitments of the signer that must be included in the signed attributes of the signature. This property is optional if the value of the type property is `"cades-bes", "cades-epes"` or `"cades-baseline"`. This property cannot be present if this value is `"cms"`.
`commitments[].type` | A commitment of the signer. The following values are supported: `"proof_of_origin"`: the signer acknowledges creating and sending the document. `"proof_of_receipt"`: the signer acknowledges receiving the document. `"proof_of_delivery"`: the signer acknowledges delivering the document to the recipient. `"proof_of_sender"`: the signer acknowledges sending the document. `"proof_of_approval"`: the signer acknowledges approving the document. `"proof_of_creation"`: the signer acknowledges creating the document. `"custom"`: the signer acknowledges what is specified in the `commitments[].oid` property.
`commitments[].oid` | OID identifying a signer commitment. This property is optional and only used by the "`custom`" type commitments.
`location` | Information on the location where the signature was made that must include the signed attributes of the signature. This property is optional if the value of the type property is `"cades-bes", "cades-epes"` or `"cades-baseline"`. This property cannot be present if this value is `"cms"`.
    location.country_name
| This property is optional and contains the country where the signature is made.
`location.locality_name` | This property is optional and contains the locality where the signature was made.
`location.postal_address` | This property is optional and contains the postal address where the signature is made.
`roles.claimed[]` | Roles that the signer claims to have — must be included in the signed attributes of the signature. This property is optional if the value of the type property is `"cades-bes", "cades-epes"` or `"cades-baseline"`. This property cannot be present if this value is `"cms"`.
`signed_attributes[]` | This property is optional and contains information on the additional signed attributes that must be put in the signature.
`signed_attributes[].type` | This property can only take the `"custom"` value. It specifies the additional signed attribute type that must be put in the signature.
`signed_attributes[].oid` | OID that identifies the type of one of the signed attributes that must be put in the signature.
`signed_attributes[].encoded` | Value of one of signed attributes that must be put in the signature.
`unsigned_attributes[]` | This property is optional and contains information on the unsigned attributes that must be put in the signature.
`unsigned_attributes[].type` | This property can only take the `"custom"` value. It specifies the unsigned attribute type that must be put in the signature.
`unsigned_attributes[].oid` | OID that identifies the type of one of the unsigned attributes that must be put in the signature.
`unsigned_attributes[].encoded` | Value of one of the unsigned attributes that must be put in the signature.
`content_hints[]` | Information on the content encapsulated by the data being signed. For example, if the encryption of data is being signed, it can contain information on the encrypted data. This property is optional if the value of the type property is `"cades-bes", "cades-epes"` or `"cades-baseline"`. This property cannot be present if this value is "cms".
`content_hints[].content_type.oid` | OID that identifies the content type encapsulating the data to be signed.
`content_hints[].content_description` | Text description of the content encapsulated by the data to be signed.

## Parameters Property (CMS/CAdES Countersignatures)

The parameters property is represented in JSON as follows:

`{`
`"type" : {string},`
`"certificate": {string},`
`"chain_certificates": [{string}],`
`"default_digest_algorithm" : {string},`
`"signature_target" : {`
`"type" : "signature"`
`},`
`"policy_identifier" : {`
`"policy_id" : { "oid" : {string} },`
`"policy_hash" : {`
`"digest_algorithm_identifier" : { "id" : {string} },`
`"digest_value" : {string}`
`}`
`},`
`"commitments" : [`
`{`
`"type" : {string},`
`"oid" : {string}`
`}`
``
`"location" : {`
`"country_name" : {string},`
`"locality_name" : {string},`
`"postal_address" : {string}`
`}`
`"roles" : {`
`"claimed" : [{string}]`
`},`
`"signed_attributes" : [`
`{`
`"type" : {string},`
`"oid" : {string},`
`"encoded" : {string}`
`}`
`],`
`"unsigned_attributes" : [`
`{`
`"type" : {string},`
`"oid" : {string},`
`"encoded" : {string}`
`}`
`]`
`}`

Property | Description
`type` | Type of CMS signature: `"cms":` CMS signature as per RFC 3852 `"cades-bes":` CAdES-BES (basic electronic signature) signature as per ETSI TS 101 733 `"cades-epes":` CAdES-EPES signature (Explicit Policy-based Electronic Signature) as per ETSI TS 101 733 `"cades-baseline":` baseline CAdES signature as per ETSI EN 319 132-1. Although the signature definition initially corresponds to a B-B signature, it could end up corresponding to B-T signature if a time-stamp is added to it (e.g., the signature is made by executing a document signature process in whose creation the inclusion of a time-stamp was specified).
`certificate` | Signer's certificate encoded in base64. This property is optional, although it is necessary for executing the obtain the hash of the document in accordance with a signature definition operation when the value of the type property is `"cades-bes", "cades-epes" or "cades-baseline"`.
`chain_certificates[]` | The signer's certificate chain encoded in base64, and non-including the root certificate.
`default_digest_algorithm` | Hash algorithm that must be used to obtain the hashes that must be calculated in the signature. This property is optional and can take the following values: `"sha1", "sha256", "sha384"` or `"sha512"`, with `"sha256"` being the default value.
`signature_target.type` | This property can only have the `"signature"` value. It specifies that the data to be signed corresponds to a signature to be countersigned. This signature must always be in the CMS/CAdES structure that constitutes the content `(content)` of the document and signature definitions resource that the signature definition forms part of. This structure only supports the following possibilities (otherwise an error occurs): It contains a signature and no countersignature. In this case, the signature is countersigned. It contains a signature and a sequence of countersignatures, the first of which is a countersignature on the signature. The following countersignatures countersign the preceding countersignatures. The last countersignature of the sequence is countersigned.
`policy_identifier` | Information on the signature policy in accordance with which the signature is performed and with which the signature must be validated. This property is required if the signature type specified by the type property is `"cades-epes"`. It is optional if the signature type is `"cades-baseline"`. It cannot be present if the signature type is `"cms"` or `"cades-bes"`.
`policy_identifier.policy_id.oid` | OID of the signature policy.
`policy_identifier.policy_hash.digest_algorithm_identifier.id` | Algorithm for calculating the hash of the signature policy. Its value can be `"sha1", "sha256", "sha384"` or `"sha512"`.
`policy_identifier.policy_hash.digest_value` | Hash of the signature policy.
`commitments[]` | Commitments of the signer that must be included in the signed attributes of the signature. This property is optional if the value of the type property is `"cades-bes", "cades-epes"` or `"cades-baseline"`. This property cannot be present if this value is `"cms"`.
`commitments[].type` | Type of one of the signer's commitments. `"proof_of_origin"`: the signer acknowledges creating and sending the document. `"proof_of_receipt"`: the signer acknowledges receiving the document. `"proof_of_delivery"`: the signer acknowledges delivering the document to the recipient. `"proof_of_sender"`: the signer acknowledges sending the document. `"proof_of_approval"`: the signer acknowledges approving the document. `"proof_of_creation"`: the signer acknowledges creating the document. `"custom"`: the signer acknowledges what is specified in the `commitments[].oid` property.
`commitments[].oid` | OID identifying a signer commitment. This property is optional and only used by the `"custom"` type commitments.
`location` | Information on the location where the signature was made that must include the signed attributes of the signature. This property is optional if the value of the type property is `"cades-bes", "cades-epes"` or `"cades-baseline"`. This property cannot be present if this value is `"cms"`.
`location.country_name` | This property is optional and contains the country where the signature is made.
`location.locality_name` | This property is optional and contains the locality where the signature was made.
`location.postal_address` | This property is optional and contains the postal address where the signature is made.
`roles.claimed[]` | Roles that the signer claims to have — must be included in the signed attributes of the signature. This property is optional if the value of the type property is `"cades-bes", "cades-epes"` or `"cades-baseline"`. This property cannot be present if this value is `"cms".`
`signed_attributes[]` | This property is optional and contains information on the additional signed attributes that must be put in the signature.
`signed_attributes[].type` | This property can only take the `"custom"` value. It specifies the additional signed attribute type that must be put in the signature.
`signed_attributes[].oid` | OID that identifies the type of one of the signed attributes that must be put in the signature.
`signed_attributes[].encoded` | Value of one of signed attributes that must be put in the signature.
`unsigned_attributes[]` | This property is optional and contains information on the unsigned attributes that must be put in the signature.
`unsigned_attributes[].type` | This property can only take the `"custom"` value. It specifies the unsigned attribute type that must be put in the signature.
`unsigned_attributes[].oid` | OID that identifies the type of one of the unsigned attributes that must be put in the signature.
`unsigned_attributes[].encoded` | Value of one of the unsigned attributes that must be put in the signature.

# Operations

- Create a signature definition

- Update a signature definition

- Obtain the hash of the document in accordance with a signature definition

- Obtain the hash of a signature for requesting a time-stamp