# Delivery Confirmation

Delivery confirmation is a way to confirm that a package has been received by its intended recipient. This goes beyond the tracking status that confirms a package has simply been delivered by the carrier. Carriers often include multiple levels of delivery confirmation to choose from, like `signature` or `adult_signature`, which will indicate additional requirements before the carrier can leave the shipment. Some confirmation types may incur an additional fee from the carrier.

ShipStation V2 API supports this using the `confirmation` property in the `shipment` object when you create a shipment, create a label, or get rates.

## Confirmation Types

The `confirmation` property is an *enumerated string* that accepts the following values:

| Confirmation Type | Description |
|  --- | --- |
| `none` | No confirmation requested. |
| `delivery` | Delivery confirmation is requested. |
| `signature` | Signature is required for the shipment to be delivered. This signature may be a neighbor, building manager, or the recipient can authorize the release of the package (without being present). |
| `adult_signature` | An adult signature is required for the shipment to be delivered. |
| `adult_signature_restricted_delivery` | An adult signature is required with restricted delivery (Stamps.com/USPS only). |
| `direct_signature` | A signature of somebody at the address is required. This confirmation is only supported by FedEx. |
| `delivery_mailed` | Receive a delivery confirmation via mail. Currently only supported for UPS. There's a $2 charge for this service. |
| `verbal_confirmation` | The carrier must receive verbal confirmation from the recipient. |
| `delivery_code` | Delivery confirmation with a code. |
| `age_verification_16_plus` | Age verification for recipients 16 years or older. |


> **TIP:**
### Check With Your Carrier
While many carriers support at least some of these confirmation types, some carriers have special confirmation types or don't support any delivery confirmation at all. Make sure you check the carrier documentation to verify if it supports the confirmation you're requesting.


## Example Request

In the create label example below, we've set the `confirmation` property in the `shipment` object to `signature`.

**POST /v2/labels**


```http
POST /v2/labels HTTP/1.1
Host: api.shipstation.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json

{
  "shipment": {
    "service_code": "usps_priority_mail",
    "confirmation": "signature",
    "ship_to": {
      "name": "Amanda Miller",
      "phone": "555-555-5555",
      "address_line1": "525 S Winchester Blvd",
      "city_locality": "San Jose",
      "state_province": "CA",
      "postal_code": "95128",
      "country_code": "US",
      "address_residential_indicator": "yes"
    },
    "ship_from": {
      "company_name": "Example Corp.",
      "name": "John Doe",
      "phone": "111-111-1111",
      "address_line1": "4009 Marathon Blvd",
      "address_line2": "Suite 300",
      "city_locality": "Austin",
      "state_province": "TX",
      "postal_code": "78756",
      "country_code": "US",
      "address_residential_indicator": "no"
    },
    "packages": [
      {
        "weight": {
          "value": 1.0,
          "unit": "ounce"
        }
      }
    ]
  }
}
```