MethodologiesAMS-III.FBOLD Carbon (CH₄) - MvFApplication

BOLD Carbon — MassID Event Reference

Canonical per-event JSON payloads and attribute dictionaries for BOLD Carbon integrations.

Last updated on

Methodology version 1.0.2

Reference MassID: View on Carrot Registry

How to read this page

Each event below shows the canonical JSON payload integrators send to the Documents API. The isPublic flags inside each example are Carrot's recommended visibility — see Privacy & Masking for the model.

Each payload references its participant and address by participantId and addressId. Resolve each one first — retrieve it by key or create it — via the Participants API; sending full participant and address objects inline is also supported and find-or-creates the record. Send exactly one form of each pair — both, or neither, fails with 400 VALIDATION_ERROR. The rule is the same on the single-event and batch endpoints.

Each event that carries metadata attributes also lists them in a table under its payload. Attribute names are exact: send them as written. Visibility is the recommended isPublic / sensitive pair for the attribute. Public, masked means isPublic: true with sensitive: true; a dash means the methodology rules do not check that attribute's visibility. Whether an attribute marked Conditional is required depends on a condition that its Notes state.

Create MassID document

The initial POST /documents call that creates a MassID. Not an event on the document's timeline — included here as the starting point for integrator flows. The Waste Generator is the creator; events are added to this document afterward.

{  "addressId": "00000000-0000-4000-9000-00000000000a",  "category": "MassID",  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "isPubliclySearchable": true,  "participantId": "00000000-0000-4000-8000-00000000000a",  "subtype": "Food, Food Waste and Beverages",  "title": "MassID",  "type": "Organic"}

ACTOR — Waste Generator

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "preserveSensitiveData": true,  "addressId": "00000000-0000-4000-9000-00000000000a",  "label": "Waste Generator",  "name": "ACTOR",  "participantId": "00000000-0000-4000-8000-00000000000a"}

ACTOR — Recycler

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "preserveSensitiveData": false,  "addressId": "00000000-0000-4000-9000-00000000000d",  "label": "Recycler",  "name": "ACTOR",  "participantId": "00000000-0000-4000-8000-00000000000d"}

ACTOR — Processor

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "preserveSensitiveData": false,  "addressId": "00000000-0000-4000-9000-00000000000c",  "label": "Processor",  "name": "ACTOR",  "participantId": "00000000-0000-4000-8000-00000000000c"}

ACTOR — Hauler

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "preserveSensitiveData": true,  "addressId": "00000000-0000-4000-9000-00000000000b",  "label": "Hauler",  "name": "ACTOR",  "participantId": "00000000-0000-4000-8000-00000000000b"}

ACTOR — Integrator

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "preserveSensitiveData": false,  "addressId": "00000000-0000-4000-9000-00000000000e",  "label": "Integrator",  "name": "ACTOR",  "participantId": "00000000-0000-4000-8000-00000000000e"}

Pick-up

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "addressId": "00000000-0000-4000-9000-00000000000a",  "name": "Pick-up",  "participantId": "00000000-0000-4000-8000-00000000000a",  "metadata": {    "attributes": [      {        "isPublic": true,        "name": "Description",        "value": "Waste picked up at the waste generator site"      },      {        "isPublic": true,        "name": "Local Waste Classification ID",        "value": "02 01 03"      },      {        "isPublic": true,        "name": "Local Waste Classification Description",        "value": "Resíduos de tecidos vegetais"      },      {        "sensitive": true,        "isPublic": true,        "name": "Vehicle License Plate",        "value": "ABC1D23"      },      {        "isPublic": true,        "name": "Vehicle Type",        "value": "Truck"      },      {        "sensitive": true,        "isPublic": true,        "name": "Driver Identifier",        "value": "00000000-0000-4000-8000-00000000d21f"      }    ]  }}
AttributeRequiredTypeAccepted valuesVisibilityNotes
DescriptionNostringPublic
Local Waste Classification IDYesstringPublicIbama waste classification code, such as 02 01 03. It must be a code accepted for the MassID subtype.
Local Waste Classification DescriptionYesstringPublicOfficial Ibama description, in Portuguese, of the code sent in Local Waste Classification ID.
Vehicle License PlateYesstringPublic, maskedRequired for every Vehicle Type: the check for duplicate MassIDs uses it. Unless Vehicle Type is Bicycle, Cart, Sludge Pipes or Others, it must be a plate in the form ABC1D23, ABC1234 or AB1234; for those types any non-empty identifier is accepted.
Vehicle TypeYesstring
  • Bicycle
  • Boat
  • Car
  • Cargo Ship
  • Cart
  • Mini Van
  • Motorcycle
  • Others
  • Sludge Pipes
  • Truck
