> For the complete documentation index, see [llms.txt](https://tri.gitbook.io/tri-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tri.gitbook.io/tri-doc/methodology-or-protocol/update-methodology.md).

# Update Methodology

### Methodology | Protocol

<mark style="color:purple;">`PATCH`</mark> <https://sandbox.triangle.digital/api/v2/d\\_mrv\\_form/{form\\_id}>

Every field of [Add Methodology](/tri-doc/methodology-or-protocol/add-methodology.md) can be updated, including the contact blocks and the Data Room. A field this request does not mention is left as it is.

**Blocks of rows.** A block the request carries replaces the stored block whole; a block the request does not mention is left as it is; an empty array clears it. Contact blocks take up to 20 rows; the Data Room rows take up to 100. A row whose e-mail is malformed refuses the request; a row may be sent without an e-mail at all.

**Name and version.** A methodology is unique per name AND version, so two versions of one protocol are two records. The pair is returned by [Get Methodologies List](/tri-doc/methodology-or-protocol/get-methodologies-list.md) as `methodology_display_name`.

**The registry.** The methodology belongs to one of the registries of your company, set by `registry_questionnaire_id` — take the `id` from [Get Registries List](/tri-doc/methodology-or-protocol/get-registries-list.md). The name of the registry is returned as `registry_name` by [Get Methodologies List](/tri-doc/methodology-or-protocol/get-methodologies-list.md) and [View Methodology](/tri-doc/methodology-or-protocol/view-methodology.md).

**Documents.** `data_room` rows carry `type`, `title`, `description` and `file`. `file` is either an uploaded file — sent as `multipart/form-data` — or the link a read of this methodology already returned, which keeps that document unchanged (so a title or a description can be corrected without uploading the file again); a link that does not belong to this methodology is refused. Per-file limit 25 MB, per-request limit 60 MB for the files together.

<table data-full-width="true"><thead><tr><th>Type</th><th>Formats</th><th>Files</th></tr></thead><tbody><tr><td>Eligibility Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Execution Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Methodology Paper</td><td>.pdf, .jpg, .png, .gif, .webp, .svg, .bmp, .tiff, .doc, .docx, .xls, .xlsx, .csv</td><td>1</td></tr><tr><td>Monitoring Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>One Pager Teaser</td><td>.pdf, .jpg, .png, .gif, .webp, .svg, .bmp, .tiff, .doc, .docx, .xls, .xlsx, .csv</td><td>1</td></tr><tr><td>Purpose &#x26; Definitions Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Quantification Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Reporting Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Validation Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr><tr><td>Validator Report</td><td>.pdf, .jpg, .png, .gif, .webp, .svg, .bmp, .tiff, .doc, .docx, .xls, .xlsx, .csv</td><td>1</td></tr><tr><td>Verification Image</td><td>.png, .jpg, .webp, .bmp, .svg</td><td>15</td></tr></tbody></table>

**Path parameters**

<table data-full-width="true" data-search="false"><thead><tr><th width="200">Name</th><th width="110">Type</th><th>Description</th><th width="260">Where to take it from</th></tr></thead><tbody><tr><td><code>form_id</code></td><td>integer</td><td><strong>Required.</strong> The methodology identifier is one value under three names: <code>form_id</code> in the <a href="/tri-doc/methodology-or-protocol.md">Methodology | Protocol</a> section, <code>id</code> in <a href="/tri-doc/carbon-credit/d-mrv-methodologies.md">D-MRV Methodologies</a>, and <code>methodology_id</code> when a project links it. Used via <a href="/tri-doc/carbon-credit/add-project.md">Add Project</a>.</td><td><a href="/tri-doc/methodology-or-protocol/get-methodologies-list.md">Get Methodologies List</a> — <code>form_id</code></td></tr></tbody></table>

**Headers**

<table data-full-width="true"><thead><tr><th>Name</th><th>Value</th></tr></thead><tbody><tr><td>Content-Type</td><td><code>multipart/form-data</code> when the request uploads a file in <code>data_room</code>; otherwise <code>application/json</code>.</td></tr></tbody></table>

**Body**

<table data-full-width="true" data-search="false"><thead><tr><th width="200">Name</th><th width="110">Type</th><th>Description</th><th width="260">Example</th></tr></thead><tbody><tr><td><code>hash</code></td><td>string</td><td><strong>Required.</strong> API key.</td><td>fk5f0iuy-rr06-j4x3-i75b-fy2s67s4ilo1</td></tr><tr><td><code>d_mrv_name</code></td><td>string</td><td>Company of the methodology owner.</td><td>Nexora Labs</td></tr><tr><td><code>methodology_name</code></td><td>string</td><td>Name of the methodology or protocol.</td><td>Blue Carbon Protocol</td></tr><tr><td><code>methodology_version_number</code></td><td>string</td><td>Version of the methodology. Minimum 2 characters. Left out for a methodology without a version.</td><td>2.2</td></tr><tr><td><code>registry_questionnaire_id</code></td><td>integer</td><td>Registry the methodology belongs to — an <code>id</code> from <a href="/tri-doc/methodology-or-protocol/get-registries-list.md">Get Registries List</a>. Required if your company has at least one registry and the methodology has none yet. If omitted, the current value is kept.</td><td>13</td></tr><tr><td><code>is_part_carbon_credit_registry</code></td><td>string</td><td>Whether the methodology belongs to a carbon credit registry (for example Verra, Gold Standard, ACR). One of: <code>Yes</code>, <code>No</code>.</td><td>Yes</td></tr><tr><td><code>part_carbon_credit_registry_company_name</code></td><td>string</td><td>Name Of The Registry. Reported as <code>registry_name</code> when the methodology has no <code>registry_questionnaire_id</code>. Up to 255 characters.</td><td>BCarbon</td></tr><tr><td><code>part_carbon_credit_registry_name</code></td><td>array</td><td>Registry contacts, several at once. Objects with <code>name</code>, <code>last_name</code>, <code>email</code>, <code>phone</code> (<code>first_name</code> is accepted as a synonym of <code>name</code>, <code>telephone</code> of <code>phone</code>). A row whose e-mail is malformed refuses the request. Up to 20 rows.</td><td>[{ "name": "Ann", "last_name": "Lee", "email": "ann@registry.com", "phone": "+1 555 0100" }]</td></tr><tr><td><code>cc_protocol_methodology_number</code></td><td>string</td><td>Methodology / protocol number.</td><td>MP-2024-118</td></tr><tr><td><code>d_mrv_types</code></td><td>array</td><td>Methodology type(s). One of: <code>Carbon Credit Bermuda</code>, <code>Carbon Inset</code>, <code>Carbon Offset</code>, <code>Carbon Removal</code>, <code>Carbon Sequestration</code>, <code>Carbon Avoidance</code>, <code>Solar REC</code>, <code>Solar Carbon Credit</code>, <code>Wind REC</code>, <code>Wind Carbon Credit</code>.</td><td>["Carbon Inset","Carbon Offset","Carbon Sequestration"]</td></tr><tr><td><code>issue_assets</code></td><td>string</td><td>How the methodology issues assets. One of: <code>As Produced</code>, <code>Forward</code>, <code>Both</code>.</td><td>As Produced</td></tr><tr><td><code>d_mrv_description</code></td><td>string</td><td>Description of the methodology.</td><td>Mangrove restoration protocol for blue carbon credits.</td></tr><tr><td><code>dmrv_methodology_category</code></td><td>string</td><td>Category of the methodology. One of: <code>Nature-based</code>, <code>Engineered</code>.</td><td>Nature-based</td></tr><tr><td><code>dmrv_instrument_category</code></td><td>string</td><td>Instrument category produced by the methodology. One of: <code>REC</code>, <code>Carbon Credit</code>, <code>Co-Benefit</code>, <code>Loan</code>, <code>Bond</code>.</td><td>Carbon Credit</td></tr><tr><td><code>dmrv_methodology_subtype</code></td><td>string</td><td>Subtype of the methodology within its type.</td><td>Mangrove Restoration</td></tr><tr><td><code>data_room</code></td><td>array</td><td>Data Room documents of the methodology. Rows carry <code>type</code>, <code>title</code>, <code>description</code>, <code>file</code>. <code>type</code>: One of: <code>Eligibility Image</code>, <code>Execution Image</code>, <code>Methodology Paper</code>, <code>Monitoring Image</code>, <code>One Pager Teaser</code>, <code>Purpose &#x26; Definitions Image</code>, <code>Quantification Image</code>, <code>Reporting Image</code>, <code>Validation Image</code>, <code>Validator Report</code>, <code>Verification Image</code> — see the Doc Types table above for the allowed formats and how many files of each type a methodology may hold. <code>file</code> is either an uploaded file or the link a read of this methodology already returned. Up to 100 rows.</td><td>[{ "type": "Methodology Paper", "title": "Protocol v2.3", "description": "v2.3", "file": "https://sandbox.triangle.digital/uploads/media/file_name/1518/protocol.pdf" }]</td></tr><tr><td><code>associated_parameter</code></td><td>string</td><td>Associated parameter used by the methodology, for example the efficiency of the project device and batch.</td><td>Combustion efficiency</td></tr><tr><td><code>parameter_value</code></td><td>string</td><td>Value of the associated parameter, for example 44% under the Water Boiling Test (WBT) method.</td><td>44%</td></tr><tr><td><code>method_implemented_ie</code></td><td>string</td><td>Method implemented, for example the Kitchen Performance Test (KPT) and its monitoring.</td><td>Kitchen Performance Test (KPT)</td></tr><tr><td><code>terms_of_ongoing</code></td><td>string</td><td>Description of the ongoing monitoring.</td><td>Annual site inspection and sensor calibration.</td></tr><tr><td><code>is_there_auditor_validator</code></td><td>string</td><td>Whether there is an auditor / validator for this methodology. One of: <code>Yes</code>, <code>No</code>.</td><td>Yes</td></tr><tr><td><code>auditor_attestations</code></td><td>string</td><td>Auditor / validator attestations.</td><td>ISO 14064-3 conformity statement</td></tr><tr><td><code>auditor_validator_type</code></td><td>string</td><td>Type of the auditor / validator. One of: <code>established</code>, <code>academic</code>, <code>public</code>, <code>private</code>, <code>other</code>.</td><td>established</td></tr><tr><td><code>auditor_name</code></td><td>string</td><td>Auditor / verifier company name.</td><td>Verra Audit Services</td></tr><tr><td><code>auditor_verifier_poc</code></td><td>array</td><td>Auditor / validator contacts, several at once. Same object shape as <code>part_carbon_credit_registry_name</code>. Up to 20 rows.</td><td>[{ "name": "Bob", "last_name": "Li", "email": "bob@audit.com", "phone": "+1 555 0111" }]</td></tr><tr><td><code>is_there_insurance_provider</code></td><td>string</td><td>Whether there is an insurance provider for this methodology. One of: <code>Yes</code>, <code>No</code>.</td><td>Yes</td></tr><tr><td><code>insurance_provider</code></td><td>string</td><td>Insurance provider company name.</td><td>GreenShield Insurance</td></tr><tr><td><code>insurance_provider_poc</code></td><td>array</td><td>Insurance provider contacts, several at once. Same object shape as <code>part_carbon_credit_registry_name</code>. Up to 20 rows.</td><td>[{ "name": "Cara", "email": "cara@insurer.com" }]</td></tr><tr><td><code>verification_third_party</code></td><td>string</td><td>Third-party verification of the project.</td><td>Verra VCS third-party audit</td></tr><tr><td><code>verification_regulatory_compliance</code></td><td>string</td><td>Regulatory compliance covered by the verification.</td><td>Compliant with EPA Subpart W</td></tr><tr><td><code>verification_monitoring</code></td><td>string</td><td>Monitoring covered by the verification.</td><td>Continuous emissions monitoring system</td></tr><tr><td><code>verification_execution</code></td><td>string</td><td>Execution covered by the verification.</td><td>On-site verification visit</td></tr><tr><td><code>verification_data_quality</code></td><td>string</td><td>Data quality covered by the verification.</td><td>QA/QC per IPCC guidelines</td></tr><tr><td><code>verification_processes_and_entities</code></td><td>string</td><td>Verification processes and the entities involved.</td><td>Verra as the verification body</td></tr><tr><td><code>validation_project_eligibility</code></td><td>string</td><td>Project eligibility covered by the validation.</td><td>Meets Verra VM0033 eligibility</td></tr><tr><td><code>validation_sec_proved_reserves</code></td><td>string</td><td>SEC proved reserves covered by the validation.</td><td>1.2M barrels proved reserves</td></tr><tr><td><code>validation_carbon_content</code></td><td>string</td><td>Carbon content covered by the validation.</td><td>62% organic carbon content</td></tr><tr><td><code>validation_data_quality</code></td><td>string</td><td>Data quality covered by the validation.</td><td>Third-party lab analysis</td></tr><tr><td><code>monitoring_project_area</code></td><td>string</td><td>Activity monitoring of the project area.</td><td>Satellite imagery every 6 months</td></tr><tr><td><code>monitoring_land_reclamation</code></td><td>string</td><td>Land reclamation monitoring.</td><td>Annual reclamation survey</td></tr><tr><td><code>monitoring_reversal_compensating</code></td><td>string</td><td>How a reversal is compensated for.</td><td>Buffer pool replenishment</td></tr><tr><td><code>eligibility_types_of_activities</code></td><td>string</td><td>Types of activities eligible under the methodology.</td><td>Afforestation and reforestation</td></tr><tr><td><code>eligibility_minimum_requirements</code></td><td>string</td><td>Minimum requirements for eligibility.</td><td>Minimum 10 hectares</td></tr><tr><td><code>eligibility_project_area</code></td><td>string</td><td>Project area eligibility.</td><td>Degraded coastal wetlands</td></tr><tr><td><code>eligibility_stakeholder_obligations</code></td><td>string</td><td>Stakeholder obligations for eligibility.</td><td>Community consultation required</td></tr><tr><td><code>eligibility_regulatory_compliance</code></td><td>string</td><td>Regulatory compliance required for eligibility.</td><td>Local land-use permits</td></tr><tr><td><code>eligibility_additionality</code></td><td>string</td><td>Additionality requirement.</td><td>Financial additionality test</td></tr><tr><td><code>eligibility_permanence</code></td><td>string</td><td>Permanence requirement.</td><td>40-year monitoring commitment</td></tr><tr><td><code>eligibility_abatement_period</code></td><td>string</td><td>Abatement period requirement.</td><td>20 years</td></tr><tr><td><code>eligibility_buffer_account</code></td><td>string</td><td>Buffer account requirement.</td><td>10% buffer contribution</td></tr><tr><td><code>eligibility_leakage</code></td><td>string</td><td>Leakage requirement.</td><td>Activity-shifting leakage deduction</td></tr><tr><td><code>quantification_reserve_qualification</code></td><td>string</td><td>Reserve qualification used for quantification.</td><td>Proved plus probable reserves</td></tr><tr><td><code>quantification_carbon_stock_of_reserves</code></td><td>string</td><td>Carbon stock of reserves used for quantification.</td><td>45,000 tCO2e</td></tr><tr><td><code>quantification_downstream_emissions_avoidance</code></td><td>string</td><td>Downstream Scope 3 emissions avoidance used for quantification.</td><td>12,000 tCO2e avoided</td></tr><tr><td><code>quantification_fugitive_methane_emissions</code></td><td>string</td><td>Scope 1 fugitive methane emissions used for quantification.</td><td>3,000 tCO2e</td></tr><tr><td><code>execution_p_a_regulatory_process</code></td><td>string</td><td>Plugging and abandonment (P&#x26;A) regulatory process.</td><td>State P&#x26;A bonding requirement</td></tr><tr><td><code>execution_land_reclamation_regulatory_process</code></td><td>string</td><td>Land reclamation regulatory process.</td><td>State reclamation permit</td></tr><tr><td><code>reporting_initial_project_execution</code></td><td>string</td><td>Initial project execution report.</td><td>Commissioning report</td></tr><tr><td><code>reporting_annual_monitoring</code></td><td>string</td><td>Annual monitoring report.</td><td>2025 annual monitoring report</td></tr><tr><td><code>reporting_final</code></td><td>string</td><td>Final report.</td><td>Project closure report</td></tr><tr><td><code>purpose_protocol</code></td><td>string</td><td>Purpose of the protocol.</td><td>Standardize blue carbon MRV</td></tr><tr><td><code>purpose_supporting_standards</code></td><td>string</td><td>Supporting standards for the protocol.</td><td>ISO 14064-2</td></tr><tr><td><code>purpose_blockchain_implementation</code></td><td>string</td><td>Blockchain implementation of the protocol.</td><td>On-chain serialization of credits</td></tr><tr><td><code>purpose_definition</code></td><td>string</td><td>Definition of the protocol's purpose.</td><td>Quantify avoided emissions from mangrove restoration</td></tr><tr><td><code>zerosix_credit_ownership_allocation</code></td><td>string</td><td>Project credit ownership and allocation.</td><td>50/50 split between developer and landowner</td></tr><tr><td><code>zerosix_buffer_account_allocation</code></td><td>string</td><td>Buffer account allocation.</td><td>10% to the buffer pool</td></tr><tr><td><code>zerosix_project_credit_distribution</code></td><td>string</td><td>Project credit distribution.</td><td>Pro-rata by hectare</td></tr><tr><td><code>zerosix_project_credit_retirement</code></td><td>string</td><td>Project credit retirement.</td><td>Retired on delivery</td></tr><tr><td><code>references</code></td><td>string</td><td>References for the methodology.</td><td>IPCC 2019 Refinement, Verra VM0033</td></tr><tr><td><code>co_benefits_description</code></td><td>string</td><td>Description of the co-benefits.</td><td>Mangrove habitat restoration and local jobs</td></tr><tr><td><code>un_sustainable_development_goals</code></td><td>array</td><td>Sustainable Development Goals (SDGs) addressed by the methodology.</td><td>["No Poverty","Industry, Innovation and Infrastructure","Reduce Inequalities"]</td></tr><tr><td><code>registry_type</code></td><td>string</td><td>Type of the registry. One of: <code>Traditional Ledger Registry</code>, <code>Digital Asset Registry</code>.</td><td>Digital Asset Registry</td></tr></tbody></table>

```json
{
    "hash": "fk5f0iuy-rr06-j4x3-i75b-fy2s67s4ilo1",
    "methodology_version_number": "2.3",
    "part_carbon_credit_registry_name": [
        { "name": "Ann", "last_name": "Lee", "email": "ann@registry.com", "phone": "+1 555 0100" }
    ]
}
```

This partial update changes only the version number and the registry contacts; every other field already stored on the methodology stays as it is.

When a `data_room` row uploads a file, send the request as `multipart/form-data` instead:

```
PATCH /api/v2/d_mrv_form/74 HTTP/1.1
Content-Type: multipart/form-data; boundary=----boundary

----boundary
Content-Disposition: form-data; name="hash"

fk5f0iuy-rr06-j4x3-i75b-fy2s67s4ilo1
----boundary
Content-Disposition: form-data; name="data_room[0][type]"

Methodology Paper
----boundary
Content-Disposition: form-data; name="data_room[0][title]"

Protocol v2.3
----boundary
Content-Disposition: form-data; name="data_room[0][file]"; filename="protocol_v2_3.pdf"
Content-Type: application/pdf

<binary file content>
----boundary--
```

**Response fields**

<table data-full-width="true" data-search="false"><thead><tr><th width="300">Field</th><th width="110">Type</th><th>Description</th></tr></thead><tbody><tr><td><code>message</code></td><td>string</td><td>Human-readable result of the call.</td></tr><tr><td><code>success</code></td><td>boolean</td><td>Whether the methodology was updated; a refused call answers HTTP 400.</td></tr><tr><td><code>data.form_id</code></td><td>integer</td><td>Identifier of the updated methodology.</td></tr><tr><td><code>data.errors</code></td><td>object</td><td>Present on a refusal: field name mapped to the list of its problems.</td></tr><tr><td><code>operations_count</code></td><td>integer</td><td>Operations counted for this call in the API usage accounting.</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}
{% code fullWidth="false" %}

