## The PaymentResponse object

This object is returned as the payload of the `PaymentRequest` object's [`token`](https://docs.stripe.com/js/payment_request/events/on_token.md), [`paymentmethod`](https://docs.stripe.com/js/payment_request/events/on_payment_method.md), or [`source`](https://docs.stripe.com/js/payment_request/events/on_source.md) event handlers.

- `token`
  A [Token](https://docs.stripe.com/api/tokens.md) object.
Present if this was the result of a `token` event listener.

- `paymentMethod`
  A [PaymentMethod](https://docs.stripe.com/api/payment_methods.md) object.
Present if this was the result of a `paymentmethod` event listener.

- `source`
  A [Source](https://docs.stripe.com/api/sources.md) object.
Present if this was the result of a `source` event listener.

- `complete`
  `complete(status) => void` is a Stripe.js provided function.
Call this when you have processed the token data provided by the API.
Note that you must must call `complete` within 30 seconds.

Accepts one of the following values:
    - `'success'`
      Report to the browser that the payment was successful, and that it can close any active payment interface.
    - `'fail'`
      Report to the browser that you were unable to process the customer‘s payment.
Browsers may re-show the payment interface, or simply show a message and close.
    - `'invalid_payer_name'`
      Equivalent to `fail`, except that the browser can choose to show a more-specific error message.
    - `'invalid_payer_phone'`
      Equivalent to `fail`, except that the browser can choose to show a more-specific error message.
    - `'invalid_payer_email'`
      Equivalent to `fail`, except that the browser can choose to show a more-specific error message.
    - `'invalid_shipping_address'`
      Equivalent to `fail`, except that the browser can choose to show a more-specific error message.

- `payerName`
  The customer's name.
Only present if it was explicitly [asked for](#payment_request_create-options-requestPayerName) when [creating the PaymentRequest object](https://docs.stripe.com/js/payment_request/create.md).

- `payerEmail`
  The customer's email.
Only present if it was explicitly [asked for](#payment_request_create-options-requestPayerEmail) when [creating the PaymentRequest object](https://docs.stripe.com/js/payment_request/create.md).

- `payerPhone`
  The customer's phone.
Only present if it was explicitly [asked for](#payment_request_create-options-requestPayerPhone) when [creating the PaymentRequest object](https://docs.stripe.com/js/payment_request/create.md).

- `shippingAddress`
  The final shipping address the customer selected.

Only populated when `requestShipping` is `true` when [creating the PaymentRequest object](https://docs.stripe.com/js/payment_request/create.md), and you've supplied at least one `ShippingOption`.
    - `country`
      Two-letter country code, capitalized. Valid two-letter country codes are specified by ISO3166 alpha-2.
    - `addressLine`
      An array of address line items. For example, `185 Berry St.`, `Suite 500`, `P.O. Box 12345`, etc.
    - `region`
      The most coarse subdivision of a country. Depending on the country, this might correspond to a state, a province, an oblast, a prefecture, or something else along these lines.
    - `city`
      The name of a city, town, village, etc.
    - `postalCode`
      The postal code or ZIP code, also known as PIN code in India.
    - `recipient`
      The name of the recipient. This might be a person, a business name, or contain "care of" (c/o) instructions.
    - `phone`
      The phone number of the recipient. Note that this might be different from any phone number you collect with [`requestPayerPhone`](#payment_request_create-options-requestPayerPhone).
    - `sortingCode`
      The sorting code as used in, for example, France. Not present on Apple platforms.
    - `dependentLocality`
      A logical subdivision of a city. Can be used for things like neighborhoods, boroughs, districts, or UK dependent localities. Not present on Apple platforms.

- `shippingOption`
  The final [ShippingOption](https://docs.stripe.com/js/appendix/shipping_option.md) the customer selected.

Only present when `requestShipping` is `true` when [creating the PaymentRequest object](https://docs.stripe.com/js/payment_request/create.md), and you've supplied at least one `ShippingOption`.

- `walletName`
  The unique name of the wallet the customer chose to authorize payment.
For example, `browserCard`.
