Payments API changes id of payment randomly

Steps to reproduce

  1. Add a manual payment method to your store
  2. Add checkout-ui extension with this target:
    target = "purchase.checkout.payment-method-list.render-before"
    or
    target = "purchase.checkout.payment-method-list.render-after"
  3. Activate the app extension in your checkout (only availble in Shopify Plus)
  4. In your code add a callback to log the value of the selected payment method and available payment methods .e.g
export default extension("purchase.checkout.payment-method-list.render-before", (root, api) => {
    const { availablePaymentOptions,  selectedPaymentOptions, } = api;
    console.log({ availablePaymentOptions,  selectedPaymentOptions, })
    availablePaymentOptions.subscribe((available)=>console.log({available}))
    selectedPaymentOptions.subscribe((selected)=>console.log({selected}));
})
  1. Go to checkout and choose your manual payment method (pay attention to the logged values)
  2. Reload the page

After you reload the page the manual-payment method should be automatically selected again, but this time will have a different generic, value .e.g manual-payment-money order instead of manual-payment-123

Expected behaviour

The returned payment method ids should be the same no matter the situation.

Additional info:

Tested on safari,firefox and brave, dependencies:
"@shopify/cli": "3.92.1", "@shopify/ui-extensions": "2026.04.1",

Also tested on this:
"@shopify/cli": "3.92.1", "@shopify/ui-extensions": "2025.7.1",