We support text-based QR and barcodes, which means you can provide us with a text value during job creation and generate a QR or barcode that reads as that value. This code can then be scanned to programmatically retrieve the text value, completing the validation process.
Important Note:
QR or barcodes pointing to a PDF cannot be read.
To clarify further, here’s how this feature works step by step:
Generate a unique text code:
Your system generates a unique text code for each package to ensure the correct package is handed over during pickup or dropoff. For example, let’s use the code TEST2024.
Create and apply a QR or barcode:
You generate a QR or barcode that encodes the unique text code (e.g., TEST2024), print it, and attach it to the package. You can use free online tools for this, below an example:
Include the code in the job creation payload:
During job creation, you’ll add the text code in the dropoffs.access_codes[] object, specifying the code, type, title, and any instructions. For example:
"access_codes": [
{
"code": "TEST2024",
"type": "scan_qr_text",
"title": "Package 1",
"instructions": "Please scan the QR code at pickup."
}
]
Courier scans the code:
When the courier arrives, they will be prompted to scan the QR code. Our app will validate the scanned value against the unique code of the package.
Additional Notes:
For barcodes, we also support EAN-13 and UPC-A standards.
Regarding your question about client_reference vs. access_code:
client_reference is an identifier for the entire delivery and ideally matches the order reference in your system.
access_code is used for more specific purposes, such as building entry or package handover validation (e.g., QR or barcode scanning).
You can include dropoffs.access_codes[] in either the pickup or dropoff sections—or both, depending on your needs.
Let us know if you have further questions and don’t forget revisiting our dedicated article and follow the best practices while implementing this feature.