## The UpdateDetails object

This object is passed to the `updateWith` callback on a [PaymentRequest's](https://docs.stripe.com/js/payment_request/create.md) `shippingaddresschange` and `shippingoptionchange` events.

- `status`
The browser uses this value to show an error message to the customer if they‘ve taken an action that invalidates the payment request. The value must be one of the following:
    - `'success'`
        Let the customer proceed.
    - `'fail'`
        Prevent the customer from making the change they just made.
    - `'invalid_shipping_address'`
        Equivalent to `fail`, except we show a more specific error message. Can only be used in a [`shippingaddresschange`](https://docs.stripe.com/js/payment_request/events/on_shipping_address_change.md) handler.

- `total`
The new total amount, if applicable, as a [PaymentItem](#payment_item_object) object.

- `displayItems`
An array of [PaymentItem](#payment_item_object) objects. These PaymentItems are shown as line items in the browser‘s payment interface. Note that the sum of the line item amounts does not need to add up to the total amount above.

- `shippingOptions`
An array of [ShippingOption](https://docs.stripe.com/js/appendix/shipping_option.md) objects. The first shipping option listed appears in the browser payment interface as the default option.

- `applePay`
Specify Apple Pay specific options. These are passed through to the Apple Pay API.

- `recurringPaymentRequest`
Specify a request to set up a recurring payment. See the [Apple Pay documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/applepayrecurringpaymentrequest) for more details.

    - `paymentDescription`
    - `managementURL`
    - `regularBilling`
        - `amount`
        - `label`
        - `recurringPaymentStartDate`
        - `recurringPaymentEndDate`
        - `recurringPaymentIntervalUnit`
        - `recurringPaymentIntervalCount`
    - `trialBilling`
        - `amount`
        - `label`
        - `recurringPaymentStartDate`
        - `recurringPaymentEndDate`
        - `recurringPaymentIntervalUnit`
        - `recurringPaymentIntervalCount`

- `deferredPaymentRequest`
Specify a request to set up a deferred payment. See the [Apple Pay documentation](https://developer.apple.com/documentation/apple_pay_on_the_web/applepaydeferredpaymentrequest) for more details.

    - `paymentDescription`
    - `managementURL`
    - `deferredBilling`
        - `amount`
        - `amountType`
            Indicates whether the billing amount is known at request time. When set to 'final', the Apple Pay payment sheet shows the configured amount.
        - `label`
        - `deferredPaymentDate`
    - `billingAgreement`
- `freeCancellationDate`
If set, you must