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
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 uploadevidenceTemplateId(optional) - UUID of the evidence template if the file follows a specific template structure
Response
The response includes:
id- The evidence IDevidenceRequestId- The request it belongs toevidenceTemplateId- Template used (if applicable)validationErrors- Any validation errors found in the submission
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
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
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
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
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:
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:
curl -X 'GET' "/v0/expected-field-values" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER"
To get a specific 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:
curl -X 'PATCH' "/v0/expected-field-values/{id}" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"type": "NUMERIC", \
"value": "1500.25" \
}'
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:
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
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 fileevidenceTemplateIds(optional) - Filter by specific templatesmonitoringPeriodIds(optional) - Filter by monitoring periodsfacilityIds(optional) - Filter by facilitiesevidenceRequestStatuses(optional) - Filter by request status
Checking Export Status
curl -X 'GET' "/v0/evidence/export/{id}" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER"
The response includes:
id- Job IDstatus-PENDING,COMPLETED, orFAILEDsignedUrl- Download URL when status isCOMPLETED
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:
curl -X 'PATCH' "/v0/evidence-requests/{id}" \
-H "Accept: application/json" \
-H "Authorization: Bearer $BEARER" \
-d '{ \
"status": "READY_FOR_REVIEW" \
}'
Best Practices
- Upload incrementally - Don't wait until the last minute to upload all evidence
- Validate as you go - Check for validation errors after each upload
- Keep backups - Maintain copies of all uploaded files
- Use templates - Leverage evidence templates for structured data
- Check calculations - Verify that field values produce correct model outputs
- Document deviations - Include notes for any unusual or missing data
- 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.