Payment method matching

Payment method matching

Understand how RevBridge validates buyer-scoped payment methods before creating destination subscriptions.

Updated Jun 27, 2026

Payment methods are scoped to the Stripe account that can use them. A buyer-side recurring subscription needs a buyer-scoped payment method before it can collect future non-zero renewals. RevBridge requires card binding when a supported one-item recurring subscription can collect a non-zero future invoice. For provably non-collecting subscriptions, such as fixed price 0, quantity 0, or a supported subscription-level forever coupon that fully discounts the subtotal, RevBridge can proceed without a card but still binds a copied card when a unique match exists.

RevBridge validates payment readiness after destination customers are mapped.

Matching model

RevBridge uses safe card attributes to identify the corresponding buyer-scoped payment method:

  • Card brand.
  • Last four digits.
  • Expiration month and year.

These attributes are used to locate the destination payment method without collecting raw card data.

Selection order

The dry-run can identify payment instruments from supported source locations, including subscription defaults, customer defaults, latest invoice payment context, and oldest customer payment instruments.

For latest invoice fallback, RevBridge reads modern PaymentIntent/PaymentMethod evidence when present. If Stripe exposes a card charge snapshot (payment_method_details.card), RevBridge can match that card by brand, last4, and expiry without treating legacy card_... IDs as modern pm_... PaymentMethods. If the latest invoice explicitly used a non-card payment method, v1 blocks the subscription instead of guessing from an unrelated saved card. Permission, authentication, rate-limit, and network failures while reading latest-invoice evidence surface as real dry-run errors instead of silently falling back to weaker card evidence.

RevBridge requires exactly one matching destination card instrument. If the destination customer has one matching modern pm_..., RevBridge creates the destination subscription with default_payment_method. If the destination customer only has one matching copied legacy card/source, RevBridge creates the destination subscription with default_source. If both a modern PaymentMethod and a legacy source match the same visible card traits, RevBridge treats that as ambiguous because those IDs can represent separate saved instruments with identical brand, last4, and expiry. Non-card instruments are blocked in v1. If a destination match is missing, unsupported, or ambiguous, the subscription becomes blocked until the team resolves it.

Destination subscriptions are also created with payment_settings.payment_method_types=["card"] and payment_settings.save_default_payment_method="off". Stripe can infer payment method types from account invoice template settings when this field is omitted; RevBridge pins it to card because v1 only supports copied card instruments.

For paid active subscriptions that can collect a future non-zero invoice, RevBridge also enforces this at execution time. The worker refuses to build or send a subscription-create request unless the approved dry-run action includes an explicit destination payment instrument and whether it is a modern PaymentMethod or legacy source.

The worker also re-checks the approved source-side payment selection during execution preflight, before buyer customer defaults or new buyer-side subscriptions are written. If the seller changes the subscription default, customer default, latest-invoice payment evidence, or oldest-card fallback after dry-run, execution stops and requires a fresh dry-run so RevBridge recalculates the buyer-side card binding. Safe recovery of an already-created RevBridge destination subscription can continue only when that destination subscription already has the expected subscription-level default_payment_method, or the expected legacy default_source with no overriding default_payment_method.

For active trials, an unbound destination subscription is allowed only when dry-run explicitly marked the source trial as having no card to map. If a stale dry-run action is missing that marker or payment binding information, rerun dry-run.

Customer defaults

Some migrations may need to set a buyer customer default payment method before subscription creation. When RevBridge plans that action, it appears in the dry-run report as SET_CUSTOMER_DEFAULT_PAYMENT_METHOD.

No guessing

If multiple buyer payment methods could match a seller payment method, RevBridge should block or warn instead of guessing.