---
id: service-create-individual-consent-record-draft
title: "Create draft consent record"
description: "This endpoint is used to create a draft (unsaved) consent record and signature object (without a PKI) for a data agreement."
sidebar_label: "Create draft consent record"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "post api-method"
info_path: docs/consent-management-individual-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 draft consent record</h1>

<MethodEndpoint method={"post"} path={"/service/individual/record/consent-record/draft"}></MethodEndpoint>



This endpoint is used to create a draft (unsaved) consent record and signature object (without a PKI) for a data agreement.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Query Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"An object with ID individualId","in":"query","name":"individualId","required":true,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"An object with ID dataAgreementId","in":"query","name":"dataAgreementId","required":true,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"An object with ID revisionId","in":"query","name":"revisionId","required":false,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Header Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"in":"header","name":"X-ConsentBB-IndividualId","required":true,"schema":{"type":"string"},"description":"Individual ID"}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Draft consent record created successfully

</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={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>consentRecord</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

A consent record expresses consent (as defined in this building block's specification) to a single DataAgreement. There must be a UNIQUE constraint on (data agreement revision, individual)

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c9901","description":"Objects may be passed back by some API endpoints without an ID (PK), denoting that they are a \"draft\", i.e. a ConsentRecord that is not yet stored in the database and only exist in transit. Draft ConsentRecords do not have a Revision, but if paired up with a Signature, a valid Revision should be generated."}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","x-fk-model":"DataAgreement","description":"The DataAgreement to which consent has been given"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementRevisionId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","x-fk-model":"Revision","description":"The Revision of the data agreement which consent has been given to"}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementRevisionHash"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"a1b2c3d4e5f6...","description":"Copy of the revision hash. The hash is the included in the signature and ensures against tampering with the original agreement."}}></SchemaItem><SchemaItem collapsible={false} name={"individualId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","x-fk-model":"Individual","description":"The Individual who has signed this consent record"}}></SchemaItem><SchemaItem collapsible={false} name={"optIn"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":true,"description":"True: The individual has positively opted in. False: The individual has explicitly said no (or withdrawn a previous consent)."}}></SchemaItem><SchemaItem collapsible={false} name={"state"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`unsigned`, `signed`]"} schema={{"type":"string","format":"","example":"signed","description":"The state field is used to record state changes after-the-fact. It is maintained by the Consent BB itself. Valid states: unsigned/pending more signatures/signed","enum":["unsigned","signed"]}}></SchemaItem><SchemaItem collapsible={false} name={"signatureId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","x-fk-model":"Signature","description":"A signature that hashes all the values of the consent record and has signed it with the key of the Invidiual, making it verifiable and tamper-proof. TBD: Relation to a Signature schema?"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>sectorPreferences</strong><span className={"openapi-schema__name"}> object[]</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={"sector"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"","description":"Name of the sector"}}></SchemaItem><SchemaItem collapsible={false} name={"optIn"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Defines sector is opted in or not"}}></SchemaItem><SchemaItem collapsible={false} name={"isLastUpdated"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Defines consent record for this sector is last updated"}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></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"}>signature</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

A generic signature contains a cryptographic hash of some value,  together with a signature created by some private key in another system.  Required signing methods: Revision object or another Signature object.