```json
{
    "message": "D-MRV Form has been successfully updated",
    "success": true,
    "data": {
        "form_id": 33
    },
    "operations_count": 1
}
```

{% endcode %}
{% endtab %}

{% tab title="400" %}
This answers when the request fails validation; nothing already stored is changed. Uniqueness problems on the methodology name and version arrive under `methodology_name`; a refused `data_room` row arrives under the `data_room` key, with the index of the row; a `registry_questionnaire_id` that is not a registry of your company arrives under its own key.

```json
{
    "message": "D-MRV Form has not been successfully updated",
    "success": false,
    "data": {
        "errors": {
            "d_mrv_types": [
                "must be one or more of: \"Carbon Credit Bermuda\", \"Carbon Inset\", \"Carbon Offset\", \"Carbon Removal\", \"Carbon Sequestration\", \"Carbon Avoidance\", \"Solar REC\", \"Solar Carbon Credit\", \"Wind REC\", \"Wind Carbon Credit\""
            ],
            "methodology_version_number": [
                "is too short (minimum is 2 characters)"
            ],
            "registry_questionnaire_id": [
                "is not a Registry Questionnaire of this company"
            ],
            "data_room": [
                "item 0: 'type' must be one of: \"Eligibility Image\", \"Execution Image\", \"Methodology Paper\", \"Monitoring Image\", \"One Pager Teaser\", \"Purpose & Definitions Image\", \"Quantification Image\", \"Reporting Image\", \"Validation Image\", \"Validator Report\", \"Verification Image\"",
                "item 1: file extension is not allowed for \"Eligibility Image\" (.png, .jpg, .webp, .bmp, .svg)",
                "item 2: at most 1 document(s) of type \"Methodology Paper\" are allowed",
                "item 3: file is larger than 25 MB",
                "item 4: 'file' must be an uploaded file or the link of a file already in this record",
                "item 5: 'file' does not belong to this record",
                "must contain at most 100 items"
            ]
        }
    },
    "operations_count": 1
}
```

{% endtab %}
{% endtabs %}
