---
title: "Retry Event"
method: POST
path: "/v1/events/{id}/retry"
tags: ["Events"]
---

# Retry Event

`POST /v1/events/{id}/retry`

Redeliver an existing event to your webhook endpoints. The event is looked
up by ID; a `404` is returned if no matching event exists.

If a `webhook_id` is supplied in the body, the original event is redelivered
to that specific webhook endpoint and the stored event is
returned. If no body is supplied, the event is redelivered to all of your
configured webhook endpoints; in this mode only `checkout.session.completed`
events are supported — the checkout session is re-fetched with its related
objects expanded and a new event (with a fresh `fevt_` id) is generated and
delivered.

## Path parameters

- `id` string, required

## Request body

- EventBodyForRetryEventRequest — An envelope wrapping a single event object.
  - `event` RetryEventRequest, required — Parameters for retrying an event against a specific webhook endpoint.
    - `webhook_id` string, required — ID of the webhook endpoint to redeliver this event to, prefixed with `fwh_`. Must be one of your webhook endpoints.

## Response `200`

An envelope wrapping a single event object.

- EventBodyForEvent — An envelope wrapping a single event object.
  - `event` Event, required — An Event object represents a notable change to an object in your Flex account — for example a checkout session completing or a refund being created. Events are created automatically when their underlying object changes and are delivered to your configured webhook endpoints. Use them to keep your systems in sync with Flex.
    - `event_id` string, required — Unique identifier for the event, prefixed with `fevt_`.
    - `event_type` 'account.updated' | 'charge.dispute.closed' | 'charge.dispute.created' | 'charge.dispute.funds_reinstated' | 'charge.dispute.funds_withdrawn' | 'charge.dispute.updated' | 'charge.failed' | 'charge.pending' | 'charge.refund.updated' | 'charge.refunded' | 'charge.captured' | 'charge.expired' | 'charge.updated' | 'charge.succeeded' | 'checkout.session.completed' | 'checkout.session.async_payment_succeeded' | 'checkout.session.async_payment_failed' | 'checkout.session.refunded' | 'checkout.session.expired' | 'customer.created' | 'customer.deleted' | 'customer.discount.created' | 'customer.discount.updated' | 'customer.discount.deleted' | 'customer.subscription.updated' | 'customer.subscription.deleted' | 'customer.subscription.created' | 'customer.source.deleted' | 'invoice.created' | 'invoice.finalized' | 'invoice.paid' | 'invoice.updated' | 'invoice.payment_succeeded' | 'invoice.payment_failed' | 'payment_intent.succeeded' | 'payment_intent.created' | 'payment_intent.payment_failed' | 'payment_intent.amount_capturable_updated' | 'payment_intent.canceled' | 'payment_intent.processing' | 'payment_intent.requires_action' | 'payment_intent.requires_capture' | 'payment_method.attached' | 'payment_method.automatically_updated' | 'payment_method.detached' | 'payment_method.updated' | 'product.created' | 'product.updated' | 'payout.created' | 'payout.paid' | 'payout.failed' | 'payout.canceled' | 'payout.updated' | 'payout.reconciliation_completed' | 'refund.created' | 'refund.updated' | 'refund.failed' | 'setup_intent.succeeded' | 'setup_intent.created' | 'setup_intent.setup_failed' | 'setup_intent.requires_action' | 'setup_intent.canceled' | 'transfer.created' | 'transfer.failed' | 'transfer.paid' | 'transfer.reversed' | 'transfer.updated' | 'balance_transaction.created' | 'radar.early_fraud_warning.created' | 'radar.early_fraud_warning.updated' | 'review.opened' | 'review.closed' | 'reporting.report_run.succeeded' | 'reporting.report_run.failed', required — The type of event, identifying which resource changed and how. Values are dot-namespaced by resource and action (for example checkout_session.completed or refund.updated).
    - `object` EventObject, required — The resource payload carried by an Event. The variant present corresponds to the event's type — for example a `customer.created` event carries a Customer, and a `payment_intent.succeeded` event carries a PaymentIntent.
      - `external_partner` ExternalPartner — A Mapping between an internal Flex partner and an external domain that merchants may be using on some other platform.
        - `origin` 'shopify' | 'shopline', required — External e-commerce platforms that may be the source for partners, products, and prices created internally in Flex
        - `domain` string, required — The ID/URL/handle for the partner on the external platform
        - `flex_partner_id` string, required — The flex partner identifier
        - `access_token` string, nullable — access token
        - `metadata` object, nullable — metadata
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
      - `customer` Customer — A Customer object represents a customer of your business. Use it to track payments, store reusable payment methods, and reference the customer on checkout sessions, invoices, and subscriptions.
        - `customer_id` string, required — The unique identifier for the customer.
        - `owner_partner_id` string, nullable — The partner that owns this customer. When a customer is shared with you by another partner in your organization, this is that sibling partner; otherwise it is your own partner id.
        - `first_name` string, required — The customer's first name.
        - `last_name` string, required — The customer's last name.
        - `email` string, email, required — The customer's email address.
        - `phone` string, phone, nullable — The customer's phone number.
        - `employer` string, nullable — The customer's employer.
        - `shipping` ShippingAddress — A ShippingAddress represents the postal address a physical order is delivered to. It is referenced by checkout sessions and customers.
          - `shipping_address_id` string, required — Unique identifier for the shipping address.
          - `line1` string, nullable — The first line of the street address (e.g., street number and name).
          - `line2` string, nullable — The second line of the street address (e.g., apartment, suite, or unit).
          - `city` string, nullable — City, district, suburb, town, or village.
          - `state` string, nullable — State, county, province, or region.
          - `postal_code` string, nullable — ZIP or postal code.
          - `country` string, nullable — Two-letter country code (ISO 3166-1 alpha-2, e.g., `US`).
        - `metadata` object, nullable — Metadata associated with the customer.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `test_mode` boolean, required — Whether the customer was created in test mode.
      - `checkout_session` CheckoutSession — A Checkout Session represents a customer's session as they pay for one-time purchases or subscriptions through Flex's hosted checkout page. Create one to obtain a hosted `redirect_url`, then capture, refund, or reconcile the resulting payments. For HSA/FSA purchases the session also drives eligibility classification and, when required, collection of a Letter of Medical Necessity (LOMN).
        - `allow_promotion_codes` boolean, required — Whether promotion codes can be applied to the checkout session.
        - `amount_total` integer, required — The total amount of the checkout session.
        - `amount_subtotal` integer, required — The subtotal amount of the checkout session.
        - `amount_received` integer, nullable — The amount actually received from payment intents.
        - `amount_refunded` integer, nullable — The total amount refunded for this checkout session.
        - `amount_disputed` integer, nullable — The total amount currently in dispute for this checkout session. Includes all dispute statuses except Won and Prevented.
        - `cancel_url` string, nullable — If set, Checkout displays a back button and customers will be directed to this URL if they decide to cancel payment and return to your website.
        - `captures` ExpandableForV1Capture[], required — A list of captures associated with the checkout session.
          - union — An expandable field — either a string ID or an expanded V1Capture object.
            - string
            - V1Capture — A capture represents a charge that has been captured from a customer's account. You can capture a charge in full or in part.
              - …
        - `disputes` ExpandableForDispute[] — Disputes associated with this checkout session's payment intents.
          - union — An expandable field — either a string ID or an expanded Dispute object.
            - string
            - Dispute — A Dispute object represents a customer's challenge to a payment, raised through their card issuer or bank (also known as a chargeback). Use it to track the dispute's status, review the reason it was filed, and submit evidence to contest it.
              - …
        - `capture_method` 'automatic' | 'automatic_async' | 'manual', required — Controls when funds are captured: automatically once the payment is confirmed, or manually at a later time.
        - `checkout_session_id` string, required — The ID of the Checkout Session.
        - `client_reference_id` string, nullable — A unique string to reference the Checkout Session. This can be a customer ID, a cart ID, or similar, and can be used to reconcile the session with your internal systems.
        - `created_at` integer, required — Time at which the Checkout Session was created, as a Unix timestamp in seconds.
        - `customer` union — An expandable field — either a string ID or an expanded Customer object.
          - string
          - Customer — A Customer object represents a customer of your business. Use it to track payments, store reusable payment methods, and reference the customer on checkout sessions, invoices, and subscriptions.
            - `customer_id` string, required — The unique identifier for the customer.
            - `owner_partner_id` string, nullable — The partner that owns this customer. When a customer is shared with you by another partner in your organization, this is that sibling partner; otherwise it is your own partner id.
            - `first_name` string, required — The customer's first name.
            - `last_name` string, required — The customer's last name.
            - `email` string, email, required — The customer's email address.
            - `phone` string, phone, nullable — The customer's phone number.
            - `employer` string, nullable — The customer's employer.
            - `shipping` ShippingAddress — A ShippingAddress represents the postal address a physical order is delivered to. It is referenced by checkout sessions and customers.
              - …
            - `metadata` object, nullable — Metadata associated with the customer.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `test_mode` boolean, required — Whether the customer was created in test mode.
        - `defaults` CustomerDefaults — Customer values used to prefill the customer details on the hosted checkout page.
          - `customer_id` string, nullable — ID of an existing Customer to associate with the session. When set, the customer's saved details are used instead of the other fields.
          - `email` string, nullable — The customer's email address, prefilled on the checkout page.
          - `first_name` string, nullable — The customer's first name, prefilled on the checkout page.
          - `last_name` string, nullable — The customer's last name, prefilled on the checkout page.
          - `phone` string, nullable — The customer's phone number in E.164 format, prefilled on the checkout page.
        - `expires_at` integer, required — The time at which the Checkout Session will expire.
        - `invoice` string, nullable — The ID of the invoice this Checkout Session is for, if any.
        - `hsa_fsa_eligible` boolean, required — Whether the Checkout Session is HSA/FSA eligible.
        - `letter_of_medical_necessity_required` boolean, required — Whether a letter of medical necessity is required for this Checkout Session.
        - `metadata` object, nullable — Metadata to attach to the Checkout Session.
        - `mode` 'payment' | 'subscription' | 'off_session' | 'setup', required — The mode of the checkout session, which determines what happens on completion: a one-time payment, starting a subscription, charging a saved payment method off-session, or saving a payment method for future use.
        - `origin` 'shopify' | 'shopline' | 'prepurchase' | 'postpurchase' — Origin of where the checkout session was generated
        - `payment_intent` union — An expandable field — either a string ID or an expanded PaymentIntent object.
          - string
          - PaymentIntent — A PaymentIntent tracks Flex's process of collecting a payment from a customer: the amount to collect, its lifecycle status, and references to the customer, payment method, and resulting charge. A single PaymentIntent may produce several charges over its lifetime (for example after a retry); the most recent is referenced by `latest_charge`.
            - `payment_intent_id` string, required — The unique identifier for the payment intent.
            - `amount` integer, required — The amount of the payment intent in cents.
            - `amount_capturable` integer, nullable — The amount that can be captured from this PaymentIntent.
            - `amount_received` integer, nullable — The amount that was received in cents.
            - `application_fee_amount` integer, nullable — The amount of the Flex application fee.
            - `customer` union — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `transfer_data` TransferData — Describes how funds collected by a PaymentIntent are routed to your account. Present only when the payment carries an application fee or an explicit transfer amount.
              - …
            - `status` 'canceled' | 'processing' | 'requires_action' | 'requires_capture' | 'requires_confirmation' | 'requires_payment_method' | 'succeeded', required — The current lifecycle status of the payment intent.
            - `latest_charge` union — An expandable field — either a string ID or an expanded Charge object.
              - …
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `invoice` union — An expandable field — either a string ID or an expanded Invoice object.
              - …
            - `capture_method` 'automatic' | 'automatic_async' | 'manual', required — Controls when funds are captured: automatically once the payment is confirmed, or manually at a later time.
            - `client_secret` string, nullable — The client secret of the payment intent.
            - `metadata` object, nullable — The metadata associated with the payment intent.
            - `payment_method` union — An expandable field — either a string ID or an expanded PaymentMethod object.
              - …
            - `test_mode` boolean, required — Whether the payment intent is in test mode.
            - `transfer_group` string, nullable — A string that identifies the resulting payment as part of a group
            - `payment_card_type` 'primary' | 'secondary' — - `primary`: In a split cart, `Primary` refers to the HSA/FSA eligible card. In a single cart (whether it's HSA/FSA or a fully ineligible cart), `Primary` refers to the only payment card used. - `secondary`: In a split cart and partial authorization payment, `Secondary` refers to the non-eligible or backup credit card used for ineligible items.
            - `letter_fee_amount` integer, nullable — Letter fee portion of application_fee_amount (waterfall allocation to HSA/FSA)
            - `transaction_fee` integer, nullable — Transaction fee portion of application_fee_amount (percentage + fixed fee)
            - `last_payment_error` LastPaymentError — Structured error details from the most recent failed payment attempt on a payment intent.
              - …
        - `payment_intents` ExpandableForPaymentIntent[], nullable — All payment intents that belong to this Checkout Session. Each is expandable if expand_payment_intent is set.
          - union — An expandable field — either a string ID or an expanded PaymentIntent object.
            - string
            - PaymentIntent — A PaymentIntent tracks Flex's process of collecting a payment from a customer: the amount to collect, its lifecycle status, and references to the customer, payment method, and resulting charge. A single PaymentIntent may produce several charges over its lifetime (for example after a retry); the most recent is referenced by `latest_charge`.
              - …
        - `redirect_url` string, uri, required — The URL to redirect to access the checkout session.
        - `refunds` ExpandableForRefund[], required — The refunds associated with this Checkout Session.
          - union — An expandable field — either a string ID or an expanded Refund object.
            - string
            - Refund — A Refund object represents the return of funds for a previously succeeded payment, in whole or in part. Issuing a refund reverses the corresponding charge(s) on the customer's HSA/FSA and/or credit card payment methods.
              - …
        - `setup_intent` string, nullable — The ID of the SetupIntent for this Checkout Session, if any.
        - `shipping_options` ShippingRateOptions — A resolved shipping option attached to a checkout session or payment link, capturing the applied shipping rate and its cost.
          - `shipping_rate_id` string, required — ID of the applied shipping rate.
          - `shipping_amount` integer, required — The shipping cost, in the smallest currency unit (e.g., `500` = $5.00 USD). Charged in USD.
          - `display_name` string, nullable — The display name of the shipping rate (e.g., "Standard Shipping", "Express").
        - `shipping_address_collection` boolean, required — When set, present options for shipping address collection from a customer.
        - `shipping_details` ShippingAddress — A ShippingAddress represents the postal address a physical order is delivered to. It is referenced by checkout sessions and customers.
          - `shipping_address_id` string, required — Unique identifier for the shipping address.
          - `line1` string, nullable — The first line of the street address (e.g., street number and name).
          - `line2` string, nullable — The second line of the street address (e.g., apartment, suite, or unit).
          - `city` string, nullable — City, district, suburb, town, or village.
          - `state` string, nullable — State, county, province, or region.
          - `postal_code` string, nullable — ZIP or postal code.
          - `country` string, nullable — Two-letter country code (ISO 3166-1 alpha-2, e.g., `US`).
        - `split_cart` union — An expandable field — either a string ID or an expanded SplitCart object.
          - string
          - SplitCart — A SplitCart represents a checkout session whose items are divided into two separate payments: one for HSA/FSA-eligible items and one for non-eligible items. It is created automatically when a session mixes eligible and ineligible products, so the customer can pay for the eligible portion with their HSA/FSA card.
            - `split_cart_id` string, required — Unique identifier for the split cart.
            - `eligible_cart` Cart, required — One half of a SplitCart: the totals and payment intent for either the HSA/FSA-eligible or the non-eligible items in a split checkout.
              - …
            - `non_eligible_cart` Cart, required — One half of a SplitCart: the totals and payment intent for either the HSA/FSA-eligible or the non-eligible items in a split checkout.
              - …
            - `checkout_session_id` string, nullable — ID of the Checkout Session this split cart belongs to. `null` until the split cart has been associated with a session.
        - `status` 'open' | 'paid' | 'complete' | 'canceled' | 'expired', required — The status of the checkout session.
        - `success_url` string, required — The URL the customer will be directed to after the payment or subscription creation is successful.
        - `fees` V1Fee[] — The fees associated with this Checkout Session.
          - `fee_id` string, required — Unique identifier for the fee.
          - `amount` integer, required — The amount of the fee in cents.
          - `name` string, nullable — The name of the fee.
          - `description` string, nullable — The description of the fee.
          - `fee_type` 'lmn_consultation' | 'custom', required — The kind of fee applied to a checkout session: a Letter of Medical Necessity consultation fee, or a custom fee you define.
          - `applied` boolean, nullable — Whether the fee was applied to the checkout session.
        - `custom_text` CustomText — Custom text displayed to customers in checkout UI
          - `after_submit` CustomTextMessage — Individual message field matching Stripe's structure
            - `message` string, required — The actual text message (plain text only, 1-1200 characters)
          - `shipping_address` CustomTextMessage — Individual message field matching Stripe's structure
            - `message` string, required — The actual text message (plain text only, 1-1200 characters)
          - `submit` CustomTextMessage — Individual message field matching Stripe's structure
            - `message` string, required — The actual text message (plain text only, 1-1200 characters)
          - `terms_of_service_acceptance` CustomTextMessage — Individual message field matching Stripe's structure
            - `message` string, required — The actual text message (plain text only, 1-1200 characters)
          - `terms_of_service_checkbox_required` boolean, nullable — Whether the terms of service acceptance checkbox must be shown and checked
          - `payment` CustomTextMessage — Individual message field matching Stripe's structure
            - `message` string, required — The actual text message (plain text only, 1-1200 characters)
        - `subscription` union — An expandable field — either a string ID or an expanded Subscription object.
          - string
          - Subscription — A Subscription represents a recurring billing arrangement that charges a customer at a fixed interval. It tracks the items being billed, the current billing period, its lifecycle status, and the invoices it generates each cycle.
            - `subscription_id` string, required — Unique identifier for the object.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `items` V1SubscriptionItem[], required — The items the customer is subscribed to.
              - …
            - `latest_invoice` union — An expandable field — either a string ID or an expanded Invoice object.
              - …
            - `customer` union — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `status` 'incomplete' | 'incomplete_expired' | 'trialing' | 'active' | 'past_due' | 'canceled' | 'unpaid' | 'paused', required — The current lifecycle status of the subscription.
            - `cancel_at_period_end` boolean, required — If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.
            - `current_period_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `current_period_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `metadata` object, nullable — A set of key/value pairs that you can attach to a subscription object.
            - `test_mode` boolean, required — Whether the subscription is in test mode.
            - `client_secret` SubscriptionClientSecret — Client secrets used to confirm the subscription's first payment or payment-method setup from your frontend. Present only while the subscription is being activated.
              - …
            - `proration_behavior` 'always_invoice' | 'create_prorations' | 'none' — How proration is handled when the subscription changes mid-billing-cycle.
            - `trial_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `trial_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `cancel_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `canceled_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `default_payment_method` union — An expandable field — either a string ID or an expanded PaymentMethod object.
              - …
            - `discounts` Discount[], nullable — The discounts applied to the subscription. Only present when `expand=discounts` is requested; omitted from the response otherwise. Usually 0–1 elements (Flex applies at most one coupon per subscription today), but modeled as an array for Stripe parity and future multi-discount support. Full `Discount` objects rather than `Expandable`: unlike the other expandable fields, `discounts` is populated only on `expand=discounts` and is always hydrated, so it never serializes as a bare ID. (The nested `source.coupon` inside each discount is still an `Expandable`, honoring `expand=discounts,coupons`.)
              - …
        - `subscription_data` V1SubscriptionData — Subscription Data holds the trial and cancellation settings to apply to the subscription that a checkout session creates once payment completes.
          - `cancel_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `trial_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `cancel_at_period_end` boolean, nullable — Whether the created subscription will cancel at the end of its current billing period rather than renewing.
          - `trial_period_days` integer, nullable — Length of the trial period, in days, for the created subscription. `null` if no day-based trial was set on the checkout session.
        - `tax_rate` TaxRate — A fixed tax amount to apply to a Checkout Session or line item. Use this to pass a tax figure you have calculated yourself, rather than having Flex compute it.
          - `amount` integer, required — The tax amount to apply, in the smallest currency unit (e.g., `175` = $1.75 USD).
        - `tax_calculation_mode` 'exclusive' | 'inclusive' — Whether tax should be calculated exclusive or inclusive of the provided total
        - `test_mode` boolean, required — Whether the Checkout Session is in test mode.
        - `total_details` TotalDetails, required — Tax and discount details for the computed total amount.
          - `amount_discount` integer, nullable — This is the sum of all the discount amounts.
          - `amount_tax` integer, nullable — This is the sum of all the tax amounts.
          - `amount_shipping` integer, nullable — This is the sum of all the shipping amounts.
          - `amount_iias` integer, nullable — This is the sum of all the iias line items.
          - `amount_vision` integer, nullable — Sum of the line item amounts classified as vision care, in the smallest currency unit (e.g., `2500` = $25.00 USD). `null` when no vision items are present.
          - `amount_prescription` integer, nullable — Sum of the line item amounts classified as prescription, in the smallest currency unit (e.g., `3000` = $30.00 USD). `null` when no prescription items are present.
          - `amount_service` integer, nullable — Sum of the line item amounts classified as a medical service, in the smallest currency unit (e.g., `5000` = $50.00 USD). `null` when no service items are present.
          - `amount_fee` integer, nullable — This is the sum of all the fee amounts.
          - `breakdown` Breakdown — Breakdown of the components that make up the total details. Matches Stripe's structure. See OpenAPI spec: https://github.com/stripe/openapi - schemas: payment_pages_checkout_session_total_details_resource_breakdown
            - `discounts` DiscountAmount[] — The aggregated discounts.
              - …
        - `visit_type` 'cbtSleep' | 'notApplicable' | 'metabolomics' | 'tinnitus' | 'gym' | 'exerciseDiet' | 'orthopedic' | 'alcohol' | 'airPurification' | 'vaginalHealth' | 'menstrual' | 'canopy' | 'alopecia' | 'genate' | 'weightBlanket' | 'bedJet' | 'siderAl' | 'sunwinkPowder' | 'wavWatch' | 'bodyComplete' | 'ageRate' | 'nitrousOxide' | 'happyV' | 'groupChat' | 'icalmAnxiety' | 'redBloom' | 'foodom' | 'branchErgonomicFurniture' | 'curalife' | 'eloraInfantWellness' | 'nutriHealth' | 'olipop' | 'goldIntimate' | 'touchStoneEssentials' | 'utiva' | 'sleepGeekz' | 'figBrew' | 'auBabyBlanket' | 'babySleepSack' | 'oshWellness' | 'currentBodyRedLight' | 'mito' | 'circularRing' | 'lymaRedLight' | 'goodAirRx' | 'tastermonial' | 'karunaHome' | 'ergoStandingChair' | 'jbaGlucoseControl' | 'bloomNutrition' | 'buoyDrops' | 'luxeWonderWig' | 'saunaMarketplace' | 'amrioreEyewear' | 'pivotOrthoShoe' | 'lumenCynergy' | 'roga' | 'pulsetto' | 'mitoRedLight' | 'gutPersonal' | 'goFlaus' | 'myHixel' | 'calmigo' | 'dotFit' | 'stripesBeauty' | 'mixHers' | 'pmd' | 'positivityWithPurpose' | 'techRing' | 'popVeneers' | 'vertaClean' | 'lumen' | 'medicalMeal' | 'emnHealth' | 'detergentAllergy' | 'lowImpactExercise' | 'mediumImpactExercise' | 'highImpactExercise' | 'gardening' | 'babyCarrier' | 'smartGlasses' | 'coolingBed' | 'posture' | 'supplements' | 'sleep' | 'redLightTherapy' | 'fitness' | 'smartRing' | 'womensVaginalHealth' | 'fertilitySupport' | 'femaleReproduction' | 'femaleReproductionFood' | 'pregnancyLiterature' | 'iceBath' | 'orthopedicShoes' | 'sexualHealth' | 'glucose' | 'metabolicTest' | 'skinCare' | 'oralHealth' | 'oralAnxiety' | 'blueLightGlasses' | 'anxiety' | 'brainHealth' | 'babyMonitor' | 'compressionSocks' | 'compressionShorts' | 'waterPurification' | 'medSpa' | 'essentialOils' | 'sleepBuds' | 'latchLight' | 'nutritionist' | 'rairflow' | 'enduranceTraining' | 'hydration' | 'hairGrowth' | 'eD' | 'postureFitness' | 'childDevelopment' | 'adaptiveClothing' | 'adaptiveShoes' | 'sleepConsulting' | 'hairRemoval' | 'menopause' | 'maleFertility' | 'anxietyHealth' | 'bidets' | 'speechHealth' | 'artOfLiving' | 'breastMilk' | 'breathWork' | 'petSupport' | 'diapers' | 'gutSupplements' | 'smartWatch' | 'medicalBotox' | 'biomechanicalAssessment' | 'erectileReset' | 'femaleOrgasm' | 'pornAddiction' | 'memorySupport' | 'oralHealthMasticGum' | 'orthopedicSandals' | 'childDevelopmentAnxietySleep' | 'childDevelopmentAdjustment' | 'childDevelopmentBehavior' | 'childDevelopmentIdentity' | 'emnHealthMobility' — The name of the telehealth visit type.
        - `setup_future_use` 'on_session' | 'off_session' — - `on_session`: Standard payments requiring customer auth - `off_session`: Allows payments without the customer present in the flow
        - `payment_method_options` PaymentMethodOptions — Payment method-specific options applied to a Checkout Session.
          - `card` CardPaymentMethodOptions — Card-specific payment options for a Checkout Session.
            - `request_three_d_secure` 'automatic' | 'any' | 'challenge', required — Whether to request 3D Secure authentication on card payments.
        - `next_action` NextAction — Represents an action required to complete the checkout. The `type` field indicates which action is needed, and the corresponding nested object contains the action-specific data.
          - `type` 'collect_letter_of_medical_necessity' | 'payment_failed' | 'provide_second_payment_method' | 'provide_alternative_payment_method', required
          - `collect_letter_of_medical_necessity` CollectLetterOfMedicalNecessityAction — Data for the collect_letter_of_medical_necessity next action.
            - `url` string, required — The URL where the customer should be redirected to provide the letter.
          - `payment_failed` PaymentFailedAction — Data for the payment_failed next action.
            - `message` string, required — A human-readable message describing the payment failure.
            - `url` string, required — The URL where the customer should be redirected to retry payment.
            - `decline_code` string, nullable — The decline code from the payment processor, if available.
            - `error_code` string, nullable — The error code from the payment processor, if available.
          - `provide_second_payment_method` ProvideSecondPaymentMethodAction — Data for the provide_second_payment_method next action.
            - `message` string, required — A human-readable message explaining that a second payment method is needed.
            - `url` string, required — The URL where the customer should be redirected to provide both payment methods.
            - `eligible_amount` integer, required — The amount in cents for HSA/FSA-eligible items.
            - `ineligible_amount` integer, required — The amount in cents for non-eligible items.
          - `provide_alternative_payment_method` ProvideAlternativePaymentMethodAction — Data for the provide_alternative_payment_method next action.
            - `message` string, required — A human-readable message explaining why an alternative payment method is needed.
            - `url` string, required — The URL where the customer should be redirected to provide a different payment method.
        - `partner` union — An expandable field — either a string ID or an expanded PartnerMetadata object.
          - string
          - PartnerMetadata — The public summary of your account, exposed as the expandable `partner` object embedded on other Flex objects such as checkout sessions, subscriptions, and receipts.
            - `partner_id` string, required — Unique identifier of the account, prefixed with `facct_`.
            - `name` string, required — Your display name, as shown to customers during checkout.
            - `website_url` string, required — Your public website URL.
            - `description` string, nullable — A short description of your business.
        - `platform_fees` PlatformFees — Platform fees charged on a checkout session. Present only when you are on the deferred-collection feature and the checkout has completed.
          - `letter_fee` LetterFee, required — Letter-fee details surfaced on the checkout session response.
            - `amount` integer, required — Amount charged for the letter, in cents. `0` when waived (disqualified, pre-existing, OTP-verified, existing consultation, etc.).
            - `type` string, nullable — Billing classification. Only present when `amount > 0`. - `"new"` — any new consultation in the checkout (takes precedence when mixed with expired). - `"expired"` — only expired consultation(s) are being re-billed.
            - `status` 'pending' | 'waived' | 'collected' | 'deferred' | 'settled', required — Lifecycle state of a [`CheckoutSessionLetterFee`] row. Stored as a lowercase string in the `status` TEXT column (matches the DB default `'pending'` set by migration `20260416001655`). - `pending`: Fee determined but not yet collected — transient in-flight state. - `waived`: No fee applies (disqualified, pre-existing, OTP-verified, etc.). Always paired with `letter_fee_amount = 0` and `billing_type = NULL`. - `collected`: Fee captured as part of the checkout transaction. - `deferred`: Fee deferred to end-of-month batch settlement. - `settled`: Deferred fee charged via the monthly batch.
      - `subscription` Subscription — A Subscription represents a recurring billing arrangement that charges a customer at a fixed interval. It tracks the items being billed, the current billing period, its lifecycle status, and the invoices it generates each cycle.
        - `subscription_id` string, required — Unique identifier for the object.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `items` V1SubscriptionItem[], required — The items the customer is subscribed to.
          - `subscription_item_id` string, required — Unique identifier for the subscription item.
          - `price` union, required — An expandable field — either a string ID or an expanded Price object.
            - string
            - Price — Prices define the unit cost and (optional) billing cycle for both recurring and one-time purchases of products. Prices belong to a given product. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices.
              - …
          - `quantity` integer, required — The number of units of the price the customer is subscribed to.
          - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `updated_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `test_mode` boolean, required — Whether the subscription item exists in test mode.
        - `latest_invoice` union — An expandable field — either a string ID or an expanded Invoice object.
          - string
          - Invoice — An Invoice is a statement of the amounts owed by a customer, generated when a subscription advances through its billing cycle. It tracks the total, amount due, and amount paid, along with the payment intent, charge, and billing period that produced it, and its current lifecycle status as it is finalized and collected.
            - `invoice_id` string, required — The id of the invoice.
            - `total` integer, required — The total amount of the invoice in cents.
            - `amount_due` integer, required — The amount due in cents.
            - `amount_paid` integer, required — The amount paid in cents.
            - `payment_intent` union — An expandable field — either a string ID or an expanded PaymentIntent object.
              - …
            - `charge` string, nullable — The id of the latest charge for this invoice.
            - `customer` union — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `period_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `period_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `subscription` union — An expandable field — either a string ID or an expanded Subscription object.
              - …
            - `paid_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `status` 'draft' | 'open' | 'void' | 'paid' | 'uncollectible', required — The lifecycle status of the invoice.
            - `collection_method` 'charge_automatically' | 'send_invoice', required — How payment for the invoice is collected: automatically from the customer's saved payment method, or by emailing them an invoice to pay.
            - `test_mode` boolean, required — Whether or not the invoice was created in test mode.
            - `metadata` object, nullable — Metadata associated with the invoice.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `customer` union — An expandable field — either a string ID or an expanded Customer object.
          - string
          - Customer — A Customer object represents a customer of your business. Use it to track payments, store reusable payment methods, and reference the customer on checkout sessions, invoices, and subscriptions.
            - `customer_id` string, required — The unique identifier for the customer.
            - `owner_partner_id` string, nullable — The partner that owns this customer. When a customer is shared with you by another partner in your organization, this is that sibling partner; otherwise it is your own partner id.
            - `first_name` string, required — The customer's first name.
            - `last_name` string, required — The customer's last name.
            - `email` string, email, required — The customer's email address.
            - `phone` string, phone, nullable — The customer's phone number.
            - `employer` string, nullable — The customer's employer.
            - `shipping` ShippingAddress — A ShippingAddress represents the postal address a physical order is delivered to. It is referenced by checkout sessions and customers.
              - …
            - `metadata` object, nullable — Metadata associated with the customer.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `test_mode` boolean, required — Whether the customer was created in test mode.
        - `status` 'incomplete' | 'incomplete_expired' | 'trialing' | 'active' | 'past_due' | 'canceled' | 'unpaid' | 'paused', required — The current lifecycle status of the subscription.
        - `cancel_at_period_end` boolean, required — If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.
        - `current_period_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `current_period_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `metadata` object, nullable — A set of key/value pairs that you can attach to a subscription object.
        - `test_mode` boolean, required — Whether the subscription is in test mode.
        - `client_secret` SubscriptionClientSecret — Client secrets used to confirm the subscription's first payment or payment-method setup from your frontend. Present only while the subscription is being activated.
          - `setup_secret` string, nullable — Client secret of the SetupIntent used to collect and save a payment method for the subscription (for example, during a trial with no immediate charge). `null` when no setup is required. Do not log or store it; expose only to the customer over TLS.
          - `payment_secret` string, nullable — Client secret of the PaymentIntent used to confirm the subscription's first payment from your frontend. `null` when no immediate payment is required. Do not log or store it; expose only to the customer over TLS.
        - `proration_behavior` 'always_invoice' | 'create_prorations' | 'none' — How proration is handled when the subscription changes mid-billing-cycle.
        - `trial_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `trial_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `cancel_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `canceled_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `default_payment_method` union — An expandable field — either a string ID or an expanded PaymentMethod object.
          - string
          - PaymentMethod — A PaymentMethod object represents a customer's payment instrument (such as a card) that can be used to collect payments. Attach it to a Customer to reuse it across checkout sessions, invoices, and subscriptions.
            - `payment_method_id` string, required — The ID of the PaymentMethod.
            - `billing_details` BillingDetails, required — Billing information associated with a PaymentMethod, such as the cardholder's billing address, email, name, and phone number.
              - …
            - `customer` union, required — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `metadata` object, nullable — Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
            - `card` Card, required — A Card object describes the card backing a PaymentMethod, including its brand, funding type, expiration, and the last four digits.
              - …
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `test_mode` boolean, required — Whether this PaymentMethod is in test mode.
            - `off_session` boolean, required — Whether this PaymentMethod is valid for off_session (customer not present) purchase flows.
        - `discounts` Discount[], nullable — The discounts applied to the subscription. Only present when `expand=discounts` is requested; omitted from the response otherwise. Usually 0–1 elements (Flex applies at most one coupon per subscription today), but modeled as an array for Stripe parity and future multi-discount support. Full `Discount` objects rather than `Expandable`: unlike the other expandable fields, `discounts` is populated only on `expand=discounts` and is always hydrated, so it never serializes as a bare ID. (The nested `source.coupon` inside each discount is still an `Expandable`, honoring `expand=discounts,coupons`.)
          - `discount_id` string, required — The ID of the discount.
          - `checkout_session` string, nullable — The checkout session that the discount was applied to.
          - `customer` string, nullable — The customer that the discount was applied to.
          - `subscription` string, nullable — The subscription that the discount was applied to.
          - `invoice` string, nullable — The invoice that the discount was applied to.
          - `source` DiscountSource, required — The source of a discount (coupon or promotion code).
            - `coupon` union, required — An expandable field — either a string ID or an expanded V1Coupon object.
              - …
            - `type` 'coupon' | 'promotion_code', required — The type of discount source.
          - `promo_code` string, nullable — The promo code applied to create the discount.
          - `test_mode` boolean, required — Whether the discount was applied in test mode
          - `end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `start` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
      - `payment_intent` PaymentIntent — A PaymentIntent tracks Flex's process of collecting a payment from a customer: the amount to collect, its lifecycle status, and references to the customer, payment method, and resulting charge. A single PaymentIntent may produce several charges over its lifetime (for example after a retry); the most recent is referenced by `latest_charge`.
        - `payment_intent_id` string, required — The unique identifier for the payment intent.
        - `amount` integer, required — The amount of the payment intent in cents.
        - `amount_capturable` integer, nullable — The amount that can be captured from this PaymentIntent.
        - `amount_received` integer, nullable — The amount that was received in cents.
        - `application_fee_amount` integer, nullable — The amount of the Flex application fee.
        - `customer` union — An expandable field — either a string ID or an expanded Customer object.
          - string
          - Customer — A Customer object represents a customer of your business. Use it to track payments, store reusable payment methods, and reference the customer on checkout sessions, invoices, and subscriptions.
            - `customer_id` string, required — The unique identifier for the customer.
            - `owner_partner_id` string, nullable — The partner that owns this customer. When a customer is shared with you by another partner in your organization, this is that sibling partner; otherwise it is your own partner id.
            - `first_name` string, required — The customer's first name.
            - `last_name` string, required — The customer's last name.
            - `email` string, email, required — The customer's email address.
            - `phone` string, phone, nullable — The customer's phone number.
            - `employer` string, nullable — The customer's employer.
            - `shipping` ShippingAddress — A ShippingAddress represents the postal address a physical order is delivered to. It is referenced by checkout sessions and customers.
              - …
            - `metadata` object, nullable — Metadata associated with the customer.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `test_mode` boolean, required — Whether the customer was created in test mode.
        - `transfer_data` TransferData — Describes how funds collected by a PaymentIntent are routed to your account. Present only when the payment carries an application fee or an explicit transfer amount.
          - `amount` integer, nullable — The amount to transfer, in cents.
          - `destination` string, required — The destination account of the transfer.
        - `status` 'canceled' | 'processing' | 'requires_action' | 'requires_capture' | 'requires_confirmation' | 'requires_payment_method' | 'succeeded', required — The current lifecycle status of the payment intent.
        - `latest_charge` union — An expandable field — either a string ID or an expanded Charge object.
          - string
          - Charge — A Charge represents a single attempt to move funds for a payment, including its outcome and any 3D Secure, decline, and risk details. A PaymentIntent can have multiple charges over its lifetime (for example after a retry); the most recent is referenced by the PaymentIntent's `latest_charge`.
            - `charge_id` string, required — Unique identifier for the charge.
            - `amount` integer, required — Amount intended to be collected by this payment.
            - `amount_captured` integer, required — Amount in cents captured (can be less than the amount attribute on the charge if a partial capture was made).
            - `amount_refunded` integer, required — Amount in cents refunded (can be less than the amount attribute on the charge if a partial refund was made).
            - `application_fee_amount` integer, nullable — The Flex application fee for the charge
            - `captured` boolean, required — If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `customer` union — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `invoice` union — An expandable field — either a string ID or an expanded Invoice object.
              - …
            - `failure_message` string, nullable — Message to user further explaining reason for charge failure if available.
            - `disputed` boolean, required — Whether the charge has been disputed.
            - `paid` boolean, required — true if the charge succeeded, or was successfully authorized for later capture.
            - `refunded` boolean, required — Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.
            - `refunds` ExpandableForRefund[], nullable — A list of refunds that have been applied to the charge.
              - …
            - `payment_intent` union, required — An expandable field — either a string ID or an expanded PaymentIntent object.
              - …
            - `status` 'succeeded' | 'pending' | 'failed', required — The outcome of the charge.
            - `test_mode` boolean, required — Whether the charge was created in test mode.
            - `transfer_group` string, nullable — A string that identifies the resulting payment as part of a group
            - `payment_method_id` string, nullable — The ID of the PaymentMethod.
            - `three_d_secure` ThreeDSecureOutcome — 3D Secure authentication outcome for the charge.
              - …
            - `decline_details` DeclineDetails — Decline and risk details captured at the time of a failed or blocked charge. Absent for successful, non-declined charges.
              - …
            - `balance_transaction` union — An expandable field — either a string ID or an expanded BalanceTransaction object.
              - …
            - `failure_balance_transaction` union — An expandable field — either a string ID or an expanded BalanceTransaction object.
              - …
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `invoice` union — An expandable field — either a string ID or an expanded Invoice object.
          - string
          - Invoice — An Invoice is a statement of the amounts owed by a customer, generated when a subscription advances through its billing cycle. It tracks the total, amount due, and amount paid, along with the payment intent, charge, and billing period that produced it, and its current lifecycle status as it is finalized and collected.
            - `invoice_id` string, required — The id of the invoice.
            - `total` integer, required — The total amount of the invoice in cents.
            - `amount_due` integer, required — The amount due in cents.
            - `amount_paid` integer, required — The amount paid in cents.
            - `payment_intent` union — An expandable field — either a string ID or an expanded PaymentIntent object.
              - …
            - `charge` string, nullable — The id of the latest charge for this invoice.
            - `customer` union — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `period_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `period_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `subscription` union — An expandable field — either a string ID or an expanded Subscription object.
              - …
            - `paid_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `status` 'draft' | 'open' | 'void' | 'paid' | 'uncollectible', required — The lifecycle status of the invoice.
            - `collection_method` 'charge_automatically' | 'send_invoice', required — How payment for the invoice is collected: automatically from the customer's saved payment method, or by emailing them an invoice to pay.
            - `test_mode` boolean, required — Whether or not the invoice was created in test mode.
            - `metadata` object, nullable — Metadata associated with the invoice.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `capture_method` 'automatic' | 'automatic_async' | 'manual', required — Controls when funds are captured: automatically once the payment is confirmed, or manually at a later time.
        - `client_secret` string, nullable — The client secret of the payment intent.
        - `metadata` object, nullable — The metadata associated with the payment intent.
        - `payment_method` union — An expandable field — either a string ID or an expanded PaymentMethod object.
          - string
          - PaymentMethod — A PaymentMethod object represents a customer's payment instrument (such as a card) that can be used to collect payments. Attach it to a Customer to reuse it across checkout sessions, invoices, and subscriptions.
            - `payment_method_id` string, required — The ID of the PaymentMethod.
            - `billing_details` BillingDetails, required — Billing information associated with a PaymentMethod, such as the cardholder's billing address, email, name, and phone number.
              - …
            - `customer` union, required — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `metadata` object, nullable — Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
            - `card` Card, required — A Card object describes the card backing a PaymentMethod, including its brand, funding type, expiration, and the last four digits.
              - …
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `test_mode` boolean, required — Whether this PaymentMethod is in test mode.
            - `off_session` boolean, required — Whether this PaymentMethod is valid for off_session (customer not present) purchase flows.
        - `test_mode` boolean, required — Whether the payment intent is in test mode.
        - `transfer_group` string, nullable — A string that identifies the resulting payment as part of a group
        - `payment_card_type` 'primary' | 'secondary' — - `primary`: In a split cart, `Primary` refers to the HSA/FSA eligible card. In a single cart (whether it's HSA/FSA or a fully ineligible cart), `Primary` refers to the only payment card used. - `secondary`: In a split cart and partial authorization payment, `Secondary` refers to the non-eligible or backup credit card used for ineligible items.
        - `letter_fee_amount` integer, nullable — Letter fee portion of application_fee_amount (waterfall allocation to HSA/FSA)
        - `transaction_fee` integer, nullable — Transaction fee portion of application_fee_amount (percentage + fixed fee)
        - `last_payment_error` LastPaymentError — Structured error details from the most recent failed payment attempt on a payment intent.
          - `type` string, required — The type of error (card, invalid_request, api, etc.)
          - `code` string, nullable — Machine-readable error code (card_declined, expired_card, etc.)
          - `decline_code` string, nullable — Card-specific decline code (insufficient_funds, lost_card, etc.)
          - `message` string, nullable — Human-readable error description.
          - `payment_method` string, nullable — The Flex payment method ID that failed.
      - `setup_intent` SetupIntent — A SetupIntent represents your intent to set up a customer's payment method for future payments, without charging it immediately. Use it to collect and verify payment method details that can later be used off-session (for example, to bill a subscription or invoice).
        - `setup_intent_id` string, required — The unique identifier for the object.
        - `client_secret` string, nullable — The client secret used to confirm this SetupIntent from your frontend. Present when the SetupIntent is retrieved or created; `null` when it appears in a list response. Treat it as sensitive: do not log or store it, and expose it only to the customer over TLS.
        - `customer` union — An expandable field — either a string ID or an expanded Customer object.
          - string
          - Customer — A Customer object represents a customer of your business. Use it to track payments, store reusable payment methods, and reference the customer on checkout sessions, invoices, and subscriptions.
            - `customer_id` string, required — The unique identifier for the customer.
            - `owner_partner_id` string, nullable — The partner that owns this customer. When a customer is shared with you by another partner in your organization, this is that sibling partner; otherwise it is your own partner id.
            - `first_name` string, required — The customer's first name.
            - `last_name` string, required — The customer's last name.
            - `email` string, email, required — The customer's email address.
            - `phone` string, phone, nullable — The customer's phone number.
            - `employer` string, nullable — The customer's employer.
            - `shipping` ShippingAddress — A ShippingAddress represents the postal address a physical order is delivered to. It is referenced by checkout sessions and customers.
              - …
            - `metadata` object, nullable — Metadata associated with the customer.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `test_mode` boolean, required — Whether the customer was created in test mode.
        - `description` string, nullable — An arbitrary string attached to the setup intent.
        - `payment_method` string, nullable — Payment method used with this SetupIntent.
        - `partner_id` string, required — The ID of the account this SetupIntent belongs to.
        - `metadata` object, nullable — Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `test_mode` boolean, required — Whether or not the setup intent is in test mode.
        - `status` 'requires_payment_method' | 'requires_confirmation' | 'requires_action' | 'processing' | 'succeeded' | 'canceled', required — The status of the setup intent.
        - `usage` 'off_session' | 'on_session', required — Whether the saved payment method is intended for off-session or on-session future payments.
        - `subscription_id` string, nullable — The ID of the Subscription this SetupIntent is associated with (for payment method updates).
      - `invoice` Invoice — An Invoice is a statement of the amounts owed by a customer, generated when a subscription advances through its billing cycle. It tracks the total, amount due, and amount paid, along with the payment intent, charge, and billing period that produced it, and its current lifecycle status as it is finalized and collected.
        - `invoice_id` string, required — The id of the invoice.
        - `total` integer, required — The total amount of the invoice in cents.
        - `amount_due` integer, required — The amount due in cents.
        - `amount_paid` integer, required — The amount paid in cents.
        - `payment_intent` union — An expandable field — either a string ID or an expanded PaymentIntent object.
          - string
          - PaymentIntent — A PaymentIntent tracks Flex's process of collecting a payment from a customer: the amount to collect, its lifecycle status, and references to the customer, payment method, and resulting charge. A single PaymentIntent may produce several charges over its lifetime (for example after a retry); the most recent is referenced by `latest_charge`.
            - `payment_intent_id` string, required — The unique identifier for the payment intent.
            - `amount` integer, required — The amount of the payment intent in cents.
            - `amount_capturable` integer, nullable — The amount that can be captured from this PaymentIntent.
            - `amount_received` integer, nullable — The amount that was received in cents.
            - `application_fee_amount` integer, nullable — The amount of the Flex application fee.
            - `customer` union — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `transfer_data` TransferData — Describes how funds collected by a PaymentIntent are routed to your account. Present only when the payment carries an application fee or an explicit transfer amount.
              - …
            - `status` 'canceled' | 'processing' | 'requires_action' | 'requires_capture' | 'requires_confirmation' | 'requires_payment_method' | 'succeeded', required — The current lifecycle status of the payment intent.
            - `latest_charge` union — An expandable field — either a string ID or an expanded Charge object.
              - …
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `invoice` union — An expandable field — either a string ID or an expanded Invoice object.
              - …
            - `capture_method` 'automatic' | 'automatic_async' | 'manual', required — Controls when funds are captured: automatically once the payment is confirmed, or manually at a later time.
            - `client_secret` string, nullable — The client secret of the payment intent.
            - `metadata` object, nullable — The metadata associated with the payment intent.
            - `payment_method` union — An expandable field — either a string ID or an expanded PaymentMethod object.
              - …
            - `test_mode` boolean, required — Whether the payment intent is in test mode.
            - `transfer_group` string, nullable — A string that identifies the resulting payment as part of a group
            - `payment_card_type` 'primary' | 'secondary' — - `primary`: In a split cart, `Primary` refers to the HSA/FSA eligible card. In a single cart (whether it's HSA/FSA or a fully ineligible cart), `Primary` refers to the only payment card used. - `secondary`: In a split cart and partial authorization payment, `Secondary` refers to the non-eligible or backup credit card used for ineligible items.
            - `letter_fee_amount` integer, nullable — Letter fee portion of application_fee_amount (waterfall allocation to HSA/FSA)
            - `transaction_fee` integer, nullable — Transaction fee portion of application_fee_amount (percentage + fixed fee)
            - `last_payment_error` LastPaymentError — Structured error details from the most recent failed payment attempt on a payment intent.
              - …
        - `charge` string, nullable — The id of the latest charge for this invoice.
        - `customer` union — An expandable field — either a string ID or an expanded Customer object.
          - string
          - Customer — A Customer object represents a customer of your business. Use it to track payments, store reusable payment methods, and reference the customer on checkout sessions, invoices, and subscriptions.
            - `customer_id` string, required — The unique identifier for the customer.
            - `owner_partner_id` string, nullable — The partner that owns this customer. When a customer is shared with you by another partner in your organization, this is that sibling partner; otherwise it is your own partner id.
            - `first_name` string, required — The customer's first name.
            - `last_name` string, required — The customer's last name.
            - `email` string, email, required — The customer's email address.
            - `phone` string, phone, nullable — The customer's phone number.
            - `employer` string, nullable — The customer's employer.
            - `shipping` ShippingAddress — A ShippingAddress represents the postal address a physical order is delivered to. It is referenced by checkout sessions and customers.
              - …
            - `metadata` object, nullable — Metadata associated with the customer.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `test_mode` boolean, required — Whether the customer was created in test mode.
        - `period_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `period_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `subscription` union — An expandable field — either a string ID or an expanded Subscription object.
          - string
          - Subscription — A Subscription represents a recurring billing arrangement that charges a customer at a fixed interval. It tracks the items being billed, the current billing period, its lifecycle status, and the invoices it generates each cycle.
            - `subscription_id` string, required — Unique identifier for the object.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `items` V1SubscriptionItem[], required — The items the customer is subscribed to.
              - …
            - `latest_invoice` union — An expandable field — either a string ID or an expanded Invoice object.
              - …
            - `customer` union — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `status` 'incomplete' | 'incomplete_expired' | 'trialing' | 'active' | 'past_due' | 'canceled' | 'unpaid' | 'paused', required — The current lifecycle status of the subscription.
            - `cancel_at_period_end` boolean, required — If the subscription has been canceled with the at_period_end flag set to true, cancel_at_period_end on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.
            - `current_period_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `current_period_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `metadata` object, nullable — A set of key/value pairs that you can attach to a subscription object.
            - `test_mode` boolean, required — Whether the subscription is in test mode.
            - `client_secret` SubscriptionClientSecret — Client secrets used to confirm the subscription's first payment or payment-method setup from your frontend. Present only while the subscription is being activated.
              - …
            - `proration_behavior` 'always_invoice' | 'create_prorations' | 'none' — How proration is handled when the subscription changes mid-billing-cycle.
            - `trial_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `trial_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `cancel_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `canceled_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `default_payment_method` union — An expandable field — either a string ID or an expanded PaymentMethod object.
              - …
            - `discounts` Discount[], nullable — The discounts applied to the subscription. Only present when `expand=discounts` is requested; omitted from the response otherwise. Usually 0–1 elements (Flex applies at most one coupon per subscription today), but modeled as an array for Stripe parity and future multi-discount support. Full `Discount` objects rather than `Expandable`: unlike the other expandable fields, `discounts` is populated only on `expand=discounts` and is always hydrated, so it never serializes as a bare ID. (The nested `source.coupon` inside each discount is still an `Expandable`, honoring `expand=discounts,coupons`.)
              - …
        - `paid_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `status` 'draft' | 'open' | 'void' | 'paid' | 'uncollectible', required — The lifecycle status of the invoice.
        - `collection_method` 'charge_automatically' | 'send_invoice', required — How payment for the invoice is collected: automatically from the customer's saved payment method, or by emailing them an invoice to pay.
        - `test_mode` boolean, required — Whether or not the invoice was created in test mode.
        - `metadata` object, nullable — Metadata associated with the invoice.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
      - `dispute` Dispute — A Dispute object represents a customer's challenge to a payment, raised through their card issuer or bank (also known as a chargeback). Use it to track the dispute's status, review the reason it was filed, and submit evidence to contest it.
        - `dispute_id` string, required — Unique identifier for the dispute, prefixed with `fdp_`.
        - `payment_intent_id` string, required — ID of the PaymentIntent that was disputed.
        - `checkout_session_id` string, nullable — ID of the Checkout Session associated with the disputed payment. `null` if the payment was not created via a checkout session.
        - `amount` integer, required — Disputed amount, in the smallest currency unit (e.g., `2500` = $25.00 USD). Usually the full amount of the disputed payment.
        - `currency` string, required — Three-letter ISO currency code, in lowercase (e.g., `usd`).
        - `charge_id` string, nullable — ID of the Charge that was disputed. `null` if the originating charge could not be resolved.
        - `metadata` object, required — Set of key-value pairs attached to the dispute for storing additional structured information.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `status` union, required — The current status of a dispute.
          - 'lost' | 'needs_response' | 'under_review' | 'warning_closed' | 'warning_needs_response' | 'warning_under_review' | 'won'
          - 'prevented' — The dispute was prevented before reaching the card network.
        - `reason` 'bank_cannot_process' | 'check_returned' | 'credit_not_processed' | 'customer_initiated' | 'debit_not_authorized' | 'duplicate' | 'fraudulent' | 'general' | 'incorrect_account_details' | 'insufficient_funds' | 'noncompliant' | 'product_not_received' | 'product_unacceptable' | 'subscription_canceled' | 'unrecognized', required — The reason for the dispute, as reported by the card network.
        - `is_charge_refundable` boolean, required — Whether the disputed charge can still be refunded. Once a payment is disputed, refunding it is typically no longer possible.
        - `evidence` DisputeEvidenceResponse — Evidence collected to respond to a dispute, with file references resolved to Flex file IDs.
          - `access_activity_log` string, nullable — A description of the activity on the customer's account or the order, showing that they accessed or used the product or service.
          - `customer_name` string, nullable — The name of the customer.
          - `customer_email_address` string, nullable — The email address of the customer.
          - `customer_purchase_ip` string, nullable — The IP address from which the customer made the purchase.
          - `billing_address` string, nullable — The billing address provided by the customer.
          - `shipping_address` string, nullable — The address to which a physical product was shipped.
          - `shipping_tracking_number` string, nullable — The tracking number for a physical product shipped to the customer.
          - `shipping_carrier` string, nullable — The delivery service that shipped a physical product (e.g., `usps`, `fedex`).
          - `shipping_date` string, nullable — The date on which a physical product was shipped to the customer.
          - `service_date` string, nullable — The date on which the service was provided to the customer.
          - `product_description` string, nullable — A description of the product or service purchased and an explanation of why the customer's claim is unwarranted.
          - `refund_policy_disclosure` string, nullable — Your refund policy as shown to the customer.
          - `refund_refusal_explanation` string, nullable — An explanation of why the customer is not entitled to a refund.
          - `cancellation_policy_disclosure` string, nullable — Your cancellation policy as shown to the customer.
          - `cancellation_rebuttal` string, nullable — An explanation of how the customer was shown that the subscription or service was not canceled.
          - `duplicate_charge_explanation` string, nullable — An explanation of the difference between the disputed payment and the charge the customer believes is a duplicate.
          - `duplicate_charge_id` string, nullable — The ID of the charge the customer claims is a duplicate of the disputed charge.
          - `uncategorized_text` string, nullable — Any additional evidence as free-form text.
          - `customer_communication` EvidenceFileInfo — A reference to a file attached as dispute evidence.
            - `file_id` string, nullable — The Flex file ID (e.g., `ffile_xxx`).
            - `filename` string, nullable — The original filename from upload.
            - `stripe_file_id` string, nullable — Underlying card-network file ID, present when the file could not be matched to a Flex file ID.
          - `customer_signature` EvidenceFileInfo — A reference to a file attached as dispute evidence.
            - `file_id` string, nullable — The Flex file ID (e.g., `ffile_xxx`).
            - `filename` string, nullable — The original filename from upload.
            - `stripe_file_id` string, nullable — Underlying card-network file ID, present when the file could not be matched to a Flex file ID.
          - `shipping_documentation` EvidenceFileInfo — A reference to a file attached as dispute evidence.
            - `file_id` string, nullable — The Flex file ID (e.g., `ffile_xxx`).
            - `filename` string, nullable — The original filename from upload.
            - `stripe_file_id` string, nullable — Underlying card-network file ID, present when the file could not be matched to a Flex file ID.
          - `receipt` EvidenceFileInfo — A reference to a file attached as dispute evidence.
            - `file_id` string, nullable — The Flex file ID (e.g., `ffile_xxx`).
            - `filename` string, nullable — The original filename from upload.
            - `stripe_file_id` string, nullable — Underlying card-network file ID, present when the file could not be matched to a Flex file ID.
          - `duplicate_charge_documentation` EvidenceFileInfo — A reference to a file attached as dispute evidence.
            - `file_id` string, nullable — The Flex file ID (e.g., `ffile_xxx`).
            - `filename` string, nullable — The original filename from upload.
            - `stripe_file_id` string, nullable — Underlying card-network file ID, present when the file could not be matched to a Flex file ID.
          - `service_documentation` EvidenceFileInfo — A reference to a file attached as dispute evidence.
            - `file_id` string, nullable — The Flex file ID (e.g., `ffile_xxx`).
            - `filename` string, nullable — The original filename from upload.
            - `stripe_file_id` string, nullable — Underlying card-network file ID, present when the file could not be matched to a Flex file ID.
          - `uncategorized_file` EvidenceFileInfo — A reference to a file attached as dispute evidence.
            - `file_id` string, nullable — The Flex file ID (e.g., `ffile_xxx`).
            - `filename` string, nullable — The original filename from upload.
            - `stripe_file_id` string, nullable — Underlying card-network file ID, present when the file could not be matched to a Flex file ID.
          - `cancellation_policy` EvidenceFileInfo — A reference to a file attached as dispute evidence.
            - `file_id` string, nullable — The Flex file ID (e.g., `ffile_xxx`).
            - `filename` string, nullable — The original filename from upload.
            - `stripe_file_id` string, nullable — Underlying card-network file ID, present when the file could not be matched to a Flex file ID.
          - `refund_policy` EvidenceFileInfo — A reference to a file attached as dispute evidence.
            - `file_id` string, nullable — The Flex file ID (e.g., `ffile_xxx`).
            - `filename` string, nullable — The original filename from upload.
            - `stripe_file_id` string, nullable — Underlying card-network file ID, present when the file could not be matched to a Flex file ID.
        - `evidence_details` EvidenceDetails — Details about the evidence submission deadline and status.
          - `due_by` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `has_evidence` boolean, required — Whether evidence has been submitted
          - `past_due` boolean, required — Whether the evidence deadline has passed
          - `submission_count` integer, required — Number of times evidence has been submitted
        - `balance_transactions` DisputeBalanceTransactionInfo[], nullable — Balance transactions that record the funds withdrawn and returned as the dispute progresses (e.g., the initial debit and any reversal). An empty array when there are none.
          - `balance_transaction_id` string, required — ID of the balance transaction, prefixed with `fbtxn_`.
          - `amount` integer, required — Gross amount of the transaction, in the smallest currency unit (e.g., `2500` = $25.00 USD). Negative when funds are withdrawn from your balance.
          - `fee` integer, required — Fee applied to the transaction, in the smallest currency unit (e.g., `1500` = $15.00 USD). For a dispute, this is typically the dispute (chargeback) fee.
          - `net` integer, required — Net amount applied to your balance after fees, in the smallest currency unit (`net = amount - fee`).
          - `status` 'available' | 'pending', required — Availability status of the funds in a balance transaction. - `available`: Funds have settled and are available to be paid out. - `pending`: Funds are not yet available.
          - `type` string, nullable — The type of balance transaction (e.g., `adjustment`). `null` when not classified.
          - `reporting_category` string, nullable — The reporting category used to group the transaction in financial reports.
          - `category` string, nullable — The role this transaction plays within the dispute (e.g., the initial debit or a reversal). `null` when not categorized.
          - `created_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `payment_method_details` DisputePaymentMethodDetails — Details of the payment method that was disputed.
          - `type` string, required — The type of payment method that was disputed (e.g., `card`).
          - `card` DisputePaymentMethodCard — Card-specific details for a disputed payment made with a card.
            - `brand` string, nullable — The card brand. `null` when unknown.
            - `network_reason_code` string, nullable — The reason code the card network assigned to the dispute, as reported by the issuer.
        - `test_mode` boolean, required — Whether the dispute was created in test mode. `true` for disputes created with test API keys.
        - `client_reference_id` string, nullable — Your own identifier for the customer or payment this dispute relates to, copied from the originating payment.
      - `early_fraud_warning` EarlyFraudWarning — An EarlyFraudWarning is a signal from the card issuer that a charge is likely to be disputed as fraudulent. Acting on it — for example by refunding the charge — can help you avoid a dispute and its fee.
        - `early_fraud_warning_id` string, required — Unique identifier for the early fraud warning, prefixed with `fefw_`.
        - `charge_id` string, nullable — ID of the Charge this early fraud warning is associated with. `null` if the charge could not be resolved.
        - `payment_intent_id` string, nullable — ID of the PaymentIntent this early fraud warning is associated with. `null` if it could not be resolved.
        - `actionable` boolean, required — Whether the card issuer expects the charge to be disputed. When `true`, the charge is likely to become a dispute, and proactively refunding it can help avoid a dispute and its fee.
        - `fraud_type` 'card_never_received' | 'fraudulent_card_application' | 'made_with_counterfeit_card' | 'made_with_lost_card' | 'made_with_stolen_card' | 'misc' | 'unauthorized_use_of_card', required — The type of fraud labelled by the card issuer.
        - `partner_id` string, required — ID of the account that owns this early fraud warning.
        - `test_mode` boolean, required — Whether the early fraud warning was created in test mode. `true` for warnings created with test API keys.
        - `client_reference_id` string, nullable — Your own identifier for the customer or payment this warning relates to, copied from the originating payment.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
      - `review` Review — A Review represents a payment flagged by fraud detection for manual review. A review stays open while the payment awaits a decision and closes once it is approved or otherwise resolved.
        - `review_id` string, required — Unique identifier for the review, prefixed with `frv_`.
        - `charge_id` string, nullable — ID of the Charge under review, prefixed with `fch_`. `null` if the review is not associated with a specific charge.
        - `payment_intent_id` string, nullable — ID of the Payment Intent under review, prefixed with `fpi_`. `null` if the review is not associated with a specific payment intent.
        - `partner_id` string, required — ID of the account that owns the payment under review, prefixed with `facct_`.
        - `reason` 'rule' | 'manual' | 'approved' | 'refunded' | 'refunded_as_fraud' | 'disputed' | 'redacted', required — Why the review is currently open or closed.
        - `opened_reason` 'rule' | 'manual', required — Why the review was opened.
        - `closed_reason` 'approved' | 'disputed' | 'redacted' | 'refunded' | 'refunded_as_fraud' — Why the review was closed.
        - `open` boolean, required — Whether the review is still open. `true` while the payment is under review, `false` once it has been resolved.
        - `billing_zip` string, nullable — Billing ZIP/postal code provided for the payment under review. Omitted if not available.
        - `ip_address` string, nullable — IP address from which the payment under review was made. Omitted if not available.
        - `test_mode` boolean, required — Whether this review was created in test mode. `true` for test-mode data, `false` for live data.
        - `client_reference_id` string, nullable — Your own identifier for the payment under review, carried over from the originating checkout session or payment. Omitted if none was set.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
      - `refund` Refund — A Refund object represents the return of funds for a previously succeeded payment, in whole or in part. Issuing a refund reverses the corresponding charge(s) on the customer's HSA/FSA and/or credit card payment methods.
        - `refund_id` string, required — The ID of the refund
        - `payment_intent_id` string, nullable — The ID of the payment intent that the refund is associated with
        - `amount` integer, required — The amount of the refund in cents
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `reason` 'duplicate' | 'fraudulent' | 'requested_by_customer' | 'expired_uncaptured_charge' — The reason the refund was issued.
        - `status` 'pending' | 'requires_action' | 'succeeded' | 'failed' | 'canceled', required — The current status of the refund.
        - `test_mode` boolean, required — Whether the refund was created in test mode
        - `metadata` object, nullable — Metadata attached to the refund
        - `reference_id` string, nullable — Reference number that the customer can use to trace this refund with their bank or card issuer.
        - `reference_type` 'acquirer_reference_number' | 'system_trace_audit_number' | 'retrieval_reference_number' — The kind of reference number associated with the refund.
        - `reference_status` 'available' | 'pending' | 'unavailable' — The status of the refund's acquirer reference.
        - `items` RefundItem[] — List of refund items (charges that were refunded)
          - `amount_refunded` integer, required — The amount refunded from this charge in cents
          - `payment_intent` string, nullable — The ID of the payment intent that the refund is associated with
          - `payment_method_id` string, nullable — The ID of the payment method used for this refund
          - `reference_id` string, nullable — Reference number that the customer can use to trace this refund with their bank or card issuer.
          - `reference_type` 'acquirer_reference_number' | 'system_trace_audit_number' | 'retrieval_reference_number' — The kind of reference number associated with the refund.
          - `reference_status` 'available' | 'pending' | 'unavailable' — The status of the refund's acquirer reference.
        - `subscription_id` string, nullable — The subscription this refund is associated with (for subscription cancellation refunds)
        - `invoice_id` string, nullable — The invoice this refund is associated with (for subscription billing period refunds)
        - `balance_transaction` union — An expandable field — either a string ID or an expanded BalanceTransaction object.
          - string
          - BalanceTransaction — A BalanceTransaction represents a single change to your Flex account balance — for example, a charge, refund, dispute, fee, or payout. Each transaction records how much was added or removed, the processing fee, and the resulting net effect on your balance, and links back to the Flex object that caused it.
            - `balance_transaction_id` string, required — Unique identifier for the balance transaction, prefixed with `fbtxn_`.
            - `amount` integer, required — Gross amount of the transaction, in the smallest currency unit (e.g., `1000` = $10.00 USD). Positive for funds added to your balance (e.g., charges) and negative for funds removed (e.g., refunds, payouts, dispute debits).
            - `available_on` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `created_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `exchange_rate` number, double, nullable — The exchange rate applied if the transaction involved a currency conversion. `null` when no conversion took place.
            - `fee` integer, required — Total processing fee deducted from `amount`, in the smallest currency unit (e.g., `30` = $0.30 USD). `0` when no fee applies.
            - `net` integer, required — Net amount that affects your balance after `fee` is applied (`net = amount - fee`), in the smallest currency unit (e.g., `970` = $9.70 USD).
            - `reporting_category` string, nullable — High-level accounting category for the transaction. `null` if not yet categorized.
            - `checkout_session_id` string, nullable — ID of the Checkout Session that originated this transaction, if it stems from a checkout.
            - `client_reference_id` string, nullable — Your own identifier for the originating object, carried over from the checkout session or payment.
            - `status` 'available' | 'pending', required — Availability status of the funds in a balance transaction. - `available`: Funds have settled and are available to be paid out. - `pending`: Funds are not yet available.
            - `source_id` string, nullable — ID of the Flex object that produced this transaction (e.g., a Charge `fch_`, Refund `fre_`, or Payout `fpo_`). `null` if the source has not been resolved to a Flex object.
            - `type` string, nullable — The type of transaction.
            - `flex_payment_intent_id` string, nullable — ID of the Payment Intent associated with this transaction, if any. `null` for transactions not tied to a payment (e.g., payouts).
            - `test_mode` boolean, required — Whether this transaction was created in test mode. `true` for test-mode data, `false` for live data.
            - `mid` string, nullable — Merchant identifier (MID) for the account that processed the transaction.
            - `currency` string, nullable — Three-letter ISO currency code, in lowercase (e.g., `usd`).
            - `metadata` object, nullable — Set of key-value pairs you can attach to the object for storing additional structured information.
            - `transaction_fee_amount` integer, nullable — Portion of `fee` attributable to standard transaction processing, in the smallest currency unit. `null` if not broken out.
            - `interchange_fee_amount` integer, nullable — Portion of `fee` attributable to card-network interchange, in the smallest currency unit. `null` if not broken out.
            - `lmn_fee_amount` integer, nullable — Portion of `fee` attributable to Letter of Medical Necessity (LMN) processing, in the smallest currency unit. `null` if not applicable.
            - `dispute_fee_amount` integer, nullable — Portion of `fee` attributable to a dispute, in the smallest currency unit. `null` if not applicable.
            - `card_type` string, nullable — Card funding type used for the transaction.
            - `card_network` string, nullable — Card network used for the transaction (e.g., `visa`, `mastercard`).
        - `failure_balance_transaction` union — An expandable field — either a string ID or an expanded BalanceTransaction object.
          - string
          - BalanceTransaction — A BalanceTransaction represents a single change to your Flex account balance — for example, a charge, refund, dispute, fee, or payout. Each transaction records how much was added or removed, the processing fee, and the resulting net effect on your balance, and links back to the Flex object that caused it.
            - `balance_transaction_id` string, required — Unique identifier for the balance transaction, prefixed with `fbtxn_`.
            - `amount` integer, required — Gross amount of the transaction, in the smallest currency unit (e.g., `1000` = $10.00 USD). Positive for funds added to your balance (e.g., charges) and negative for funds removed (e.g., refunds, payouts, dispute debits).
            - `available_on` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `created_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `exchange_rate` number, double, nullable — The exchange rate applied if the transaction involved a currency conversion. `null` when no conversion took place.
            - `fee` integer, required — Total processing fee deducted from `amount`, in the smallest currency unit (e.g., `30` = $0.30 USD). `0` when no fee applies.
            - `net` integer, required — Net amount that affects your balance after `fee` is applied (`net = amount - fee`), in the smallest currency unit (e.g., `970` = $9.70 USD).
            - `reporting_category` string, nullable — High-level accounting category for the transaction. `null` if not yet categorized.
            - `checkout_session_id` string, nullable — ID of the Checkout Session that originated this transaction, if it stems from a checkout.
            - `client_reference_id` string, nullable — Your own identifier for the originating object, carried over from the checkout session or payment.
            - `status` 'available' | 'pending', required — Availability status of the funds in a balance transaction. - `available`: Funds have settled and are available to be paid out. - `pending`: Funds are not yet available.
            - `source_id` string, nullable — ID of the Flex object that produced this transaction (e.g., a Charge `fch_`, Refund `fre_`, or Payout `fpo_`). `null` if the source has not been resolved to a Flex object.
            - `type` string, nullable — The type of transaction.
            - `flex_payment_intent_id` string, nullable — ID of the Payment Intent associated with this transaction, if any. `null` for transactions not tied to a payment (e.g., payouts).
            - `test_mode` boolean, required — Whether this transaction was created in test mode. `true` for test-mode data, `false` for live data.
            - `mid` string, nullable — Merchant identifier (MID) for the account that processed the transaction.
            - `currency` string, nullable — Three-letter ISO currency code, in lowercase (e.g., `usd`).
            - `metadata` object, nullable — Set of key-value pairs you can attach to the object for storing additional structured information.
            - `transaction_fee_amount` integer, nullable — Portion of `fee` attributable to standard transaction processing, in the smallest currency unit. `null` if not broken out.
            - `interchange_fee_amount` integer, nullable — Portion of `fee` attributable to card-network interchange, in the smallest currency unit. `null` if not broken out.
            - `lmn_fee_amount` integer, nullable — Portion of `fee` attributable to Letter of Medical Necessity (LMN) processing, in the smallest currency unit. `null` if not applicable.
            - `dispute_fee_amount` integer, nullable — Portion of `fee` attributable to a dispute, in the smallest currency unit. `null` if not applicable.
            - `card_type` string, nullable — Card funding type used for the transaction.
            - `card_network` string, nullable — Card network used for the transaction (e.g., `visa`, `mastercard`).
      - `charge` Charge — A Charge represents a single attempt to move funds for a payment, including its outcome and any 3D Secure, decline, and risk details. A PaymentIntent can have multiple charges over its lifetime (for example after a retry); the most recent is referenced by the PaymentIntent's `latest_charge`.
        - `charge_id` string, required — Unique identifier for the charge.
        - `amount` integer, required — Amount intended to be collected by this payment.
        - `amount_captured` integer, required — Amount in cents captured (can be less than the amount attribute on the charge if a partial capture was made).
        - `amount_refunded` integer, required — Amount in cents refunded (can be less than the amount attribute on the charge if a partial refund was made).
        - `application_fee_amount` integer, nullable — The Flex application fee for the charge
        - `captured` boolean, required — If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `customer` union — An expandable field — either a string ID or an expanded Customer object.
          - string
          - Customer — A Customer object represents a customer of your business. Use it to track payments, store reusable payment methods, and reference the customer on checkout sessions, invoices, and subscriptions.
            - `customer_id` string, required — The unique identifier for the customer.
            - `owner_partner_id` string, nullable — The partner that owns this customer. When a customer is shared with you by another partner in your organization, this is that sibling partner; otherwise it is your own partner id.
            - `first_name` string, required — The customer's first name.
            - `last_name` string, required — The customer's last name.
            - `email` string, email, required — The customer's email address.
            - `phone` string, phone, nullable — The customer's phone number.
            - `employer` string, nullable — The customer's employer.
            - `shipping` ShippingAddress — A ShippingAddress represents the postal address a physical order is delivered to. It is referenced by checkout sessions and customers.
              - …
            - `metadata` object, nullable — Metadata associated with the customer.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `test_mode` boolean, required — Whether the customer was created in test mode.
        - `invoice` union — An expandable field — either a string ID or an expanded Invoice object.
          - string
          - Invoice — An Invoice is a statement of the amounts owed by a customer, generated when a subscription advances through its billing cycle. It tracks the total, amount due, and amount paid, along with the payment intent, charge, and billing period that produced it, and its current lifecycle status as it is finalized and collected.
            - `invoice_id` string, required — The id of the invoice.
            - `total` integer, required — The total amount of the invoice in cents.
            - `amount_due` integer, required — The amount due in cents.
            - `amount_paid` integer, required — The amount paid in cents.
            - `payment_intent` union — An expandable field — either a string ID or an expanded PaymentIntent object.
              - …
            - `charge` string, nullable — The id of the latest charge for this invoice.
            - `customer` union — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `period_end` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `period_start` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `subscription` union — An expandable field — either a string ID or an expanded Subscription object.
              - …
            - `paid_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `status` 'draft' | 'open' | 'void' | 'paid' | 'uncollectible', required — The lifecycle status of the invoice.
            - `collection_method` 'charge_automatically' | 'send_invoice', required — How payment for the invoice is collected: automatically from the customer's saved payment method, or by emailing them an invoice to pay.
            - `test_mode` boolean, required — Whether or not the invoice was created in test mode.
            - `metadata` object, nullable — Metadata associated with the invoice.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `failure_message` string, nullable — Message to user further explaining reason for charge failure if available.
        - `disputed` boolean, required — Whether the charge has been disputed.
        - `paid` boolean, required — true if the charge succeeded, or was successfully authorized for later capture.
        - `refunded` boolean, required — Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.
        - `refunds` ExpandableForRefund[], nullable — A list of refunds that have been applied to the charge.
          - union — An expandable field — either a string ID or an expanded Refund object.
            - string
            - Refund — A Refund object represents the return of funds for a previously succeeded payment, in whole or in part. Issuing a refund reverses the corresponding charge(s) on the customer's HSA/FSA and/or credit card payment methods.
              - …
        - `payment_intent` union, required — An expandable field — either a string ID or an expanded PaymentIntent object.
          - string
          - PaymentIntent — A PaymentIntent tracks Flex's process of collecting a payment from a customer: the amount to collect, its lifecycle status, and references to the customer, payment method, and resulting charge. A single PaymentIntent may produce several charges over its lifetime (for example after a retry); the most recent is referenced by `latest_charge`.
            - `payment_intent_id` string, required — The unique identifier for the payment intent.
            - `amount` integer, required — The amount of the payment intent in cents.
            - `amount_capturable` integer, nullable — The amount that can be captured from this PaymentIntent.
            - `amount_received` integer, nullable — The amount that was received in cents.
            - `application_fee_amount` integer, nullable — The amount of the Flex application fee.
            - `customer` union — An expandable field — either a string ID or an expanded Customer object.
              - …
            - `transfer_data` TransferData — Describes how funds collected by a PaymentIntent are routed to your account. Present only when the payment carries an application fee or an explicit transfer amount.
              - …
            - `status` 'canceled' | 'processing' | 'requires_action' | 'requires_capture' | 'requires_confirmation' | 'requires_payment_method' | 'succeeded', required — The current lifecycle status of the payment intent.
            - `latest_charge` union — An expandable field — either a string ID or an expanded Charge object.
              - …
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `invoice` union — An expandable field — either a string ID or an expanded Invoice object.
              - …
            - `capture_method` 'automatic' | 'automatic_async' | 'manual', required — Controls when funds are captured: automatically once the payment is confirmed, or manually at a later time.
            - `client_secret` string, nullable — The client secret of the payment intent.
            - `metadata` object, nullable — The metadata associated with the payment intent.
            - `payment_method` union — An expandable field — either a string ID or an expanded PaymentMethod object.
              - …
            - `test_mode` boolean, required — Whether the payment intent is in test mode.
            - `transfer_group` string, nullable — A string that identifies the resulting payment as part of a group
            - `payment_card_type` 'primary' | 'secondary' — - `primary`: In a split cart, `Primary` refers to the HSA/FSA eligible card. In a single cart (whether it's HSA/FSA or a fully ineligible cart), `Primary` refers to the only payment card used. - `secondary`: In a split cart and partial authorization payment, `Secondary` refers to the non-eligible or backup credit card used for ineligible items.
            - `letter_fee_amount` integer, nullable — Letter fee portion of application_fee_amount (waterfall allocation to HSA/FSA)
            - `transaction_fee` integer, nullable — Transaction fee portion of application_fee_amount (percentage + fixed fee)
            - `last_payment_error` LastPaymentError — Structured error details from the most recent failed payment attempt on a payment intent.
              - …
        - `status` 'succeeded' | 'pending' | 'failed', required — The outcome of the charge.
        - `test_mode` boolean, required — Whether the charge was created in test mode.
        - `transfer_group` string, nullable — A string that identifies the resulting payment as part of a group
        - `payment_method_id` string, nullable — The ID of the PaymentMethod.
        - `three_d_secure` ThreeDSecureOutcome — 3D Secure authentication outcome for the charge.
          - `authentication_flow` string, nullable — How the customer was authenticated: `challenge` or `frictionless`.
          - `result` string, nullable — Outcome of 3D Secure authentication.
          - `result_reason` string, nullable — Additional detail about why 3DS succeeded or failed.
          - `version` string, nullable — The version of 3D Secure used.
        - `decline_details` DeclineDetails — Decline and risk details captured at the time of a failed or blocked charge. Absent for successful, non-declined charges.
          - `failure_code` string, nullable — Error code for the charge failure (e.g. `card_declined`, `expired_card`).
          - `decline_code` string, nullable — More specific decline reason (e.g. `insufficient_funds`, `lost_card`).
          - `failure_message` string, nullable — User-facing failure message.
          - `outcome_type` string, nullable — The outcome type of the decline.
          - `network_status` string, nullable — Network-level status: `approved_by_network`, `declined_by_network`, etc.
          - `seller_message` string, nullable — Technical explanation of the outcome for the merchant.
          - `reason` string, nullable — Fraud/risk reason (e.g. `elevated_risk_level`).
          - `risk_level` string, nullable — The risk level assessed for the payment.
        - `balance_transaction` union — An expandable field — either a string ID or an expanded BalanceTransaction object.
          - string
          - BalanceTransaction — A BalanceTransaction represents a single change to your Flex account balance — for example, a charge, refund, dispute, fee, or payout. Each transaction records how much was added or removed, the processing fee, and the resulting net effect on your balance, and links back to the Flex object that caused it.
            - `balance_transaction_id` string, required — Unique identifier for the balance transaction, prefixed with `fbtxn_`.
            - `amount` integer, required — Gross amount of the transaction, in the smallest currency unit (e.g., `1000` = $10.00 USD). Positive for funds added to your balance (e.g., charges) and negative for funds removed (e.g., refunds, payouts, dispute debits).
            - `available_on` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `created_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `exchange_rate` number, double, nullable — The exchange rate applied if the transaction involved a currency conversion. `null` when no conversion took place.
            - `fee` integer, required — Total processing fee deducted from `amount`, in the smallest currency unit (e.g., `30` = $0.30 USD). `0` when no fee applies.
            - `net` integer, required — Net amount that affects your balance after `fee` is applied (`net = amount - fee`), in the smallest currency unit (e.g., `970` = $9.70 USD).
            - `reporting_category` string, nullable — High-level accounting category for the transaction. `null` if not yet categorized.
            - `checkout_session_id` string, nullable — ID of the Checkout Session that originated this transaction, if it stems from a checkout.
            - `client_reference_id` string, nullable — Your own identifier for the originating object, carried over from the checkout session or payment.
            - `status` 'available' | 'pending', required — Availability status of the funds in a balance transaction. - `available`: Funds have settled and are available to be paid out. - `pending`: Funds are not yet available.
            - `source_id` string, nullable — ID of the Flex object that produced this transaction (e.g., a Charge `fch_`, Refund `fre_`, or Payout `fpo_`). `null` if the source has not been resolved to a Flex object.
            - `type` string, nullable — The type of transaction.
            - `flex_payment_intent_id` string, nullable — ID of the Payment Intent associated with this transaction, if any. `null` for transactions not tied to a payment (e.g., payouts).
            - `test_mode` boolean, required — Whether this transaction was created in test mode. `true` for test-mode data, `false` for live data.
            - `mid` string, nullable — Merchant identifier (MID) for the account that processed the transaction.
            - `currency` string, nullable — Three-letter ISO currency code, in lowercase (e.g., `usd`).
            - `metadata` object, nullable — Set of key-value pairs you can attach to the object for storing additional structured information.
            - `transaction_fee_amount` integer, nullable — Portion of `fee` attributable to standard transaction processing, in the smallest currency unit. `null` if not broken out.
            - `interchange_fee_amount` integer, nullable — Portion of `fee` attributable to card-network interchange, in the smallest currency unit. `null` if not broken out.
            - `lmn_fee_amount` integer, nullable — Portion of `fee` attributable to Letter of Medical Necessity (LMN) processing, in the smallest currency unit. `null` if not applicable.
            - `dispute_fee_amount` integer, nullable — Portion of `fee` attributable to a dispute, in the smallest currency unit. `null` if not applicable.
            - `card_type` string, nullable — Card funding type used for the transaction.
            - `card_network` string, nullable — Card network used for the transaction (e.g., `visa`, `mastercard`).
        - `failure_balance_transaction` union — An expandable field — either a string ID or an expanded BalanceTransaction object.
          - string
          - BalanceTransaction — A BalanceTransaction represents a single change to your Flex account balance — for example, a charge, refund, dispute, fee, or payout. Each transaction records how much was added or removed, the processing fee, and the resulting net effect on your balance, and links back to the Flex object that caused it.
            - `balance_transaction_id` string, required — Unique identifier for the balance transaction, prefixed with `fbtxn_`.
            - `amount` integer, required — Gross amount of the transaction, in the smallest currency unit (e.g., `1000` = $10.00 USD). Positive for funds added to your balance (e.g., charges) and negative for funds removed (e.g., refunds, payouts, dispute debits).
            - `available_on` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `created_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `exchange_rate` number, double, nullable — The exchange rate applied if the transaction involved a currency conversion. `null` when no conversion took place.
            - `fee` integer, required — Total processing fee deducted from `amount`, in the smallest currency unit (e.g., `30` = $0.30 USD). `0` when no fee applies.
            - `net` integer, required — Net amount that affects your balance after `fee` is applied (`net = amount - fee`), in the smallest currency unit (e.g., `970` = $9.70 USD).
            - `reporting_category` string, nullable — High-level accounting category for the transaction. `null` if not yet categorized.
            - `checkout_session_id` string, nullable — ID of the Checkout Session that originated this transaction, if it stems from a checkout.
            - `client_reference_id` string, nullable — Your own identifier for the originating object, carried over from the checkout session or payment.
            - `status` 'available' | 'pending', required — Availability status of the funds in a balance transaction. - `available`: Funds have settled and are available to be paid out. - `pending`: Funds are not yet available.
            - `source_id` string, nullable — ID of the Flex object that produced this transaction (e.g., a Charge `fch_`, Refund `fre_`, or Payout `fpo_`). `null` if the source has not been resolved to a Flex object.
            - `type` string, nullable — The type of transaction.
            - `flex_payment_intent_id` string, nullable — ID of the Payment Intent associated with this transaction, if any. `null` for transactions not tied to a payment (e.g., payouts).
            - `test_mode` boolean, required — Whether this transaction was created in test mode. `true` for test-mode data, `false` for live data.
            - `mid` string, nullable — Merchant identifier (MID) for the account that processed the transaction.
            - `currency` string, nullable — Three-letter ISO currency code, in lowercase (e.g., `usd`).
            - `metadata` object, nullable — Set of key-value pairs you can attach to the object for storing additional structured information.
            - `transaction_fee_amount` integer, nullable — Portion of `fee` attributable to standard transaction processing, in the smallest currency unit. `null` if not broken out.
            - `interchange_fee_amount` integer, nullable — Portion of `fee` attributable to card-network interchange, in the smallest currency unit. `null` if not broken out.
            - `lmn_fee_amount` integer, nullable — Portion of `fee` attributable to Letter of Medical Necessity (LMN) processing, in the smallest currency unit. `null` if not applicable.
            - `dispute_fee_amount` integer, nullable — Portion of `fee` attributable to a dispute, in the smallest currency unit. `null` if not applicable.
            - `card_type` string, nullable — Card funding type used for the transaction.
            - `card_network` string, nullable — Card network used for the transaction (e.g., `visa`, `mastercard`).
      - `export` Export — An Export represents an asynchronous request to generate a CSV file of your data, such as payments, subscriptions, customers, or reconciliation records. Create one to start the job, poll it until its `status` is `completed`, then request a presigned URL to download the file.
        - `export_id` string, required — Unique identifier for the export.
        - `description` string, nullable — An arbitrary description you can attach to the export for your own reference.
        - `type` 'product' | 'payment' | 'subscription' | 'customer' | 'checkout_session' | 'charge_reconciliation' | 'payout' | 'line_item' | 'line_item_revenue' | 'dispute', required — The type of records the export contains.
        - `status` 'created' | 'started' | 'cancelled' | 'failed' | 'processing' | 'completed', required — The processing status of the export.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `started_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `completed_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `metadata` object, nullable — Set of key-value pairs you can attach to the export for storing additional structured information.
        - `filters` Filters — Criteria that restrict which records an export includes. The filter variant must match the export's `type` (e.g. a `payment` export takes the `payment` filter); the unused criteria are ignored. When no filter is supplied, the export includes all of your records.
          - `payment` object — Filters a `payment` export.
            - `limit` integer, nullable — Accepted but not currently applied to the export.
            - `status` 'canceled' | 'processing' | 'requires_action' | 'requires_capture' | 'requires_confirmation' | 'requires_payment_method' | 'succeeded' — The current lifecycle status of the payment intent.
            - `starting_after` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `ending_before` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `customer` string, nullable — Accepted but not currently applied to the export.
          - `checkout_session` object — Filters a `checkout_session` export.
            - `limit` integer, nullable — Accepted but not currently applied to the export.
            - `offset` integer, nullable — Accepted but not currently applied to the export.
            - `payment_intent` string, nullable — Accepted but not currently applied to the export.
            - `client_reference_id` string, nullable — Accepted but not currently applied to the export.
            - `start_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `end_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `subscription` object — Filters a `subscription` export.
            - `limit` integer, nullable — Accepted but not currently applied to the export.
            - `offset` integer, nullable — Accepted but not currently applied to the export.
            - `starting_after` string, nullable — Accepted but not currently applied to the export.
            - `ending_before` string, nullable — Accepted but not currently applied to the export.
            - `start_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `end_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `customer` PaginationFilter — Date-range bounds applied when generating customer and product exports.
            - `limit` integer, nullable — Accepted but not currently applied; the export includes all records within the date range.
            - `offset` integer, nullable — Accepted but not currently applied; the export includes all records within the date range.
            - `starting_after` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `ending_before` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `product` PaginationFilter — Date-range bounds applied when generating customer and product exports.
            - `limit` integer, nullable — Accepted but not currently applied; the export includes all records within the date range.
            - `offset` integer, nullable — Accepted but not currently applied; the export includes all records within the date range.
            - `starting_after` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `ending_before` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `charge_reconciliation` object — Filters a `charge_reconciliation` export.
            - `start_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `end_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `payout` object — Filters a `payout` export.
            - `start_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `end_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `dispute` object — Filters a `dispute` export by dispute (chargeback) open date.
            - `start_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `end_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `line_item` object — Filters a `line_item` export.
            - `start_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `end_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
          - `line_item_revenue` object — Filters a `line_item_revenue` export.
            - `start_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `end_date` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `test_mode` boolean, required — Whether the export was created in test mode. `true` for test-mode exports, `false` for live-mode exports.
      - `payment_method` PaymentMethod — A PaymentMethod object represents a customer's payment instrument (such as a card) that can be used to collect payments. Attach it to a Customer to reuse it across checkout sessions, invoices, and subscriptions.
        - `payment_method_id` string, required — The ID of the PaymentMethod.
        - `billing_details` BillingDetails, required — Billing information associated with a PaymentMethod, such as the cardholder's billing address, email, name, and phone number.
          - `address` BillingAddress — A billing address attached to a PaymentMethod's billing details.
            - `city` string, nullable — City, district, suburb, town, or village.
            - `country` string, nullable — Two-letter ISO country code (e.g., `US`).
            - `line1` string, nullable — Address line 1, such as the street, PO box, or company name.
            - `line2` string, nullable — Address line 2, such as the apartment, suite, unit, or building.
            - `postal_code` string, nullable — ZIP or postal code.
            - `state` string, nullable — State, county, province, or region.
          - `email` string, nullable — The billing email address.
          - `name` string, nullable — The billing name.
          - `phone` string, nullable — The billing phone number.
        - `customer` union, required — An expandable field — either a string ID or an expanded Customer object.
          - string
          - Customer — A Customer object represents a customer of your business. Use it to track payments, store reusable payment methods, and reference the customer on checkout sessions, invoices, and subscriptions.
            - `customer_id` string, required — The unique identifier for the customer.
            - `owner_partner_id` string, nullable — The partner that owns this customer. When a customer is shared with you by another partner in your organization, this is that sibling partner; otherwise it is your own partner id.
            - `first_name` string, required — The customer's first name.
            - `last_name` string, required — The customer's last name.
            - `email` string, email, required — The customer's email address.
            - `phone` string, phone, nullable — The customer's phone number.
            - `employer` string, nullable — The customer's employer.
            - `shipping` ShippingAddress — A ShippingAddress represents the postal address a physical order is delivered to. It is referenced by checkout sessions and customers.
              - …
            - `metadata` object, nullable — Metadata associated with the customer.
            - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
            - `test_mode` boolean, required — Whether the customer was created in test mode.
        - `metadata` object, nullable — Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
        - `card` Card, required — A Card object describes the card backing a PaymentMethod, including its brand, funding type, expiration, and the last four digits.
          - `brand` 'american_express' | 'diners_club' | 'discover' | 'eftpos_au' | 'JCB' | 'master_card' | 'union_pay' | 'visa' | 'unknown', required — The card's network (brand).
          - `country` string, required — Two-letter ISO code for the card's country.
          - `exp_month` integer, required — The card's expiration month.
          - `exp_year` integer, required — The card's expiration year.
          - `fingerprint` string, required — Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card.
          - `funding` 'credit' | 'debit' | 'hsa_fsa' | 'prepaid' | 'unknown', required — The card's funding type, such as credit, debit, prepaid, or an HSA/FSA benefits card.
          - `last4` string, required — The last four digits of the card.
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `test_mode` boolean, required — Whether this PaymentMethod is in test mode.
        - `off_session` boolean, required — Whether this PaymentMethod is valid for off_session (customer not present) purchase flows.
      - `product` Product — A Product defines what you sell. Flex determines its HSA/FSA eligibility from the name, description, and identifiers you provide.
        - `product_id` string, required — The unique identifier for the product.
        - `owner_partner_id` string, nullable — The ID of the account that owns this product. For products shared across an organization this may be a sibling account; otherwise it is your own account ID.
        - `name` string, required — The name of the product.
        - `description` string, nullable — The description of the product.
        - `document_description` string, nullable — Medical-grade description optimized for use in Letters of Medical Necessity and receipts.
        - `receipt_description` string, nullable — Shortened description tailored to receipt line items
        - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `visit_type` 'cbtSleep' | 'notApplicable' | 'metabolomics' | 'tinnitus' | 'gym' | 'exerciseDiet' | 'orthopedic' | 'alcohol' | 'airPurification' | 'vaginalHealth' | 'menstrual' | 'canopy' | 'alopecia' | 'genate' | 'weightBlanket' | 'bedJet' | 'siderAl' | 'sunwinkPowder' | 'wavWatch' | 'bodyComplete' | 'ageRate' | 'nitrousOxide' | 'happyV' | 'groupChat' | 'icalmAnxiety' | 'redBloom' | 'foodom' | 'branchErgonomicFurniture' | 'curalife' | 'eloraInfantWellness' | 'nutriHealth' | 'olipop' | 'goldIntimate' | 'touchStoneEssentials' | 'utiva' | 'sleepGeekz' | 'figBrew' | 'auBabyBlanket' | 'babySleepSack' | 'oshWellness' | 'currentBodyRedLight' | 'mito' | 'circularRing' | 'lymaRedLight' | 'goodAirRx' | 'tastermonial' | 'karunaHome' | 'ergoStandingChair' | 'jbaGlucoseControl' | 'bloomNutrition' | 'buoyDrops' | 'luxeWonderWig' | 'saunaMarketplace' | 'amrioreEyewear' | 'pivotOrthoShoe' | 'lumenCynergy' | 'roga' | 'pulsetto' | 'mitoRedLight' | 'gutPersonal' | 'goFlaus' | 'myHixel' | 'calmigo' | 'dotFit' | 'stripesBeauty' | 'mixHers' | 'pmd' | 'positivityWithPurpose' | 'techRing' | 'popVeneers' | 'vertaClean' | 'lumen' | 'medicalMeal' | 'emnHealth' | 'detergentAllergy' | 'lowImpactExercise' | 'mediumImpactExercise' | 'highImpactExercise' | 'gardening' | 'babyCarrier' | 'smartGlasses' | 'coolingBed' | 'posture' | 'supplements' | 'sleep' | 'redLightTherapy' | 'fitness' | 'smartRing' | 'womensVaginalHealth' | 'fertilitySupport' | 'femaleReproduction' | 'femaleReproductionFood' | 'pregnancyLiterature' | 'iceBath' | 'orthopedicShoes' | 'sexualHealth' | 'glucose' | 'metabolicTest' | 'skinCare' | 'oralHealth' | 'oralAnxiety' | 'blueLightGlasses' | 'anxiety' | 'brainHealth' | 'babyMonitor' | 'compressionSocks' | 'compressionShorts' | 'waterPurification' | 'medSpa' | 'essentialOils' | 'sleepBuds' | 'latchLight' | 'nutritionist' | 'rairflow' | 'enduranceTraining' | 'hydration' | 'hairGrowth' | 'eD' | 'postureFitness' | 'childDevelopment' | 'adaptiveClothing' | 'adaptiveShoes' | 'sleepConsulting' | 'hairRemoval' | 'menopause' | 'maleFertility' | 'anxietyHealth' | 'bidets' | 'speechHealth' | 'artOfLiving' | 'breastMilk' | 'breathWork' | 'petSupport' | 'diapers' | 'gutSupplements' | 'smartWatch' | 'medicalBotox' | 'biomechanicalAssessment' | 'erectileReset' | 'femaleOrgasm' | 'pornAddiction' | 'memorySupport' | 'oralHealthMasticGum' | 'orthopedicSandals' | 'childDevelopmentAnxietySleep' | 'childDevelopmentAdjustment' | 'childDevelopmentBehavior' | 'childDevelopmentIdentity' | 'emnHealthMobility' — The name of the telehealth visit type.
        - `active` boolean, required — Determines if the product is active or not.
        - `upc_code` string, nullable — The upc code of the product.
        - `gtin` string, nullable — The gtin code of the product.
        - `reference_gtin` string, nullable — The GTIN of a private-label reference product, used to establish HSA/FSA eligibility.
        - `hsa_fsa_eligibility` 'not_eligible' | 'auto_substantiation' | 'private_label' | 'letter_of_medical_necessity' | 'prescription' | 'vision' | 'service' | 'pending', required — How a product qualifies for HSA/FSA payment, which determines the substantiation required to pay with a benefits card. `pending` means the product is still awaiting Flex's automatic classification, so its eligibility is not yet determined.
        - `test_mode` boolean, required — Whether the product is in test mode or not.
        - `metadata` object, nullable — Metadata associated with the product.
        - `url` string, nullable — The URL of the product.
        - `client_reference_id` string, nullable — An optional identifier for the product set by the client at creation time. Immutable after creation.
      - `balance_transaction` BalanceTransaction — A BalanceTransaction represents a single change to your Flex account balance — for example, a charge, refund, dispute, fee, or payout. Each transaction records how much was added or removed, the processing fee, and the resulting net effect on your balance, and links back to the Flex object that caused it.
        - `balance_transaction_id` string, required — Unique identifier for the balance transaction, prefixed with `fbtxn_`.
        - `amount` integer, required — Gross amount of the transaction, in the smallest currency unit (e.g., `1000` = $10.00 USD). Positive for funds added to your balance (e.g., charges) and negative for funds removed (e.g., refunds, payouts, dispute debits).
        - `available_on` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `created_at` string — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).
        - `exchange_rate` number, double, nullable — The exchange rate applied if the transaction involved a currency conversion. `null` when no conversion took place.
        - `fee` integer, required — Total processing fee deducted from `amount`, in the smallest currency unit (e.g., `30` = $0.30 USD). `0` when no fee applies.
        - `net` integer, required — Net amount that affects your balance after `fee` is applied (`net = amount - fee`), in the smallest currency unit (e.g., `970` = $9.70 USD).
        - `reporting_category` string, nullable — High-level accounting category for the transaction. `null` if not yet categorized.
        - `checkout_session_id` string, nullable — ID of the Checkout Session that originated this transaction, if it stems from a checkout.
        - `client_reference_id` string, nullable — Your own identifier for the originating object, carried over from the checkout session or payment.
        - `status` 'available' | 'pending', required — Availability status of the funds in a balance transaction. - `available`: Funds have settled and are available to be paid out. - `pending`: Funds are not yet available.
        - `source_id` string, nullable — ID of the Flex object that produced this transaction (e.g., a Charge `fch_`, Refund `fre_`, or Payout `fpo_`). `null` if the source has not been resolved to a Flex object.
        - `type` string, nullable — The type of transaction.
        - `flex_payment_intent_id` string, nullable — ID of the Payment Intent associated with this transaction, if any. `null` for transactions not tied to a payment (e.g., payouts).
        - `test_mode` boolean, required — Whether this transaction was created in test mode. `true` for test-mode data, `false` for live data.
        - `mid` string, nullable — Merchant identifier (MID) for the account that processed the transaction.
        - `currency` string, nullable — Three-letter ISO currency code, in lowercase (e.g., `usd`).
        - `metadata` object, nullable — Set of key-value pairs you can attach to the object for storing additional structured information.
        - `transaction_fee_amount` integer, nullable — Portion of `fee` attributable to standard transaction processing, in the smallest currency unit. `null` if not broken out.
        - `interchange_fee_amount` integer, nullable — Portion of `fee` attributable to card-network interchange, in the smallest currency unit. `null` if not broken out.
        - `lmn_fee_amount` integer, nullable — Portion of `fee` attributable to Letter of Medical Necessity (LMN) processing, in the smallest currency unit. `null` if not applicable.
        - `dispute_fee_amount` integer, nullable — Portion of `fee` attributable to a dispute, in the smallest currency unit. `null` if not applicable.
        - `card_type` string, nullable — Card funding type used for the transaction.
        - `card_network` string, nullable — Card network used for the transaction (e.g., `visa`, `mastercard`).
    - `test_mode` boolean, required — Whether the event was generated in test mode. `true` for events from test-mode objects, `false` for live-mode objects.
    - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Validation Error
- `429` — Too Many Requests

---

[API](https://skmtc.dev/withflex/apis/flex-api.md) · [All operations](https://skmtc.dev/withflex/apis/flex-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/withflex/flex-api/revisions/b1560fc2f199/schema)