Public
Driver IdentifierConditionalstringPublic, maskedSend either this or Driver Identifier Exemption Justification, never both. Neither is needed when Vehicle Type is Sludge Pipes.
Driver Identifier Exemption JustificationConditionalstringPublicReason Driver Identifier is not sent. Send it instead of Driver Identifier: sending both is rejected.
Vehicle DescriptionConditionalstring—Required when Vehicle Type is Others: describe the vehicle used.
Waste OriginNostring—Leave it out, or send any value other than Unidentified. Unidentified is rejected when the MassID has a Waste Generator ACTOR event, and the check for duplicate MassIDs fails every MassID that has no such event.
Captured GPS LatitudeNonumber—Decimal degrees from -90 to 90, used only when Captured GPS Longitude is also sent. A position more than 2 km from the participant's accredited address can fail the audit.
Captured GPS LongitudeNonumber—Decimal degrees from -180 to 180, used only when Captured GPS Latitude is also sent. A position more than 2 km from the participant's accredited address can fail the audit.

Transport Manifest

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "addressId": "00000000-0000-4000-9000-00000000000a",  "name": "Transport Manifest",  "participantId": "00000000-0000-4000-8000-00000000000a",  "value": 1201.925,  "metadata": {    "attributes": [      {        "isPublic": true,        "name": "Document Type",        "value": "MTR"      },      {        "isPublic": true,        "name": "Document Number",        "value": "DOC-EXAMPLE-0001"      },      {        "format": "DATE",        "isPublic": true,        "name": "Issue Date",        "value": "2025-02-09"      }    ]  },  "attachments": [    {      "fileName": "transport-manifest.pdf",      "isPublic": false,      "label": "Transport Manifest"    }  ]}
AttributeRequiredTypeAccepted valuesVisibilityNotes
Document TypeConditionalstring
  • MTR
PublicRequired when the manifest file is attached. It is not checked when Exemption Justification replaces the attachment.
Document NumberConditionalstringPublicRequired when the manifest file is attached. It is not checked when Exemption Justification replaces the attachment.
Issue DateConditionalstring
format: DATE
PublicRequired when the manifest file is attached. It is not checked when Exemption Justification replaces the attachment.
Exemption JustificationConditionalstringPublicReason the manifest file is not attached. Send it only without the attachment: sending both is rejected, and so is sending neither.

Weighing

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "addressId": "00000000-0000-4000-9000-00000000000a",  "name": "Weighing",  "participantId": "00000000-0000-4000-8000-00000000000a",  "value": 1201.925,  "metadata": {    "attributes": [      {        "isPublic": true,        "name": "Description",        "value": "Weighing captured at waste generator site"      },      {        "isPublic": true,        "name": "Weighing Capture Method",        "value": "Digital"      },      {        "isPublic": true,        "name": "Scale Type",        "value": "Floor Scale"      },      {        "isPublic": true,        "name": "Container Type",        "value": "Drum"      },      {        "isPublic": true,        "name": "Container Quantity",        "value": 1      },      {        "format": "KILOGRAM",        "isPublic": true,        "name": "Container Capacity",        "value": 100      },      {        "format": "KILOGRAM",        "isPublic": true,        "name": "Gross Weight",        "value": 1211.925      },      {        "format": "KILOGRAM",        "isPublic": true,        "name": "Tare",        "value": 10      },      {        "sensitive": true,        "isPublic": true,        "name": "Vehicle License Plate",        "value": "ABC1D23"      }    ]  }}
AttributeRequiredTypeAccepted valuesVisibilityNotes
DescriptionYesstringPublic
Weighing Capture MethodYesstring
  • Digital
  • Manual
  • Photo (Scale + Cargo)
  • Transport Manifest
Public
Scale TypeYesstring
  • Bin Scale
  • Conveyor Belt Scale
  • Floor Scale
  • Forklift Scale
  • Hanging / Crane Scale
  • Onboard Truck Scale
  • Pallet Scale
  • Portable Axle Weigher
  • Precision / Bench Scale
  • Weighbridge (Truck Scale)
  • Weighbridge
PublicMust be the scale type registered in the recycler's accreditation. A weighing sent as two Weighing events must use Weighbridge (Truck Scale) or Weighbridge.
Container TypeYesstringPublicMust be Truck when the weighing is sent as two Weighing events.
Container QuantityConditionalnumber—Whole number greater than 0, required unless Container Type is Truck, in which case it must not be sent. An approved exception in the recycler's accreditation also waives it.
Container CapacityConditionalnumber
format: KILOGRAM
—Greater than 0, required unless the recycler's accreditation carries an approved exception for it.
Gross WeightConditionalnumber
format: KILOGRAM
PublicGreater than 0, required unless the recycler's accreditation carries an approved exception for Tare. When Tare and Container Quantity are also sent, the event value must equal Gross Weight minus (Tare multiplied by Container Quantity).
TareConditionalnumber
format: KILOGRAM
PublicWeight of one empty container, greater than 0, required unless the recycler's accreditation carries an approved exception for it.
Vehicle License PlateYesstringPublic, maskedPlate in the form ABC1D23, ABC1234 or AB1234. A weighing sent as two Weighing events must carry the same Vehicle License Plate, Gross Weight, Container Capacity, Container Type, Scale Type and Weighing Capture Method on both.

