Checkout Kit (React Native) not showing vaulted payment methods, works fine on Headless/Remix

Hey,

I’m building a React Native app for a Shopify Plus B2B store and running into an issue with vaulted payment methods not appearing in Checkout Kit.

Setup:

  • React Native app using the Storefront API and Customer Accounts API
  • Shopify Plus with B2B features enabled
  • Customer authenticates via the Customer Accounts API. Auth is working correctly
  • Buyer Identity (including customer access token) is passed to the Storefront API cart before handing off to Checkout Kit
  • Checkout Kit opens and the customer is authenticated as expected

The problem:
When the customer reaches checkout via Checkout Kit, neither of the following appear:

  1. Their existing vaulted payment methods
  2. The checkbox to save a new payment method for future use

What’s working:
The exact same Shopify store has a Headless storefront (Remix) where this works perfectly, vaulted payment methods are visible and the save option is present.

What I’ve already tried:
I found this post and this linked post and have already implemented the recommended approach of passing Buyer Identity through the Storefront API cart. That part is working, the customer is authenticated in checkout, but the payment vaulting UI is still missing in the Checkout Kit Sheet.

This makes me think the issue isn’t with authentication or Buyer Identity, but something specific to how Checkout Kit’s web view session handles payment method vaulting vs. a standard browser-based headless checkout.

Has anyone successfully gotten vaulted payment methods to appear in Checkout Kit? Is this a known limitation, or is there a configuration step I’m missing?

Any guidance appreciated, thank you.

Hey @j_riv, thanks for reaching out.

When you’re creating/updating the cart for the Checkout Kit flow, are you passing both customerAccessToken and companyLocationId on the buyerIdentity input? Without the companyLocationId, B2B might not be carrying through to checkout (including B2B-specific vaulted payment methods and the save-payment-method option).

Docs for reference: Headless with B2B (see Step 4: Set the Buyer Identity on Cart)

Also, just to rule out the other common gap here - are you going through the full Customer Account API OAuth flow (authorization endpoint in a WebView, callback, token exchange) and then passing that access_token into the cart’s buyerIdentity? Full flow is documented here: Authenticate checkouts with the Customer Account API

If both of those are already in place and you’re still seeing the vaulted methods missing, let me know and I’ll dig in further on our end. Hope to hear from you soon!

Hey Alan,

I didn’t realize I needed to add the companyLocationId in the buyerIdentity input. That seems to have been it. Thank you.

Hey @j_riv - glad to hear that sorted things out! Going to mark this one as solved on our end here.

Let me know if anything else comes up!