## 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

---
```json
{
  "page_title": "The PaymentResponse object",
  "parent_page": "/js/appendix",
  "path": "/js/appendix/payment_response.md"
}
```