openapi: 3.1.0 info: description: "# Standards\n\n## Versioning\n\nThis API will be safely versioned using root path versioning, in the format `/v{major}`. For example, `/registry/v0/supplier`.\n\n### Compatibility\n\nWe won't make breaking changes to existing API services or endpoints for API versions higher than `v0`. If breaking changes are necessary, we'll release a new major version.\nWe may deprecate APIs that have been replaced by a newer version. When doing so, we will expect\nintegrated partners to manage a transition to new resources within the deprecation timeline of old ones.\n\nWe will make the following sort of changes we do not consider to be breaking:\n\n- Adding new endpoints\n- Adding optional query parameters to API endpoints\n- Adding new properties to existing API responses\n- Reordering properties in existing API responses\n\nIt is important that clients are built to be robust to these changes.\n\n## Pagination\n\nOur API is based on the [Relay](https://relay.dev/docs/tutorial/connections-pagination/) pagination spec. Paginated endpoints\nwill return a `PaginatedListResource` which contains:\n\n- `page_info` - Containing information regarding pagination cursors and the total number of entities.\n- `nodes` - Each node is a paginated entity.\n- `total_count` - The total size of the list across all pages.\n\n### Pagination Parameters\n\nPaginated endpoints also accepted a standard set of query parameters:\n\n- `last` - An integer number of items to retrieve **before** the item represented by the cursor passed in the `before` parameter. Defaults to 10 with a maximum value of 50.\n- `before` - An opaque cursor representing the first item in the previously requested page to select items ordered before it. Submit the previously requested page's `start_cursor` here when paginated backwards.\n- `first` - An integer number of items to retrieve **after** the item represented by the cursor passed in the `after` parameter. Defaults to 10 with a maximum value of 50.\n- `after` - An opaque cursor representing the last item in the previously requested page to select items ordered after it. Submit the previously requested page's `end_cursor` here when paginated forwards.\n\nFor example, querying `/registry/v0/beneficiaries` will return a `PaginatedListResource` of the first page of 10 items:\n\n```json\n{\n \"page_info\": {\n \"has_previous_page\": false,\n \"start_cursor\": ...,\n \"has_next_page\": true,\n \"end_cursor\": \"mpG5kcuoFBYtlH\",\n },\n \"nodes\": [{\n \"id\": \"org_12345iso678\",\n \"name\": \"My Org\",\n ...\n }],\n \"total_count\": 100\n}\n```\n\nThen querying `/registry/v0/beneficiaries?first=15&after=mpG5kcuoFBYtlH` will return a `PaginatedListResource` of the next 15 items.\n\n## Dates\n\nDatetime fields in the APIs conform to the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time format in UTC. For example: `2024-01-22T11:56:48.520641Z`.\n\n## Country Codes\n\nCountries are identified in the APIs via [ISO 3166-1 Alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) codes. For example: `GBR` and `USA`.\n# Authentication\n\nMost API requests will need to authenticate against the Isometric API in two ways simultaneously:\n\n- By passing a **client secret** in the `X-Client-Secret` header to identify the system integrating with the API.\n- By passing an **access token** in the `Authorization` header to authenticate as a specific organization, in order to gain access to its private data.\n\n### Client Authentication\n\nEvery API call to Isometric must include a **client secret** identifying the client application.\n\nThis client secret is tied to a particular environment - sandbox or production.\n\nThe client secret should be submitted on every API request via the `X-Client-Secret` header. For example `X-Client-Secret: uPrO...wxAh`.\n\n### Organization Authentication\n\nIn addition, a large number of API requests will require an **access token** in order for the caller to identify themselves and act as a specific Organization.\n\nTo authenticate as an Organization you will need to submit a JWT bearer access token via the `Authorization` header. For example: `Authorization: Bearer eyJh...sw5c`.\nIf you are going to be acting on behalf of other Organizations, they will need to generate the access token and pass it securely to you.\nAccess tokens should be treated as highly sensitive, kept secret and stored accordingly.\n\nAccess tokens are scoped to a single Organization - so if you are acting on behalf of multiple particular organizations, you will need to submit the appropriate access token on each request.\n\n### Managing Credentials\n\nCredentials can be managed through Certify UI in the [Team settings](https://registry.isometric.com/account/team-settings) section. Access tokens will expire after 1 year from generation. When you are approaching expiry, a new token will need to be generated.\n\nBoth client secrets and access tokens can be created and invalidated through UI.\nClient secrets do not expire and do not need to be rotated.\nIf either secret becomes compromised, it should be invalidated through the UI.\n# Key Certify Concepts\n\nThis page defines concepts used in Certify, and the [Certify API](/api-reference/certify/certify-introduction), which are helpful to understand when submitting information for verification via Certify. For a broader understanding of Isometric's verification processes on the Isometric Registry, please refer to the [Isometric Standard](https://isometric.com/standard).\n\n## Resource visibility\n\n- Until resources are submitted as part of a GHG statement, they are visible only to members of your organization.\n- After statement submission, they are visible to the verifier assigned to the GHG statement.\n- Once credits have been issued, removals are added to the [public registry](https://registry.isometric.com), and associated resources are visible publicly, with the exception of source documents.\n- Sources uploaded in the Certify platform are kept private by default once published on the Isometric registry (file names will be displayed). Contact Isometric to update public source visibility. Sources [added via the API](/api-reference/certify/post-source) can be set `public` on submission.\n\n## Resources\n\nThe main resources used in Certify are sources, datapoints, components and removals.\n\n### Sources\n\n- Sources represent a piece of evidence for a particular datapoint used in carbon accounting calculations.\n- Source documents are private, and only shared with the verifier assigned to a related removal.\n- Other information associated with a source, such as its display name, is visible publicly once the removal is on the public registry.\n- Verifiers are not notified when new sources are added to datapoints in a submitted removal, but they will immediately have access to the source documentation. Please notify the Isometric Registry Operations team when sources are added on a verifier's request so that we can ensure that the verifier is aware.\n\n### Datapoints\n\n- Datapoints represent any value used in carbon accounting calculations.\n- When creating datapoints, sources should be referenced to provide evidence for the value used.\n- A standard deviation should be provided if the datapoint is to be included in the variance propagation method of uncertainty analysis.\n- All datapoints are considered statistically independent for the purpose of variance propagation, although if a datapoint is used twice within a removal calculation, this dependence is captured.\n\n### Components\n\n- Components represent physical activities whose CO₂e flux needs to be accounted for.\n- Components are created from [component blueprints](/user-guides/certify/component-blueprint-library) that contain sets of equations used to calculate a transfer of CO₂e into or out of the atmosphere.\n- A blueprint defines a set of inputs that are the datapoints to be used in the calculation. For instance, a transport emissions blueprints would ask for datapoints representing a distance, mass and carbon intensity.\n- When creating a component from a blueprint, the blueprint must be specified, as well as a list of datapoints for the expected blueprint inputs. Learn more about components in [Identifying Components](/user-guides/certify/identifying-components).\n\n### Removals\n\n- Removals represent a series of activities that result in CO₂e being removed from the atmosphere.\n- The carbon accounting of a removal typically contains sequestrations, counterfactuals and activities (emissions).\n- Removals are structured using a template, [defined in your LCA](/user-guides/certify/lca).\n- Templates are divided into component groups. For instance, a biochar template may contain a `Feedstock sourcing` group.\n- Groups can contain multiple components.\n- Components can also be partially attributed to removals, if the activity the component represents contributed to multiple removals.\n- The final uncertainty discounting is done on the removal level - the API will return the CO₂e removed with and without discounting.\n- See the [Create a removal](/user-guides/certify/removal) guide for more details.\n\n### Feedstock types\n\n- Many carbon removal methods involve a feedstock, for instance biomass feedstock in BiCRS or silicate rock in enhanced weathering.\n- Feedstock types are used to describe the feedstock used in a removal.\n- When creating a removal, a feedstock type can be optionally specified so that Isometric and verifiers can see which removals use which feedstocks.\n- This is important if different feedstocks are used in a single GHG statement.\n- See the [Add feedstock](/user-guides/certify/add-feedstock) guide for more details.\n" title: Isometric Certify Data Ingestion Beneficiaries Retirements API version: v0 servers: - description: Sandbox Isometric MRV API url: https://api.sandbox.isometric.com/mrv/v0 - description: Production Isometric MRV API url: https://api.isometric.com/mrv/v0 tags: - name: Retirements paths: /retirements: get: description: 'A paginated list of all retirements on Isometric''s registry. Returned list of retirements will be sorted by most recently delivered first.' operationId: retirements_retirements_get parameters: - in: query name: beneficiary_org_id required: false schema: anyOf: - $ref: '#/components/schemas/IsometricIDQueryParam_Organisation_' - type: 'null' title: Beneficiary Org Id - in: query name: owner_org_id required: false schema: anyOf: - $ref: '#/components/schemas/IsometricIDQueryParam_Organisation_' - type: 'null' title: Owner Org Id - in: query name: last required: false schema: default: 10 description: An integer number of items to retrieve before the item represented by the cursor passed in the before parameter. Defaults to 10 with a maximum value of 50. exclusiveMinimum: 0 maximum: 50 title: Last type: integer - in: query name: before required: false schema: anyOf: - minLength: 1 type: string - type: 'null' description: An opaque cursor representing the first item in the previously requested page to select items ordered before it. Submit the previously requested page’s start_cursor here when paginated backwards. title: Before - in: query name: first required: false schema: default: 10 description: An integer number of items to retrieve after the item represented by the cursor passed in the after parameter. Defaults to 10 with a maximum value of 50. exclusiveMinimum: 0 maximum: 50 title: First type: integer - in: query name: after required: false schema: anyOf: - minLength: 1 type: string - type: 'null' description: An opaque cursor representing the last item in the previously requested page to select items ordered after it. Submit the previously requested page’s end_cursor here when paginated forwards. title: After - description: A secret token identifying the client connecting to the API in: header name: x-client-secret required: true schema: description: A secret token identifying the client connecting to the API examples: - Syou3EZiO5vuMEgNyBeA8cjEMYOnQDwP title: Client secret type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedListResource_Retirement_' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - HTTPBearer: [] summary: Retirements tags: - Retirements post: description: Retire credits from specific batches, in whole or with splits. All credit batches must originate from the same supplier and be owned by the current organisation. operationId: create_retirement_retirements_post parameters: - description: A secret token identifying the client connecting to the API in: header name: x-client-secret required: true schema: description: A secret token identifying the client connecting to the API examples: - Syou3EZiO5vuMEgNyBeA8cjEMYOnQDwP title: Client secret type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateRetirementByBatchRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Retirement' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - HTTPBearer: [] summary: Create Retirement tags: - Retirements /retirements/from_oldest_credits: post: description: Retire oldest available credits from a given supplier. If vintage is specified, this will retire the oldest credits from that vintage only. operationId: create_retirement_from_oldest_credits_retirements_from_oldest_credits_post parameters: - description: A secret token identifying the client connecting to the API in: header name: x-client-secret required: true schema: description: A secret token identifying the client connecting to the API examples: - Syou3EZiO5vuMEgNyBeA8cjEMYOnQDwP title: Client secret type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateRetirementOldestCreditsRequest' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Retirement' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - HTTPBearer: [] summary: Create Retirement From Oldest Credits tags: - Retirements /retirements/{id}: get: description: Information about a specific retirement. operationId: retirement_retirements__id__get parameters: - in: path name: id required: true schema: $ref: '#/components/schemas/IsometricIDPathParam_Retirement_' - description: A secret token identifying the client connecting to the API in: header name: x-client-secret required: true schema: description: A secret token identifying the client connecting to the API examples: - Syou3EZiO5vuMEgNyBeA8cjEMYOnQDwP title: Client secret type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Retirement' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - HTTPBearer: [] summary: Retirement tags: - Retirements /retirements/{id}/credit_batches: get: description: List of credit batches for a given retirement. operationId: retirement_credit_batches_retirements__id__credit_batches_get parameters: - in: path name: id required: true schema: $ref: '#/components/schemas/IsometricIDPathParam_Retirement_' - description: A secret token identifying the client connecting to the API in: header name: x-client-secret required: true schema: description: A secret token identifying the client connecting to the API examples: - Syou3EZiO5vuMEgNyBeA8cjEMYOnQDwP title: Client secret type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ListResource_CreditBatch_' description: Successful Response '422': content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error security: - HTTPBearer: [] summary: Retirement Credit Batches tags: - Retirements components: schemas: ListResource_CreditBatch_: properties: nodes: items: $ref: '#/components/schemas/CreditBatch' title: Nodes type: array total_count: title: Total Count type: integer required: - nodes - total_count title: ListResource[CreditBatch] type: object Organisation: properties: domain: anyOf: - type: string - type: 'null' examples: - isometric.com title: Domain id: example: org_1GB56M1ST1S0GVNA examples: - org_1GB56M1ST1S0GVNA - org_1CP8EQDNQSBXTMR2 maxLength: 37 minLength: 20 title: Id type: string name: examples: - Isometric title: Name type: string required: - id - name - domain title: Organisation type: object CreditQuantity: properties: credit_kgs: description: A representation of the credit quantity as an integer kilogram amount. Where 1 unit represents 0.001 credits and 1 kilogram of CO₂e. This field can handle bigint values. examples: - 125632 title: Credit Kgs type: integer credits: description: A representation of the credit quantity as a fractional amount, to 3 decimal places. Where 1 unit represents 1 credit and 1 ton of CO₂e. examples: - 125.632 title: Credits type: number required: - credits - credit_kgs title: CreditQuantity type: object PageInfo: properties: end_cursor: anyOf: - type: string - type: 'null' title: End Cursor has_next_page: title: Has Next Page type: boolean has_previous_page: title: Has Previous Page type: boolean start_cursor: anyOf: - type: string - type: 'null' title: Start Cursor required: - has_previous_page - start_cursor - has_next_page - end_cursor title: PageInfo type: object CarbonRemovalData: properties: counterfactuals_kg: title: Counterfactuals Kg type: integer emissions_kg: title: Emissions Kg type: integer gross_carbon_removed_kg: title: Gross Carbon Removed Kg type: integer losses_kg: title: Losses Kg type: integer net_carbon_removed_kg: title: Net Carbon Removed Kg type: integer required: - gross_carbon_removed_kg - net_carbon_removed_kg - emissions_kg - counterfactuals_kg - losses_kg title: CarbonRemovalData type: object PaginatedListResource_Retirement_: properties: nodes: items: $ref: '#/components/schemas/Retirement' title: Nodes type: array page_info: $ref: '#/components/schemas/PageInfo' total_count: title: Total Count type: integer required: - nodes - total_count - page_info title: PaginatedListResource[Retirement] type: object Retirement: properties: beneficiary: $ref: '#/components/schemas/Organisation' credit_batch_size_total: $ref: '#/components/schemas/CreditQuantity' id: example: ret_1FYBH4QDT1S0SVKF examples: - ret_1FYBH4QDT1S0SVKF - ret_1CGV2XADRSBX1CHB maxLength: 37 minLength: 20 title: Id type: string notes: anyOf: - type: string - type: 'null' title: Notes owner: $ref: '#/components/schemas/Organisation' purposes: items: $ref: '#/components/schemas/RetirementPurpose' title: Purposes type: array retired_at: format: date-time title: Retired At type: string url: title: Url type: string required: - id - retired_at - purposes - beneficiary - owner - credit_batch_size_total - url - notes title: Retirement type: object RetirementPurpose: enum: - corporate_targets - public_environmental_claims - insetting - regulatory_requirement - other title: RetirementPurpose type: string IsometricIDRequestParam_Retirement_: example: ret_1FYBH4QDT1S0SVKF examples: - ret_1FYBH4QDT1S0SVKF - ret_1CGV2XADRSBX1CHB maxLength: 37 minLength: 20 type: string IsometricIDRequestParam_Organisation_: example: org_1GB56M1ST1S0GVNA examples: - org_1GB56M1ST1S0GVNA - org_1CP8EQDNQSBXTMR2 maxLength: 37 minLength: 20 type: string CreateRetirementOldestCreditsRequest: properties: beneficiary_organisation_id: description: The ID of the organisation that the credits will be retired in the name of, this can be the same as `owner_organisation_id`. example: org_1GB56M1ST1S0GVNA examples: - org_1GB56M1ST1S0GVNA - org_1CP8EQDNQSBXTMR2 maxLength: 37 minLength: 20 title: Beneficiary Organisation Id type: string credit_quantity_kg: description: A representation of a credit quantity as an **integer kilogram amount**. Where **1 unit represents 0.001 credits** and 1 kilogram of CO₂e. This field can handle bigint values. examples: - 1000 exclusiveMinimum: 0 title: Credit Quantity Kg type: integer notes: anyOf: - maxLength: 256 type: string - type: 'null' description: A publicly visible note stored with the credit retirement. examples: - Retired with care. title: Notes order_id: anyOf: - example: ord_1FAN3S3WV1S0B842 examples: - ord_1FAN3S3WV1S0B842 - ord_1DBVRQDHBSBXWBWP maxLength: 37 minLength: 20 type: string - type: 'null' description: Filter to only retire credits from a specific order. If not provided, credits from any order will be considered. title: Order Id owner_organisation_id: description: The ID of the organisation owns the credits to be retired. Typically this would be your own organisation ID. example: org_1GB56M1ST1S0GVNA examples: - org_1GB56M1ST1S0GVNA - org_1CP8EQDNQSBXTMR2 maxLength: 37 minLength: 20 title: Owner Organisation Id type: string retirement_purposes: items: $ref: '#/components/schemas/RetirementPurpose' minItems: 1 title: Retirement Purposes type: array uniqueItems: true supplier_id: description: All credits in a retirement must originate from the same supplier. example: spl_1CC712KFS1S0YKPS examples: - spl_1CC712KFS1S0YKPS - spl_1FJBMMGR3SBXKDME maxLength: 37 minLength: 20 title: Supplier Id type: string vintage: anyOf: - maximum: 2100 minimum: 1900 type: integer - type: 'null' description: The year of the credits to be retired. If not provided, the oldest credits will be retired. examples: - 2022 title: Vintage required: - owner_organisation_id - beneficiary_organisation_id - supplier_id - retirement_purposes - notes - credit_quantity_kg title: CreateRetirementOldestCreditsRequest type: object IsometricIDQueryParam_Organisation_: $ref: '#/components/schemas/IsometricIDRequestParam_Organisation_' ValidationError: properties: ctx: title: Context type: object input: title: Input loc: items: anyOf: - type: string - type: integer title: Location type: array msg: title: Message type: string type: title: Error Type type: string required: - loc - msg - type title: ValidationError type: object CreditBatchStatus: enum: - active - split - retired title: CreditBatchStatus type: string CreditBatchQuantity: properties: credit_batch_id: example: ctb_1DRBTYA8Q1S07CBY examples: - ctb_1DRBTYA8Q1S07CBY - ctb_1CA2D3S73SBXYN70 maxLength: 37 minLength: 20 title: Credit Batch Id type: string credit_quantity_kg: description: A representation of a credit quantity as an **integer kilogram amount**. Where **1 unit represents 0.001 credits** and 1 kilogram of CO₂e. This field can handle bigint values. examples: - 1000 exclusiveMinimum: 0 title: Credit Quantity Kg type: integer required: - credit_batch_id - credit_quantity_kg title: CreditBatchQuantity type: object HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' title: Detail type: array title: HTTPValidationError type: object CreditBatch: properties: beneficiary: anyOf: - $ref: '#/components/schemas/Organisation' - type: 'null' carbon_removal_data: anyOf: - $ref: '#/components/schemas/CarbonRemovalData' - type: 'null' description: Carbon removal data for this credit batch ccp_approved: description: Whether this credit batch has been issued as part of a ICVCM Core Carbon Principles (CCP) approved project title: CCP Approved type: boolean country_of_issue: examples: - GBR maxLength: 3 minLength: 3 title: Country Of Issue type: string delivered_at: anyOf: - format: date-time type: string - type: 'null' title: Delivered At delivery_id: anyOf: - example: dlv_1C454ZXA61S03Z9T examples: - dlv_1C454ZXA61S03Z9T - dlv_1FAGG2H2PSBXHGYY maxLength: 37 minLength: 20 type: string - type: 'null' title: Delivery Id id: example: ctb_1DRBTYA8Q1S07CBY examples: - ctb_1DRBTYA8Q1S07CBY - ctb_1CA2D3S73SBXYN70 maxLength: 37 minLength: 20 title: Id type: string issuance_id: example: iss_1EWT8R5FY1S0GFCY examples: - iss_1EWT8R5FY1S0GFCY - iss_1CSVDDHH3SBXRP6K maxLength: 37 minLength: 20 title: Issuance Id type: string issued_at: format: date-time title: Issued At type: string left_child_id: anyOf: - example: ctb_1DRBTYA8Q1S07CBY examples: - ctb_1DRBTYA8Q1S07CBY - ctb_1CA2D3S73SBXYN70 maxLength: 37 minLength: 20 type: string - type: 'null' description: If this credit batch has status `SPLIT`, it will have two child batches representing the two halves of this split. title: Left Child Id owner: $ref: '#/components/schemas/Organisation' parent_id: anyOf: - example: ctb_1DRBTYA8Q1S07CBY examples: - ctb_1DRBTYA8Q1S07CBY - ctb_1CA2D3S73SBXYN70 maxLength: 37 minLength: 20 type: string - type: 'null' description: If this credit batch was created from splitting a larger batch in two, this will be set to the id of the parent credit batch. title: Parent Id project_id: example: prj_1CTWZQGKE1S0VAXA examples: - prj_1CTWZQGKE1S0VAXA - prj_1E0QTWB22SBX34D1 maxLength: 37 minLength: 20 title: Project Id type: string removal_id: example: rmv_1EEM6NJXX1S0EXKD examples: - rmv_1EEM6NJXX1S0EXKD - rmv_1E3V4J2EWSBX5E82 maxLength: 37 minLength: 20 title: Removal Id type: string retired_at: anyOf: - format: date-time type: string - type: 'null' title: Retired At retirement_id: anyOf: - example: ret_1FYBH4QDT1S0SVKF examples: - ret_1FYBH4QDT1S0SVKF - ret_1CGV2XADRSBX1CHB maxLength: 37 minLength: 20 type: string - type: 'null' title: Retirement Id right_child_id: anyOf: - example: ctb_1DRBTYA8Q1S07CBY examples: - ctb_1DRBTYA8Q1S07CBY - ctb_1CA2D3S73SBXYN70 maxLength: 37 minLength: 20 type: string - type: 'null' description: If this credit batch has status `SPLIT`, it will have two child batches representing the two halves of this split. title: Right Child Id sequestered_on: format: date title: Sequestered On type: string serial_number: examples: - ISO-1-BSTORE-GBR-F5X7-2024-78177-81177 title: Serial Number type: string size: $ref: '#/components/schemas/CreditQuantity' status: $ref: '#/components/schemas/CreditBatchStatus' supplier_id: example: spl_1CC712KFS1S0YKPS examples: - spl_1CC712KFS1S0YKPS - spl_1FJBMMGR3SBXKDME maxLength: 37 minLength: 20 title: Supplier Id type: string required: - id - serial_number - status - size - issued_at - retired_at - delivered_at - sequestered_on - country_of_issue - supplier_id - parent_id - left_child_id - right_child_id - issuance_id - delivery_id - beneficiary - retirement_id - removal_id - owner - project_id - carbon_removal_data - ccp_approved title: CreditBatch type: object IsometricIDPathParam_Retirement_: $ref: '#/components/schemas/IsometricIDRequestParam_Retirement_' CreateRetirementByBatchRequest: properties: beneficiary_organisation_id: description: The ID of the organisation that the credits will be retired in the name of, this can be the same as `owner_organisation_id`. example: org_1GB56M1ST1S0GVNA examples: - org_1GB56M1ST1S0GVNA - org_1CP8EQDNQSBXTMR2 maxLength: 37 minLength: 20 title: Beneficiary Organisation Id type: string credit_batch_quantities: description: A list of credit batch IDs and kilogram amounts of each to retire. items: $ref: '#/components/schemas/CreditBatchQuantity' minItems: 1 title: Credit Batch Quantities type: array notes: anyOf: - maxLength: 256 type: string - type: 'null' description: A publicly visible note stored with the credit retirement. examples: - Retired with care. title: Notes owner_organisation_id: description: The ID of the organisation owns the credits to be retired. Typically this would be your own organisation ID. example: org_1GB56M1ST1S0GVNA examples: - org_1GB56M1ST1S0GVNA - org_1CP8EQDNQSBXTMR2 maxLength: 37 minLength: 20 title: Owner Organisation Id type: string retirement_purposes: items: $ref: '#/components/schemas/RetirementPurpose' minItems: 1 title: Retirement Purposes type: array uniqueItems: true supplier_id: description: All credits in a retirement must originate from the same supplier. example: spl_1CC712KFS1S0YKPS examples: - spl_1CC712KFS1S0YKPS - spl_1FJBMMGR3SBXKDME maxLength: 37 minLength: 20 title: Supplier Id type: string required: - owner_organisation_id - beneficiary_organisation_id - supplier_id - retirement_purposes - notes - credit_batch_quantities title: CreateRetirementByBatchRequest type: object securitySchemes: HTTPBearer: bearerFormat: JWT description: 'A JWT Bearer token header for authentication and authorization, in the format `Authorization: Bearer `' scheme: bearer type: http