Drop-off

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "addressId": "00000000-0000-4000-9000-00000000000d",  "name": "Drop-off",  "participantId": "00000000-0000-4000-8000-00000000000d",  "metadata": {    "attributes": [      {        "isPublic": true,        "name": "Description",        "value": "Waste deposited in Windrow number 1"      },      {        "isPublic": true,        "name": "Receiving Operator Identifier",        "value": "00000000-0000-4000-8000-00000000000c"      }    ]  }}
AttributeRequiredTypeAccepted valuesVisibilityNotes
DescriptionNostringPublic
Receiving Operator IdentifierYesstringPublic
Captured GPS LatitudeNonumber—Decimal degrees from -90 to 90, used only when Captured GPS Longitude is also sent. A position more than 2 km from the participant's accredited address can fail the audit.
Captured GPS LongitudeNonumber—Decimal degrees from -180 to 180, used only when Captured GPS Latitude is also sent. A position more than 2 km from the participant's accredited address can fail the audit.

Sorting

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "addressId": "00000000-0000-4000-9000-00000000000c",  "name": "Sorting",  "participantId": "00000000-0000-4000-8000-00000000000c",  "value": 1189.906,  "metadata": {    "attributes": [      {        "isPublic": true,        "name": "Description",        "value": "Sorting factor determined by a third-party audit"      },      {        "format": "KILOGRAM",        "isPublic": true,        "name": "Gross Weight",        "value": 1201.925      },      {        "format": "KILOGRAM",        "isPublic": true,        "name": "Deducted Weight",        "value": 12.019      }    ]  }}
AttributeRequiredTypeAccepted valuesVisibilityNotes
DescriptionYesstringPublic
Gross WeightYesnumber
format: KILOGRAM
PublicGreater than 0. It must equal the event value (not the Gross Weight attribute) of the most recent earlier event that carries one, normally the Weighing event.
Deducted WeightYesnumber
format: KILOGRAM
PublicGreater than 0 and lower than Gross Weight: it must equal Gross Weight multiplied by the sorting factor in the recycler's accreditation. The event value must equal Gross Weight minus Deducted Weight.

Recycled

{  "externalCreatedAt": "2026-02-22T10:35:12.000Z",  "isPublic": true,  "addressId": "00000000-0000-4000-9000-00000000000d",  "name": "Recycled",  "participantId": "00000000-0000-4000-8000-00000000000d",  "metadata": {    "attributes": [      {        "isPublic": true,        "name": "Description",        "value": "Composting process completed. The recycling completion date is recorded by a conservative estimate determined and verified by a third-party audit for the recycler"      }    ]  }}
AttributeRequiredTypeAccepted valuesVisibilityNotes
DescriptionNostringPublic

Recycling Manifest

{  "externalCreatedAt": "2025-12-05T11:02:47Z",  "isPublic": true,  "addressId": "00000000-0000-4000-9000-00000000000d",  "name": "Recycling Manifest",  "participantId": "00000000-0000-4000-8000-00000000000d",  "value": 1201.925,  "metadata": {    "attributes": [      {        "isPublic": true,        "name": "Document Type",        "value": "CDF"      },      {        "isPublic": true,        "name": "Document Number",        "value": "DOC-EXAMPLE-0002"      },      {        "format": "DATE",        "isPublic": true,        "name": "Issue Date",        "value": "2025-03-10"      }    ]  },  "attachments": [    {      "fileName": "recycling-manifest.pdf",      "isPublic": false,      "label": "Recycling Manifest"    }  ]}
AttributeRequiredTypeAccepted valuesVisibilityNotes
Document TypeConditionalstring
  • CDF
PublicRequired when the manifest file is attached. It is not checked when Exemption Justification replaces the attachment.
Document NumberConditionalstringPublicRequired when the manifest file is attached. It is not checked when Exemption Justification replaces the attachment.
Issue DateConditionalstring
format: DATE
PublicRequired when the manifest file is attached. It is not checked when Exemption Justification replaces the attachment.
Exemption JustificationConditionalstring—Reason the manifest file is not attached. Send it only without the attachment: sending both is rejected, and so is sending neither.

On this page