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.