generated: '2026-07-17' method: derived source: >- Derived from the object schemas and id-reference fields in openapi/paymongo-openapi.yml and the PayMongo object reference (docs.paymongo.com/reference). Captures the entity-relationship graph behind the Payment Intent / Payment Method workflow. docs: https://docs.paymongo.com/reference notation: relationships use has_one / has_many / belongs_to with the via field name. entities: - {name: PaymentIntent, id_prefix: pi_, domain: payments, description: Lifecycle object for collecting a payment across methods.} - {name: PaymentMethod, id_prefix: pm_, domain: payments, description: How the customer pays (card, gcash, grab_pay, paymaya, billease, dob, qrph).} - {name: Payment, id_prefix: pay_, domain: payments, description: A completed money movement with amount, fee, net_amount, status.} - {name: Source, id_prefix: src_, domain: legacy, description: Legacy GCash/GrabPay redirect source (superseded by Payment Intents).} - {name: CheckoutSession, id_prefix: cs_, domain: hosted-checkout, description: A PayMongo-hosted checkout page returning a checkout_url.} - {name: PaymentLink, id_prefix: link_, domain: no-code, description: A shareable link that collects a fixed or open amount.} - {name: Customer, id_prefix: cus_, domain: core, description: A customer with vaulted payment methods for repeat purchases.} - {name: Refund, id_prefix: re_, domain: payments, description: A full or partial reversal of a Payment.} - {name: Dispute, id_prefix: dis_, domain: payments, description: A cardholder dispute/chargeback against a Payment.} - {name: QRPh, id_prefix: qrph_, domain: qr, description: A dynamic or static QR Ph code.} - {name: Webhook, id_prefix: hook_, domain: developer, description: A registered webhook endpoint.} - {name: Event, id_prefix: evt_, domain: developer, description: A webhook event delivery envelope.} - {name: Subscription, id_prefix: sub_, domain: billing, description: A recurring billing agreement.} - {name: Plan, id_prefix: plan_, domain: billing, description: A recurring price a subscription is based on.} - {name: Invoice, id_prefix: inv_, domain: billing, description: A statement generated by a subscription cycle.} relationships: - {from: PaymentIntent, to: PaymentMethod, type: has_one, via: payment_method, note: attached via attachPaymentIntent.} - {from: PaymentIntent, to: Payment, type: has_many, via: payments, note: a confirmed intent produces one or more Payment records.} - {from: Payment, to: Refund, type: has_many, via: refunds} - {from: Refund, to: Payment, type: belongs_to, via: payment_id} - {from: Payment, to: Dispute, type: has_many, via: disputes} - {from: Customer, to: PaymentMethod, type: has_many, via: payment_methods, note: vaulted cards-on-file.} - {from: CheckoutSession, to: PaymentIntent, type: has_one, via: payment_intent} - {from: PaymentLink, to: Payment, type: has_many, via: payments} - {from: Subscription, to: Plan, type: belongs_to, via: plan_id} - {from: Subscription, to: Invoice, type: has_many, via: invoices} - {from: Webhook, to: Event, type: has_many, via: events}