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

Data Submission Workflow

1. Prepare Your Data

  • Organize files with clear, consistent naming
  • Ensure data matches Expected Field definitions
  • Validate against any templates
  • Remove any confidential information from public documents

2. Upload Evidence Files

  • Submit files to appropriate Evidence Requests
  • Link to templates where applicable
  • Review any validation errors

3. Submit Field Values

  • Enter values for all required Expected Fields
  • Include batch IDs for batch evidence requests
  • Verify values are within defined constraints

4. Review and Validate

  • Check that all required evidence is submitted
  • Verify field values are accurate
  • Ensure calculations are producing expected results
  • Review field and formula computed values

5. Update Evidence Request Status

Once all data is submitted for an evidence request:

Update evidence request
curl -X 'PATCH' "/v0/evidence-requests/{id}" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"status": "READY_FOR_REVIEW" \
}'

Best Practices

  1. Upload incrementally - Don't wait until the last minute to upload all evidence
  2. Validate as you go - Check for validation errors after each upload
  3. Keep backups - Maintain copies of all uploaded files
  4. Use templates - Leverage evidence templates for structured data
  5. Check calculations - Verify that field values produce correct model outputs
  6. Document deviations - Include notes for any unusual or missing data
  7. Review before submission - Double-check everything before marking ready for review

Common Issues

Validation Errors

If you receive validation errors:

  • Review the template structure requirements
  • Check data types match expectations
  • Verify all required columns are present
  • Ensure values are within defined ranges

Missing Data

If data is unavailable:

  • Document the reason in a separate file
  • Consider skipping the evidence request with a reason
  • Contact your Puro representative if uncertain

File Size Limits

  • Be aware of any file size restrictions
  • Compress large files if possible
  • Split very large datasets into multiple files

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.