Skip to main content

Uploading Evidence & Field Values

Overview

Once you've configured your Evidence Requests, Expected Fields, and Model calculations, it's time to submit the actual data:

  • Evidence - Files containing supporting documentation
  • Expected Field Values - Data values that feed into your model calculations

File Naming Best Practices

Before uploading evidence files, follow these naming conventions:

Rename Final Documents

Rename final document versions to clearly reflect the facility name and document purpose.

Examples:

  • Puro Project Description [Facility Name].docx
  • LCA_Report_FacilityA_2024.pdf
  • Batch_Production_Data_Q4_2024.xlsx
  • Puro Project Description.docx (too generic)
  • document1.pdf (unclear purpose)

Keep Names Concise and Specific

  • Include facility name
  • Include document type/purpose
  • Include time period if relevant
  • Avoid special characters
  • Use consistent format across all files

Uploading Evidence

Evidence files are uploaded to Evidence Requests using multipart/form-data.

Uploading Evidence to a Standard Request

Create evidence
curl -X 'POST' "/v0/evidence-requests/{id}/evidence" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"file": "LCA_Report_Facility_A_2024.pdf", \
"evidenceTemplateId": "template-uuid-if-applicable" \
}'

Parameters

  • file (required) - The file to upload
  • evidenceTemplateId (optional) - UUID of the evidence template if the file follows a specific template structure

Response

The response includes:

id
required
string
evidenceRequestId
required
string
evidenceTemplateId
required
string or null
validationErrors
required
Array of objects
  • id - The evidence ID
  • evidenceRequestId - The request it belongs to
  • evidenceTemplateId - Template used (if applicable)
  • validationErrors - Any validation errors found in the submission
Validation

If you're uploading a file that matches an evidence template, the system will validate the file structure against the template and return any errors in the validationErrors array.

Creating Expected Field Values

Expected Field Values are the actual data points that populate your Expected Fields.

Creating a Numeric Value

Create expected field value
curl -X 'POST' "/v0/evidence-requests/{id}/values" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"type": "NUMERIC", \
"expectedFieldId": "field-uuid", \
"value": "1250.5", \
"batchItemId": null \
}'

Creating a Text Value

Create expected field value
curl -X 'POST' "/v0/evidence-requests/{id}/values" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"type": "TEXT", \
"expectedFieldId": "field-uuid", \
"value": "Supplier XYZ Corp", \
"batchItemId": null \
}'

Creating a Date Value

Create expected field value
curl -X 'POST' "/v0/evidence-requests/{id}/values" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"type": "DATE", \
"expectedFieldId": "field-uuid", \
"value": "2024-06-15T10:30:00Z", \
"batchItemId": null \
}'

Creating a Boolean Value

Create expected field value
curl -X 'POST' "/v0/evidence-requests/{id}/values" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"type": "BOOLEAN", \
"expectedFieldId": "field-uuid", \
"value": true, \
"batchItemId": null \
}'

Creating Batch-Specific Values

For batch evidence requests, include the batchItemId:

Create expected field value
curl -X 'POST' "/v0/evidence-requests/{id}/values" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"type": "NUMERIC", \
"expectedFieldId": "field-uuid", \
"value": "500.75", \
"batchItemId": "batch-uuid" \
}'

Listing Expected Field Values

To view all field values:

Get expected field values
curl -X 'GET' "/v0/expected-field-values" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER"

To get a specific field value:

Get expected field value
curl -X 'GET' "/v0/expected-field-values/{id}" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER"

Updating Expected Field Values

To update an existing field value:

Update expected field value
curl -X 'PATCH' "/v0/expected-field-values/{id}" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"type": "NUMERIC", \
"value": "1500.25" \
}'
Type Required

When updating a field value, you must include the type parameter matching the value's original type.

Deleting Expected Field Values

To delete a field value:

Delete expected field value
curl -X 'DELETE' "/v0/expected-field-values/{id}" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER"

Creating Evidence Export Jobs

To export all evidence you've submitted:

Creating an Export Job

Create evidence export job
curl -X 'POST' "/v0/evidence/export" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"merge": false, \
"evidenceTemplateIds": [ \
"template-uuid-1" \
], \
"monitoringPeriodIds": [ \
"monitoring-period-uuid" \
], \
"facilityIds": [ \
"facility-uuid" \
], \
"evidenceRequestStatuses": [] \
}'

Parameters

  • merge (optional, default: false) - If true, merges all evidence files with the same template into a single file
  • evidenceTemplateIds (optional) - Filter by specific templates
  • monitoringPeriodIds (optional) - Filter by monitoring periods
  • facilityIds (optional) - Filter by facilities
  • evidenceRequestStatuses (optional) - Filter by request status

Checking Export Status

Get evidence export job
curl -X 'GET' "/v0/evidence/export/{id}" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER"

The response includes:

  • id - Job ID
  • status - PENDING, COMPLETED, or FAILED
  • signedUrl - Download URL when status is COMPLETED

Next Steps

Once all evidence and field values are submitted and validated, you're ready to perform a final consistency check and submit your Audit Package.