</div><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c5501","description":"Objects may be passed back by some API endpoints without an id (PK), denoting that they are a \"draft\", i.e. a Signature that is not yet stored in the database and only exists in transit."}}></SchemaItem><SchemaItem collapsible={false} name={"payload"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"The final payload that is signed, constructed as a JSON serialisation of fields {verificationPayload: ..., verificationPayloadHash: ..., verificationMethod: ..., verificationArtifact: ..., verificationSignedBy: ..., verificationJwsHeader, timestamp: ..., signedWithoutObjectReference: ..., objectType: ..., objectReference: ...}. Serialised as a JSON dict. If the signature is generated before anything is stored in the database (and has a PK), then the objectReference should be omitted from the payload but filled in afterwards."}}></SchemaItem><SchemaItem collapsible={false} name={"signature"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"eyJhbGciOiJFZERTQSJ9...","description":"Signature of payload hash, the format of the signature should be specified by either verificationMethod or verificationJwsHeader"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationMethod"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"Ed25519Signature2020","description":"A well-known string denoting which method is used. Valid values: TBD. This might be expanded with supported verification methods. There may be a minimal set of supported methods necessary."}}></SchemaItem><SchemaItem collapsible={false} name={"verificationPayload"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"{...}","description":"Internally generated serialised version of the data referenced by objectType and objectReference - by extracting and serialising their data as JSON"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationPayloadHash"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"a1b2c3d4e5f6...","description":"Internally generated cryptographic hash of the value to be signed, i.e. the value of verificationPayload"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationArtifact"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"","description":"A verification artifact in the form of a scanned object, image, signature etc"}}></SchemaItem><SchemaItem collapsible={false} name={"verificationSignedBy"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"did:key:z6Mkf...","description":"Because an identifier's information may change over time, there is a need to store that information at the time of signing. In the case of a cryptographic signature, this field should contain some identifier for looking up or verifying the public key of the signing party. In the case of a non-cryptographic signature, this field could contain a natural individual's names, personal number, email addresses - store a snapshot that binds to the signature at the time of signing. In the case of a cryptographic signature, this may be the fingerprint of the individual's public key or in some cases, a token from the user's ID session."}}></SchemaItem><SchemaItem collapsible={false} name={"verificationSignedAs"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"individual","description":"DRAFT FIELD: Specifies the relationship between the authorising signature and the invidual which the payload concerns. This is relevant for Consent Records. Possible values: \"individual\" / \"delegate\"."}}></SchemaItem><SchemaItem collapsible={false} name={"verificationJwsHeader"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"","description":"Alternative to the verificationMethod, verificationHash and verificationSignature, give a JWS serialised object (RFC7515)"}}></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 signature, currently this field isn't part of the payload so it's not tamper-proof"}}></SchemaItem><SchemaItem collapsible={false} name={"signedWithoutObjectReference"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","format":"","example":false,"description":"Indicates that objectReference was left blank in the serialised version that was signed"}}></SchemaItem><SchemaItem collapsible={false} name={"objectType"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`revision`, `signature`]"} schema={{"type":"string","format":"","example":"revision","description":"Name of the schema model that objectReference points to. Values: \"signature\" or \"revision\"","enum":["revision","signature"]}}></SchemaItem><SchemaItem collapsible={false} name={"objectReference"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","format":"","example":"65471222e8c7c3bb3c2c6601","description":"A symmetric relation / back reference to the objectType that was signed. We are currently just modelling signing another signature (a chain) or signing a Revision (which can be a revision of a consent record, an agreement, policy etc)."}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"consentRecord\": {\n    \"id\": \"65471222e8c7c3bb3c2c9901\",\n    \"dataAgreementId\": \"string\",\n    \"dataAgreementRevisionId\": \"string\",\n    \"dataAgreementRevisionHash\": \"a1b2c3d4e5f6...\",\n    \"individualId\": \"string\",\n    \"optIn\": true,\n    \"state\": \"signed\",\n    \"signatureId\": \"string\",\n    \"sectorPreferences\": [\n      {\n        \"sector\": \"\",\n        \"optIn\": true,\n        \"isLastUpdated\": true\n      }\n    ]\n  },\n  \"signature\": {\n    \"id\": \"65471222e8c7c3bb3c2c5501\",\n    \"payload\": \"{...}\",\n    \"signature\": \"eyJhbGciOiJFZERTQSJ9...\",\n    \"verificationMethod\": \"Ed25519Signature2020\",\n    \"verificationPayload\": \"{...}\",\n    \"verificationPayloadHash\": \"a1b2c3d4e5f6...\",\n    \"verificationArtifact\": \"\",\n    \"verificationSignedBy\": \"did:key:z6Mkf...\",\n    \"verificationSignedAs\": \"individual\",\n    \"verificationJwsHeader\": \"\",\n    \"timestamp\": \"2024-01-15T10:30:00Z\",\n    \"signedWithoutObjectReference\": false,\n    \"objectType\": \"revision\",\n    \"objectReference\": \"65471222e8c7c3bb3c2c6601\"\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

bad input parameter

</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></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>
      