generated: '2026-07-14' method: derived source: >- Derived from the object relationships in openapi/*.yml (schema $ref links and id-reference fields such as customer, payment_intent, invoice) and the Stripe API object reference (docs.stripe.com/api). Captures the core entity- relationship graph behind the payments/billing domain. The visual render of the product taxonomy lives in subway/stripe-subway-map.svg; this is the machine-readable graph. docs: https://docs.stripe.com/api notation: >- relationships use has_one / has_many / belongs_to with the foreign-key field name; direction is from the entity that owns the reference. entities: - {name: Account, id_prefix: acct_, domain: connect, description: A Stripe account (platform or connected).} - {name: Customer, id_prefix: cus_, domain: core, description: A customer you charge and bill.} - {name: PaymentMethod, id_prefix: pm_, domain: payments, description: A card/bank/wallet instrument attached to a customer.} - {name: PaymentIntent, id_prefix: pi_, domain: payments, description: The lifecycle object for collecting a payment.} - {name: SetupIntent, id_prefix: seti_, domain: payments, description: Saves a payment method for future off-session use.} - {name: Charge, id_prefix: ch_, domain: payments, description: A single attempt to move money; created by a PaymentIntent.} - {name: Refund, id_prefix: re_, domain: payments, description: A reversal of a charge.} - {name: Dispute, id_prefix: dp_, domain: payments, description: A cardholder dispute/chargeback against a charge.} - {name: BalanceTransaction, id_prefix: txn_, domain: money-movement, description: A ledger entry affecting the account balance.} - {name: Payout, id_prefix: po_, domain: money-movement, description: Movement of funds from the Stripe balance to a bank account.} - {name: Product, id_prefix: prod_, domain: billing, description: A good or service being sold.} - {name: Price, id_prefix: price_, domain: billing, description: A pricing for a product (one-time or recurring).} - {name: Subscription, id_prefix: sub_, domain: billing, description: A recurring billing agreement for a customer.} - {name: SubscriptionItem, id_prefix: si_, domain: billing, description: A single price within a subscription.} - {name: Invoice, id_prefix: in_, domain: billing, description: A statement of amounts owed, generated by subscriptions or manually.} - {name: InvoiceItem, id_prefix: ii_, domain: billing, description: A line pending on the next invoice.} - {name: CheckoutSession, id_prefix: cs_, domain: checkout, description: A hosted/embedded checkout flow that creates a PaymentIntent or Subscription.} - {name: Event, id_prefix: evt_, domain: platform, description: A record of something that happened; delivered via webhooks.} relationships: - {from: Customer, to: PaymentMethod, kind: has_many, via: customer} - {from: Customer, to: Subscription, kind: has_many, via: customer} - {from: Customer, to: Invoice, kind: has_many, via: customer} - {from: PaymentIntent, to: Customer, kind: belongs_to, via: customer} - {from: PaymentIntent, to: PaymentMethod, kind: belongs_to, via: payment_method} - {from: PaymentIntent, to: Charge, kind: has_many, via: latest_charge} - {from: SetupIntent, to: PaymentMethod, kind: belongs_to, via: payment_method} - {from: Charge, to: PaymentIntent, kind: belongs_to, via: payment_intent} - {from: Charge, to: Refund, kind: has_many, via: charge} - {from: Charge, to: Dispute, kind: has_one, via: charge} - {from: Charge, to: BalanceTransaction, kind: belongs_to, via: balance_transaction} - {from: Refund, to: BalanceTransaction, kind: belongs_to, via: balance_transaction} - {from: Payout, to: BalanceTransaction, kind: has_many, via: payout} - {from: Price, to: Product, kind: belongs_to, via: product} - {from: Subscription, to: Customer, kind: belongs_to, via: customer} - {from: Subscription, to: SubscriptionItem, kind: has_many, via: subscription} - {from: SubscriptionItem, to: Price, kind: belongs_to, via: price} - {from: Subscription, to: Invoice, kind: has_many, via: subscription} - {from: Invoice, to: Customer, kind: belongs_to, via: customer} - {from: Invoice, to: InvoiceItem, kind: has_many, via: invoice} - {from: Invoice, to: Subscription, kind: belongs_to, via: subscription} - {from: Invoice, to: PaymentIntent, kind: has_one, via: payment_intent} - {from: CheckoutSession, to: PaymentIntent, kind: has_one, via: payment_intent} - {from: CheckoutSession, to: Subscription, kind: has_one, via: subscription} - {from: CheckoutSession, to: Customer, kind: belongs_to, via: customer} - {from: Event, to: Account, kind: belongs_to, via: account} interchange_hubs: [Customer, Account, Refund] visual: subway/stripe-subway-map.svg