---
id: create-data-disclosure-agreement-template
title: "Create Data Disclosure Agreement Template"
description: "Creates a Data Disclosure Agreement Template."
sidebar_label: "Create Data Disclosure Agreement Template"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "post api-method"
info_path: docs/datamarketplace-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>Create Data Disclosure Agreement Template</h1>

<MethodEndpoint method={"post"} path={"/v3/config/data-disclosure-agreement"}></MethodEndpoint>



Creates a Data Disclosure Agreement Template.

## Request

<MimeTabs className={"openapi-tabs__mime"}><TabItem label={"application/json"} value={"application/json-schema"}><details style={{}} className={"openapi-markdown__details mime"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-mime"}><h3 className={"openapi-markdown__details-summary-header-body"}>Body</h3></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataDisclosureAgreementTemplate</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Required fields to create a Data Disclosure Agreement Template

</div><SchemaItem collapsible={false} name={"language"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ISO 639-1 language code (e.g. 'en' or 'sv')","example":"en"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataController</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

An organisation constituted as a legally defined entity in any jurisdiction

</div><SchemaItem collapsible={false} name={"publicKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Data controller public key"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** `<= 50 characters`"} schema={{"type":"string","maxLength":50,"description":"Data controller name"}}></SchemaItem><SchemaItem collapsible={false} name={"legalId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Data controller legal identifier"}}></SchemaItem><SchemaItem collapsible={false} name={"url"} required={true} schemaName={"uri"} qualifierMessage={undefined} schema={{"type":"string","format":"uri","description":"Data controller URL"}}></SchemaItem><SchemaItem collapsible={false} name={"industrySector"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** `<= 50 characters`"} schema={{"type":"string","maxLength":50,"description":"Data controller industry sector"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"agreementPeriod"} required={true} schemaName={"integer"} qualifierMessage={"**Possible values:** `>= 1`"} schema={{"type":"integer","minimum":1,"description":"Days for which the agreement is valid","example":365}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataSharingRestrictions</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Restrictions on how the data is shared. OBS! Object should be 'dataSharingRestrictions'


</div><SchemaItem collapsible={false} name={"policyUrl"} required={true} schemaName={"uri"} qualifierMessage={undefined} schema={{"type":"string","format":"uri","description":"Where to find the policy"}}></SchemaItem><SchemaItem collapsible={false} name={"jurisdiction"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Jurisdiction where the data sharing restrictions apply"}}></SchemaItem><SchemaItem collapsible={false} name={"dataRetentionPeriod"} required={true} schemaName={"integer"} qualifierMessage={"**Possible values:** `>= 1`"} schema={{"type":"integer","minimum":1,"description":"How many days the data can be kept"}}></SchemaItem><SchemaItem collapsible={false} name={"geographicRestriction"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Where the data can be shared to"}}></SchemaItem><SchemaItem collapsible={false} name={"storageLocation"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Where the data is stored"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"purpose"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** `<= 100 characters`"} schema={{"type":"string","maxLength":100,"description":"Required if active=true, unless present already from the draft version"}}></SchemaItem><SchemaItem collapsible={false} name={"purposeDescription"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** `<= 500 characters`"} schema={{"type":"string","maxLength":500,"description":"Required if active=true, unless present already from the draft version"}}></SchemaItem><SchemaItem collapsible={false} name={"lawfulBasis"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`contract`]"} schema={{"type":"string","enum":["contract"],"description":"Required if active=true, unless present already from the draft version"}}></SchemaItem><SchemaItem collapsible={false} name={"codeOfConduct"} required={true} schemaName={"uri"} qualifierMessage={undefined} schema={{"type":"string","format":"uri","description":"URL to code of conduct"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ID of the connected Data Agreement"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementRevisionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ID of the connected Data Agreement Revision"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementRevisionHash"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Hash of the connected Data Agreement Revision"}}></SchemaItem><SchemaItem collapsible={false} name={"presentationDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ID of the connected Presentation Definition"}}></SchemaItem><SchemaItem collapsible={false} name={"active"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Publish immediately if true"}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Data Disclosure Agreement Template created

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}><li className={"schemaItem"}><summary style={{}}><strong>Content-Type</strong><span style={{"opacity":"0.6"}}> json</span></summary><div><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Content-Type header

</div></div></li></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataDisclosureAgreementTemplate</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

A template outlines an agreement between a Data Source and  Data Using Service that can be signed by both.


</div><SchemaItem collapsible={false} name={"context"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Array of URIs of JSON-LD contexts"}}></SchemaItem><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique Data Disclosure Agreement Template identifier"}}></SchemaItem><SchemaItem collapsible={false} name={"type"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"example":["DataDisclosureAgreement"],"description":"The Data Disclosure Agreement type from context"}}></SchemaItem><SchemaItem collapsible={false} name={"language"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ISO 639-1 language code (e.g. 'en' or 'sv')"}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The version of this Data Disclosure Agreement Template"}}></SchemaItem><SchemaItem collapsible={false} name={"templateId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique Data Disclosure Agreement Template identifier (derived from 'id')"}}></SchemaItem><SchemaItem collapsible={false} name={"templateVersion"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The version of this Data Disclosure Agreement Template (derived from 'version')"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataController</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

An organisation constituted as a legally defined entity in any jurisdiction

</div><SchemaItem collapsible={false} name={"publicKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Data controller public key"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** `<= 50 characters`"} schema={{"type":"string","maxLength":50,"description":"Data controller name"}}></SchemaItem><SchemaItem collapsible={false} name={"legalId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Data controller legal identifier"}}></SchemaItem><SchemaItem collapsible={false} name={"url"} required={true} schemaName={"uri"} qualifierMessage={undefined} schema={{"type":"string","format":"uri","description":"Data controller URL"}}></SchemaItem><SchemaItem collapsible={false} name={"industrySector"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** `<= 50 characters`"} schema={{"type":"string","maxLength":50,"description":"Data controller industry sector"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"agreementPeriod"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Days for which agreement is valid"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataSharingRestrictions</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Restrictions on how the data is shared. OBS! Object should be 'dataSharingRestrictions'


</div><SchemaItem collapsible={false} name={"policyUrl"} required={true} schemaName={"uri"} qualifierMessage={undefined} schema={{"type":"string","format":"uri","description":"Where to find the policy"}}></SchemaItem><SchemaItem collapsible={false} name={"jurisdiction"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Jurisdiction where the data sharing restrictions apply"}}></SchemaItem><SchemaItem collapsible={false} name={"dataRetentionPeriod"} required={true} schemaName={"integer"} qualifierMessage={"**Possible values:** `>= 1`"} schema={{"type":"integer","minimum":1,"description":"How many days the data can be kept"}}></SchemaItem><SchemaItem collapsible={false} name={"geographicRestriction"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Where the data can be shared to"}}></SchemaItem><SchemaItem collapsible={false} name={"storageLocation"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Where the data is stored"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"purpose"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Purpose of the Data Disclosure Agreement"}}></SchemaItem><SchemaItem collapsible={false} name={"purposeDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Description of the Data Disclosure Agreement"}}></SchemaItem><SchemaItem collapsible={false} name={"lawfulBasis"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`contract`]"} schema={{"type":"string","enum":["contract"],"description":"Lawful basis for the Data Disclosure Agreement"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataAttributes</strong><span className={"openapi-schema__name"}> object[]</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c8501","description":"Data attribute ID"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"Name","description":"Name of the attribute, for instance \"name\" or \"age\""}}></SchemaItem><SchemaItem collapsible={false} name={"description"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"Full name of the individual","description":"Description of the attribute"}}></SchemaItem><SchemaItem collapsible={false} name={"sensitivity"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":false,"description":"Sensitivity of data attribute"}}></SchemaItem><SchemaItem collapsible={false} name={"category"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"Personal","description":"Category of data attribute"}}></SchemaItem><SchemaItem collapsible={false} name={"scope"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"read","description":"Scope required for data attribute"}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"codeOfConduct"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL to code of conduct"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ID of the connected Data Agreement"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementRevisionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ID of the connected Data Agreement Revision"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementRevisionHash"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Hash of the connected Data Agreement Revision"}}></SchemaItem><SchemaItem collapsible={false} name={"active"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Whether the Data Disclosure Agreement is published or not"}}></SchemaItem><SchemaItem collapsible={false} name={"presentationDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"ID of the connected Presentation Definition"}}></SchemaItem><SchemaItem collapsible={false} name={"openApiSpecification"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"OpenAPI specification of the Data Agreement, defining available APIs for Data Using Services"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>revision</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

A *generic* revision model captures the serialised contents of any schema's single row. This is then subject to 1) cryptographic signature and 2) auditing.

Aside from the "successor" column, a revision should be considered locked.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c6601","description":"Revision ID"}}></SchemaItem><SchemaItem collapsible={false} name={"schemaName"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`dataAgreement`, `policy`, `dataAgreementRecord`]"} schema={{"type":"string","format":"","example":"dataAgreement","description":"Previously \"schema\" but for technical reasons should be called \"schemaName\"","enum":["dataAgreement","policy","dataAgreementRecord"]}}></SchemaItem><SchemaItem collapsible={false} name={"objectId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c8492","description":"The PK of the object that was serialised"}}></SchemaItem><SchemaItem collapsible={false} name={"objectData"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"The object that is serialised"}}></SchemaItem><SchemaItem collapsible={false} name={"signedWithoutObjectId"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":false,"description":"Indicates that objectId was left blank in serizalizedSnapshot when calculating serializedHash. objectId may subsequently be filled in."}}></SchemaItem><SchemaItem collapsible={false} name={"serizalizedSnapshot"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"Revisioned data (sed as JSON) as a dict. Apply JSON Canonicalization Scheme as per IETF RFC 8785.  It contains all the fields of the schema except sucessorId, serializedHash, serializedSnapshot.\n"}}></SchemaItem><SchemaItem collapsible={false} name={"serializedHash"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2","description":"Hash of serizalizedSnapshot (SHA-1)"}}></SchemaItem><SchemaItem collapsible={false} name={"timestamp"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"2024-01-15T10:30:00Z","description":"Timestamp of when revisioning happened. It should be ISO 8601 UTC date time"}}></SchemaItem><SchemaItem collapsible={false} name={"authorizedByIndividualId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"description":"Individual ID","type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"authorizedByOtherId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"64541a2e6e7569000145ab00","description":"Reference to an admin user that has created this revision"}}></SchemaItem><SchemaItem collapsible={false} name={"successorId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"x-fk-model":"Revision","type":"string","description":"If this revision is no longer the latest revision, refer to its successor"}}></SchemaItem><SchemaItem collapsible={false} name={"predecessorHash"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3","description":"Tamper-resistent artifact from previous record, copied from serializedHash"}}></SchemaItem><SchemaItem collapsible={false} name={"predecessorSignature"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"c3d4e5f6a1b2...","description":"Tamper-resistent artifact from previous record (we don't know if the previous record was signed or not)"}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"dataDisclosureAgreementTemplate\": {\n    \"context\": [\n      \"string\"\n    ],\n    \"id\": \"string\",\n    \"type\": [\n      \"DataDisclosureAgreement\"\n    ],\n    \"language\": \"string\",\n    \"version\": \"string\",\n    \"templateId\": \"string\",\n    \"templateVersion\": \"string\",\n    \"dataController\": {\n      \"publicKey\": \"string\",\n      \"name\": \"string\",\n      \"legalId\": \"string\",\n      \"url\": \"string\",\n      \"industrySector\": \"string\"\n    },\n    \"agreementPeriod\": 0,\n    \"dataSharingRestrictions\": {\n      \"policyUrl\": \"string\",\n      \"jurisdiction\": \"string\",\n      \"dataRetentionPeriod\": 0,\n      \"geographicRestriction\": \"string\",\n      \"storageLocation\": \"string\"\n    },\n    \"purpose\": \"string\",\n    \"purposeDescription\": \"string\",\n    \"lawfulBasis\": \"contract\",\n    \"dataAttributes\": [\n      {\n        \"id\": \"65471222e8c7c3bb3c2c8501\",\n        \"name\": \"Name\",\n        \"description\": \"Full name of the individual\",\n        \"sensitivity\": false,\n        \"category\": \"Personal\",\n        \"scope\": \"read\"\n      }\n    ],\n    \"codeOfConduct\": \"string\",\n    \"dataAgreementId\": \"string\",\n    \"dataAgreementRevisionId\": \"string\",\n    \"dataAgreementRevisionHash\": \"string\",\n    \"active\": true,\n    \"presentationDefinitionId\": \"string\",\n    \"openApiSpecification\": {}\n  },\n  \"revision\": {\n    \"id\": \"65471222e8c7c3bb3c2c6601\",\n    \"schemaName\": \"dataAgreement\",\n    \"objectId\": \"65471222e8c7c3bb3c2c8492\",\n    \"objectData\": \"{...}\",\n    \"signedWithoutObjectId\": false,\n    \"serizalizedSnapshot\": \"{...}\",\n    \"serializedHash\": \"a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2\",\n    \"timestamp\": \"2024-01-15T10:30:00Z\",\n    \"authorizedByIndividualId\": \"string\",\n    \"authorizedByOtherId\": \"64541a2e6e7569000145ab00\",\n    \"successorId\": \"string\",\n    \"predecessorHash\": \"b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3\",\n    \"predecessorSignature\": \"c3d4e5f6a1b2...\"\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      