Question: issuer shared_metadata support for Link SPT requests

Open
#479 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
api, payments

Research direction

Start by reviewing the Link shared payment token API and the MPP challenge and Stripe reference implementation linked in the issue. Determine whether Link supports requesting issuer-visible shared_metadata, and compare that with the existing sandbox observation. Done means documenting the supported capability and the recommended integration for challenge binding and merchant-side order association.

Written by the indexing model from the issue text.

Description

Clarification: optional issuer metadata support, not an established MPP defect

After rechecking the current MPP specifications and reference implementation, we need to correct our original framing. Requiring shared_metadata[ticket_fairy_request_binding] is an additional Ticket Fairy application contract, not a demonstrated requirement of Stripe MPP. We have not established a Stripe or Link protocol defect.

Standard MPP authenticates the echoed challenge (including payment parameters and optional expiry/body digest/opaque context), and the Stripe reference implementation settles the exact challenge amount/currency with the SPT and a challenge/token idempotency key. It does not require a granted-token shared_metadata lookup. The server-authenticated challenge and issuer attestation of a specific purchase are different assurances; our implementation had demanded the latter as an extra condition.

The sandbox observation below remains reproducible, but should be treated as a capability question:

  • Official @stripe/link-cli 0.29.2, one explicitly test-mode SPT request, existing test seller Profile, amount 100 USD minor units.
  • Explicit SpendRequest metadata ticket_fairy_request_binding=<opaque test reference> was retained on the approved SpendRequest.
  • The seller retrieved that exact granted token: HTTP 200, object shared_payment.granted_token, livemode false, empty shared_metadata.
  • No token was consumed and no PaymentIntent, live charge or transfer was created.

Does Link offer a supported way to request issuer-visible shared_metadata, or is the recommended integration to rely on the standard challenge/body binding and merchant-side order association instead? We are reviewing our additional restriction for interoperability rather than asking Link to satisfy a supposed protocol mandate.

Sources:

No credentials, tokens, customer data or account identifiers are included.

Dominant language
TypeScript
Stars
885
Forks
156
Avg merge
23h 49m
Merged PRs (30d)
79

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from stripe/link-cli

All issues in stripe/link-cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.