Three lines

Uber

Developers

Proof of Delivery

The Uber Direct supports Proof of Delivery verification for trips that necessitate couriers to undertake additional steps to ensure successful pickup, delivery, or return of packages.

Verification options encompass the following:

  • Signature
  • Barcodes
  • Picture
  • Identification
  • Pincode (Please refer to Pincode for more detail)

These verification methods allow for robust confirmation and validation of the delivery process.

Enabling Verification

To enhance the delivery process, you have the option to incorporate verification steps for pickup, delivery, and return by specifying the corresponding parameters: pickup_verification, dropoff_verification, or return_verification. It is important to note that the JSON structure for these three verification remains consistent. For the purposes of the following example, we will focus on the dropoff_verification parameter.

Signature

In the following example, the courier is prompted to collect the recipient’s signature and name. However, it does not require the collection of the relationship between the signer and the recipient.

"dropoff_verification": {
  "signature_requirement": {
    "enabled": true,
    "collect_signer_name": true,
    "collect_signer_relationship": false
  }
}

You can retrieve the signature verification image using the Proof of Delivery API call. Please note that the images are retained for 30 days. SignaturePod

Barcodes

Barcode is a Proof of Delivery method that requires the courier to scan a barcode at the dropoff or pickup to verify that they are picking up or dropping off the correct items.

IMPORTANT

  1. Orders can have multiple barcodes.
  2. Barcode is available at pickup, dropoff, and return.
  3. Barcode value can be updated using the Update Delivery API after the delivery is created:
    • Pickup verification barcode value can only be updated prior to courier_imminent (i.e., before courier is one minute away from pickup location).
    • Dropoff verification barcode value can only be updated prior to courier_imminent (i.e., before courier is one minute away from dropoff location).
"dropoff_verification": {
  "barcodes": [
    {
      "value": "W1129082649-1",
      "type": "CODE39"
    }
  ]
}
Picture

Enabling the picture feature requires couriers to take a photo of the order at the delivery point as evidence of successful delivery.

IMPORTANT

  1. Picture is automatically enabled for deliveries with Leave at Door as the handoff option.
  2. It is the merchant’s responsibility to surface the photo to the customer on their own app.
  3. The photo is (i) accessible through the Dashboard and (ii) the URL returned via the API.
  4. The photo images are retained in the Direct Dashboard for 7 days and available for 30 days through the API via a GET Delivery call
"dropoff_verification": {
  "picture": true
}

You can utilize the Proof of Delivery API call to retrieve the picture verification image as below: SignaturePod

Identification

Identification is a visual record that confirms the identity of the recipient who received a package. We require the courier to take a photo of the order recipient’s government-issued photo ID (such as a driver’s license or passport) at the point of delivery. This can serve as evidence that the package was delivered to the correct person, that the person is of legal age (for restricted items), and can help to prevent theft or fraud.

IMPORTANT

  1. Identification verification is required for restricted items. Restricted items encompass products like alcohol, tobacco, and prescription medications that have specific delivery regulations or restrictions. These limitations may be due to safety considerations or legal mandates.
  2. Identification is available only at dropoff (except for Leave at Door), and it is not applied for return trips. Orders containing this Proof of Delivery (POD) requirement are automatically flagged with “contains alcohol,” with Sobriety check enabled by default.
  3. If a courier is unable to complete the ID check, a return trip will be initiated.
"dropoff_verification": {
  "identification": {
    "min_age": 18
  }
}
Combining Multiple Proof of Deliveries

Verification options vary based on the use case. However, in all cases, selecting the appropriate option based on the vertical and items being delivered gives merchants confidence that the items will be delivered safely and securely.

  • Pickup Verification: It is possible to use Barcode, Photo, and Signature.
  • Dropoff Verification: It is possible to use ID Check, Barcode, Photo, Signature, and Pincode.
Vertical Common Pickup Verification Common Dropoff Verification Example Use Case
Liquor Barcode OR Signature ID Check Legal Age Verification
Grocery Barcode OR Picture Barcode OR Picture OR Pincode Frequent order mixups
Restaurant Barcode OR Picture OR Signature Barcode OR Picture Frequent fraudulent activity
Pharmacy Barcode OR Picture OR Signature ID Check OR Signature OR Pincode Legal Age Verification or Identify Verification
Retail Barcode OR Picture OR Signature Signature OR Pincode High Value Shipments
"dropoff_verification": {
  "picture": true,
  "barcodes": [
    {
      "value": "W1129082649-1",
      "type": "CODE39"
    }
  ],
  "signature_requirement": {
    "enabled": true,
    "collect_signer_name": true,
    "collect_signer_relationship": false
  }
}

Example Response

A delivery with dropoff verification will have the following object in the CreateDelivery and GetDelivery response body under dropoff.verification_requirements object:

"verification_requirements": {
  "signature": true,
  "barcodes": {
    "value": "W1129082649-1",
    "type": "CODE39"
  },
  "picture": true,
  "signature_requirement": {
    "enabled": true,
    "collect_signer_name": true,
    "collect_signer_relationship": false
  }
}

Example Webhook

For deliveries with dropoff verification, both the Delivery Status Webhook and Courier Update Webhook events will include the following object in the response body:

"verification_requirements": {
  "signature": true,
  "barcodes": {
    "value": "W1129082649-1",
    "type": "CODE39"
  },
  "picture": true,
  "signature_requirement": {
    "enabled": true,
    "collect_signer_name": true,
    "collect_signer_relationship": false
  }
}

After a delivery is completed successfully, the Webhook event “delivered” and GetDelivery response payload will have an external link as a reference to proof of delivery files. The response payload will have the following JSON under dropoff.verification object:

"verification": {
  "picture": {
    "image_url": "<URL>"
  },
  "barcodes": {
    "value": "W1129082649-1",
    "type": "CODE39",
    "scan_result": {
      "outcome": "SUCCESS",
      "timestamp": "2023-07-06T22:50:29.092Z",
    }
  },
  "signature_proof": {
    "image_url": "<URL>",
    "signer_name": "John Doe"
  }
}

Uber

Developers
© 2023 Uber Technologies Inc.