Skip to content

Bind Link Pay Tokens to the checkout merchant - #243

Merged
nvp-stripe merged 3 commits into
mainfrom
lpt-merchant-binding
Aug 11, 2026
Merged

Bind Link Pay Tokens to the checkout merchant#243
nvp-stripe merged 3 commits into
mainfrom
lpt-merchant-binding

Conversation

@nvp-stripe

@nvp-stripe nvp-stripe commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

r? @sylwang-stripe @kreese-stripe @lkong-stripe

Summary

This change adds the Link CLI side of merchant bound Link Pay Token SpendRequests. It lets an agent read the merchant account ID exposed by the Stripe checkout's AI agent steering block and send it when creating the
SpendRequest.

  • Adds create-only execution_method: "link_pay_token" and merchant_account_id fields to the SDK and /spend_requests request.
  • Adds --execution-method link_pay_token and --merchant-account-id acct_... to the CLI and MCP schemas.
  • Requires the two fields together and rejects incompatible LPT inputs: shared_payment_token, network_id, test mode, and agent-provided merchant name or URL.
  • Documents the browser flow: find the AI-agent steering block, enable it, read data-stripe-merchant-account, create the bound SpendRequest, wait for approval, then retrieve and inject the LPT.

Motivation

LPTs should be tied to the merchant the consumer sees and approves, rather than trusting the first checkout surface that presents the token. The CLI now supplies the checkout-derived merchant account ID so the backend can resolve
the canonical merchant identity, show it in the approval experience, and bind the LPT to that merchant at exchange time.

@nvp-stripe
nvp-stripe requested a review from a team as a code owner August 11, 2026 14:31
@nvp-stripe nvp-stripe changed the title lpt merchant binding WIP lpt merchant binding Aug 11, 2026
@nvp-stripe nvp-stripe changed the title WIP lpt merchant binding Bind Link Pay Tokens to the checkout merchant Aug 11, 2026

@raubrey-stripe raubrey-stripe left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feels like we might benefit from splitting out link_pay_token into its own credential-type, if you want to do that as a follow up or we have some reason not to let's chat!

Comment thread README.md
```bash
link-cli spend-request create \
--payment-method-id csmrpd_xxx \
--execution-method link_pay_token \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feels like we should consider transitioning to the --credential-type link_pay_token?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah I agree a link_pay_token credential type flow would be cleaner longer term. But let's focus on that in a follow-up?

Comment thread README.md
```

LPT requests use the default `card` credential type and do not support
`--test`, `--network-id`, or `shared_payment_token`. After approval, retrieve

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no --test :/ is support for this incoming?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, @sylwang-stripe is working on broader support in this area.

@raubrey-stripe raubrey-stripe left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I'm good to move forward with this for now!

@nvp-stripe
nvp-stripe merged commit 9103637 into main Aug 11, 2026
5 checks passed
@nvp-stripe
nvp-stripe deleted the lpt-merchant-binding branch August 11, 2026 19:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants