---
id: service-update-individual-consent-record
title: "Update consent record"
description: "This endpoint is used to update an existing consent record for a given data agreement for an organiation defined in the consent building block. Note that updating a signed consent record invalidates its earlier signature."
sidebar_label: "Update consent record"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "put 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"}>Update consent record</h1>

<MethodEndpoint method={"put"} path={"/service/individual/record/consent-record/{consentRecordId}"}></MethodEndpoint>



This endpoint is used to update an existing consent record for a given data agreement for an organiation defined in the consent building block. Note that updating a signed consent record invalidates its earlier signature.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Unique ID of an object","in":"path","name":"consentRecordId","required":true,"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"}>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><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"}}><div><span className={"badge badge--info"}>oneOf</span><SchemaTabs><TabItem label={"MOD1"} value={"0-item-properties"}><SchemaItem collapsible={false} name={"optIn"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"description":"True: The individual has positively opted in. False: The individual has explicitly said no (or withdrawn a previous consent).","example":"","format":"","type":"boolean"}}></SchemaItem></TabItem><TabItem label={"MOD2"} value={"1-item-properties"}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>sectorPreference</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"sector"} required={false} 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></div></details></SchemaItem></TabItem></SchemaTabs></div></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Consent record updated 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"}>revision</strong><span className={"openapi-schema__name"}> object</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  \"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  \"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={"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>
      