---
title: "PaymentMethodChangeEvent | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Interface PaymentMethodChangeEvent

The **`PaymentMethodChangeEvent`** interface of the Payment Request API describes the paymentmethodchange event which is fired by some payment handlers when the user switches payment instruments (e.g., a user selects a "store" card to make a purchase while using Apple Pay). Available only in secure contexts.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent)

interface PaymentMethodChangeEvent {  
    [AT\_TARGET](#at_target): 2;  
    [bubbles](#bubbles): boolean;  
    [BUBBLING\_PHASE](#bubbling_phase): 3;  
    [cancelable](#cancelable): boolean;  
    [cancelBubble](#cancelbubble): boolean;  
    [CAPTURING\_PHASE](#capturing_phase): 1;  
    [composed](#composed): boolean;  
    [currentTarget](#currenttarget): EventTarget | null;  
    [defaultPrevented](#defaultprevented): boolean;  
    [eventPhase](#eventphase): number;  
    [isTrusted](#istrusted): boolean;  
    [methodDetails](#methoddetails): any;  
    [methodName](#methodname): string;  
    [NONE](#none): 0;  
    [returnValue](#returnvalue): boolean;  
    [srcElement](#srcelement): EventTarget | null;  
    [target](#target): EventTarget | null;  
    [timeStamp](#timestamp): number;  
    [type](#type): string;  
    [composedPath](#composedpath-1)(): EventTarget\[\];  
    [initEvent](#initevent-1)(type: string, bubbles?: boolean, cancelable?: boolean): void;  
    [preventDefault](#preventdefault-1)(): void;  
    [stopImmediatePropagation](#stopimmediatepropagation-1)(): void;  
    [stopPropagation](#stoppropagation-1)(): void;  
    [updateWith](#updatewith-1)(  
        detailsPromise:  
            | [PaymentDetailsUpdate](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentDetailsUpdate/)  
            | [PromiseLike](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PromiseLike/)<[PaymentDetailsUpdate](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentDetailsUpdate/)\>,  
    ): void;  
}

#### Hierarchy ([View Summary](https://docs.maptiler.com/sdk-js/api-reference/hierarchy/#Externals.PaymentMethodChangeEvent))

-   [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/)
    -   PaymentMethodChangeEvent

##### Index

### Properties[](#properties)

[AT\_TARGET](#at_target) [bubbles](#bubbles) [BUBBLING\_PHASE](#bubbling_phase) [cancelable](#cancelable) [cancelBubble](#cancelbubble) [CAPTURING\_PHASE](#capturing_phase) [composed](#composed) [currentTarget](#currenttarget) [defaultPrevented](#defaultprevented) [eventPhase](#eventphase) [isTrusted](#istrusted) [methodDetails](#methoddetails) [methodName](#methodname) [NONE](#none) [returnValue](#returnvalue) [srcElement](#srcelement) [target](#target) [timeStamp](#timestamp) [type](#type)

### Methods[](#methods)

[composedPath](#composedpath) [initEvent](#initevent) [preventDefault](#preventdefault) [stopImmediatePropagation](#stopimmediatepropagation) [stopPropagation](#stoppropagation) [updateWith](#updatewith)

## Properties[](#properties-1)

### `Readonly`AT\_TARGET[](#at_target)

AT\_TARGET: 2

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[AT\_TARGET](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#at_target)

### `Readonly`bubbles[](#bubbles)

bubbles: boolean

The **`bubbles`** read-only property of the Event interface indicates whether the event bubbles up through the DOM tree or not.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/bubbles)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[bubbles](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#bubbles)

### `Readonly`BUBBLING\_PHASE[](#bubbling_phase)

BUBBLING\_PHASE: 3

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[BUBBLING\_PHASE](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#bubbling_phase)

### `Readonly`cancelable[](#cancelable)

cancelable: boolean

The **`cancelable`** read-only property of the Event interface indicates whether the event can be canceled, and therefore prevented as if the event never happened.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelable)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[cancelable](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#cancelable)

### cancelBubble[](#cancelbubble)

cancelBubble: boolean

The **`cancelBubble`** property of the Event interface is deprecated. Use Event.stopPropagation() instead. Setting its value to true before returning from an event handler prevents propagation of the event. In later implementations, setting this to false does nothing. See Browser compatibility for details.

#### Deprecated[](#deprecated)

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/cancelBubble)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[cancelBubble](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#cancelbubble)

### `Readonly`CAPTURING\_PHASE[](#capturing_phase)

CAPTURING\_PHASE: 1

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[CAPTURING\_PHASE](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#capturing_phase)

### `Readonly`composed[](#composed)

composed: boolean

The read-only **`composed`** property of the Event interface returns a boolean value which indicates whether or not the event will propagate across the shadow DOM boundary into the standard DOM.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composed)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[composed](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#composed)

### `Readonly`currentTarget[](#currenttarget)

currentTarget: EventTarget | null

The **`currentTarget`** read-only property of the Event interface identifies the element to which the event handler has been attached.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[currentTarget](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#currenttarget)

### `Readonly`defaultPrevented[](#defaultprevented)

defaultPrevented: boolean

The **`defaultPrevented`** read-only property of the Event interface returns a boolean value indicating whether or not the call to Event.preventDefault() canceled the event.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/defaultPrevented)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[defaultPrevented](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#defaultprevented)

### `Readonly`eventPhase[](#eventphase)

eventPhase: number

The **`eventPhase`** read-only property of the Event interface indicates which phase of the event flow is currently being evaluated.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/eventPhase)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[eventPhase](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#eventphase)

### `Readonly`isTrusted[](#istrusted)

isTrusted: boolean

The **`isTrusted`** read-only property of the Event interface is a boolean value that is true when the event was generated by the user agent (including via user actions and programmatic methods such as HTMLElement.focus()), and false when the event was dispatched via EventTarget.dispatchEvent(). The only exception is the click event, which initializes the isTrusted property to false in user agents.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/isTrusted)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[isTrusted](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#istrusted)

### `Readonly`methodDetails[](#methoddetails)

methodDetails: any

The read-only **`methodDetails`** property of the PaymentMethodChangeEvent interface is an object containing any data the payment handler may provide to describe the change the user has made to their payment method. The value is null if no details are available.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent/methodDetails)

### `Readonly`methodName[](#methodname)

methodName: string

The read-only **`methodName`** property of the PaymentMethodChangeEvent interface is a string which uniquely identifies the payment handler currently selected by the user. The payment handler may be a payment technology, such as Apple Pay or Android Pay, and each payment handler may support multiple payment methods; changes to the payment method within the payment handler are described by the PaymentMethodChangeEvent.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentMethodChangeEvent/methodName)

### `Readonly`NONE[](#none)

NONE: 0

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[NONE](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#none)

### returnValue[](#returnvalue)

returnValue: boolean

The Event property **`returnValue`** indicates whether the default action for this event has been prevented or not.

#### Deprecated[](#deprecated-1)

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/returnValue)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[returnValue](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#returnvalue)

### `Readonly`srcElement[](#srcelement)

srcElement: EventTarget | null

The deprecated **`Event.srcElement`** is an alias for the Event.target property. Use Event.target instead.

#### Deprecated[](#deprecated-2)

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/srcElement)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[srcElement](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#srcelement)

### `Readonly`target[](#target)

target: EventTarget | null

The read-only **`target`** property of the Event interface is a reference to the object onto which the event was dispatched. It is different from Event.currentTarget when the event handler is called during the bubbling or capturing phase of the event.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[target](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#target)

### `Readonly`timeStamp[](#timestamp)

timeStamp: number

The **`timeStamp`** read-only property of the Event interface returns the time (in milliseconds) at which the event was created.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/timeStamp)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[timeStamp](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#timestamp)

### `Readonly`type[](#type)

type: string

The **`type`** read-only property of the Event interface returns a string containing the event's type. It is set when the event is constructed and is the name commonly used to refer to the specific event, such as click, load, or error.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/type)

Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[type](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#type)

## Methods[](#methods-1)

### composedPath[](#composedpath)

-   composedPath(): EventTarget\[\][](#composedpath-1)
    
    The **`composedPath()`** method of the Event interface returns the event's path which is an array of the objects on which listeners will be invoked. This does not include nodes in shadow trees if the shadow root was created with its ShadowRoot.mode closed.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/composedPath)
    
    #### Returns EventTarget\[\]
    
    Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[composedPath](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#composedpath)
    

### initEvent[](#initevent)

-   initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void[](#initevent-1)
    
    The **`Event.initEvent()`** method is used to initialize the value of an event created using Document.createEvent().
    
    #### Parameters
    
    -   type: string
    -   `Optional`bubbles: boolean
    -   `Optional`cancelable: boolean
    
    #### Returns void
    
    #### Deprecated[](#deprecated-3)
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/initEvent)
    
    Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[initEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#initevent)
    

### preventDefault[](#preventdefault)

-   preventDefault(): void[](#preventdefault-1)
    
    The **`preventDefault()`** method of the Event interface tells the user agent that the event is being explicitly handled, so its default action, such as page scrolling, link navigation, or pasting text, should not be taken.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/preventDefault)
    
    #### Returns void
    
    Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[preventDefault](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#preventdefault)
    

### stopImmediatePropagation[](#stopimmediatepropagation)

-   stopImmediatePropagation(): void[](#stopimmediatepropagation-1)
    
    The **`stopImmediatePropagation()`** method of the Event interface prevents other listeners of the same event from being called.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopImmediatePropagation)
    
    #### Returns void
    
    Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[stopImmediatePropagation](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#stopimmediatepropagation)
    

### stopPropagation[](#stoppropagation)

-   stopPropagation(): void[](#stoppropagation-1)
    
    The **`stopPropagation()`** method of the Event interface prevents further propagation of the current event in the capturing and bubbling phases. It does not, however, prevent any default behaviors from occurring; for instance, clicks on links are still processed. If you want to stop those behaviors, see the preventDefault() method. It also does not prevent propagation to other event-handlers of the current element. If you want to stop those, see stopImmediatePropagation().
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/stopPropagation)
    
    #### Returns void
    
    Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[stopPropagation](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#stoppropagation)
    

### updateWith[](#updatewith)

-   updateWith(  
        detailsPromise: [PaymentDetailsUpdate](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentDetailsUpdate/) | [PromiseLike](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PromiseLike/)<[PaymentDetailsUpdate](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentDetailsUpdate/)\>,  
    ): void[](#updatewith-1)
    
    The **`updateWith()`** method of the PaymentRequestUpdateEvent interface updates the details of an existing PaymentRequest.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/PaymentRequestUpdateEvent/updateWith)
    
    #### Parameters
    
    -   detailsPromise: [PaymentDetailsUpdate](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentDetailsUpdate/) | [PromiseLike](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PromiseLike/)<[PaymentDetailsUpdate](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentDetailsUpdate/)\>
    
    #### Returns void
    
    Inherited from [PaymentRequestUpdateEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/).[updateWith](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.PaymentRequestUpdateEvent/#updatewith)
