List captures: Returns a list of your captures. Optionally filter to a single checkout session with the checkout_session query parameter, and expand related objects (such as the payment intent) with expand.
Retrieve a capture: Retrieves the details of a capture. Use the expand query parameter to inline related objects (such as the payment intent).
Update a capture: Updates the specified capture by setting the values of the fields you pass; only metadata can be changed. Other capture fields, including captured amounts, cannot be modified.
Cancel Auth Checkout Session: Cancels the authorization on a Checkout Session's payment intents, releasing the held funds back to the customer. Only payment intents in a cancellable state are canceled; the request fails with a 422 if the session has no payment intents or none are cancellable.
Capture Checkout Session: Captures funds previously authorized on a Checkout Session whose payment intents use the manual capture method. Capture the full authorized amount, or a partial amount by specifying line_items and component amounts (shipping, discount, tax). By default the remaining authorized amount stays avail...
Create Checkout Session: Creates a Checkout Session. The response includes a hosted redirect_url where the customer completes payment, along with the computed totals and eligibility. Flex classifies the line items for HSA/FSA eligibility and, when a Letter of Medical Necessity is required, sets up the collection flow.
Get Checkout Session: Retrieves the Checkout Session with the given ID. Use the expand parameters to inline related objects such as the customer, payment intent, or subscription in the response.
Get Line Items: Returns the line items for the given Checkout Session. Each line item includes its price, quantity, and computed amounts.
Preview Capture Allocation: Computes how a capture would be allocated across the Checkout Session's payment methods, without executing any capture. Takes the same request body as the capture endpoint and returns the per-payment-method allocations so you can preview a split-cart capture before committing.
Preview Refund Allocation: Computes how a refund would be allocated across the Checkout Session's payment methods, without executing any refund. Takes the same request body as the refund endpoint and returns the per-payment-method allocations so you can preview a split-cart refund before committing.
Reauth Checkout Session: Re-authorizes the payment on a Checkout Session whose authorization has expired or been fully captured, creating a new payment intent so the funds can be captured again. Use amount_override to authorize a different amount than the session total; otherwise the remaining authorizable amount is used...
Refund Checkout Session: Refunds a captured Checkout Session, in whole or in part. Refund a total amount, specific line_items, or omit both to refund the full remaining amount; component amounts (tax, shipping, discount) can be supplied for accurate allocation. For split carts the refund is allocated across the eligible...
Resend Checkout Session Lomn: Resends existing LOMN (Letter of Medical Necessity) emails for a checkout session.
Create Coupon: Creates a coupon. Exactly one of amount_off or percent_off must be provided; supplying both, or neither, is rejected. When duration is repeating, duration_in_months is required.
List Coupons: Returns a list of your coupons. Optionally filter by name.
Create or update a customer: Creates a customer. This endpoint upserts by email: if a customer with the same email already exists, that customer is updated with the supplied values instead of a new one being created. A customer.created webhook event is fired only when a new customer is created (not on update). If checkout_session...
Delete a customer: Deletes the specified customer. This is a soft delete: the customer is marked as deleted and no longer appears in list or retrieve responses, but historical records that reference the customer (such as payment intents and checkout sessions) continue to resolve it.
List a customer's payment methods: Returns a list of payment methods attached to the specified customer, sorted by ID in descending order (most recently created first).
List customers: Returns a list of your customers, sorted by ID in descending order (most recently created first). Deleted customers are excluded.
Update a customer: Updates the specified customer. Only the fields you provide are changed; omitted fields are left unchanged.
Close Dispute: Closes a dispute, accepting it as lost and forfeiting the disputed funds.
Count Disputes: Returns the number of disputes that currently require a response.
Get Dispute: Retrieves the details of an existing dispute.
List Disputes: Returns a list of your disputes, most recent first.
Update Dispute: Updates the evidence on a dispute, and optionally submits it to the card network.
Retry Event: Redeliver an existing event to your webhook endpoints. The event is looked up by ID; a 404 is returned if no matching event exists.
Expanding Resources: Learn how to request expanded responses with additional information about related objects.
Cancel Export: Cancels an export, setting its status to cancelled. An export that has already completed cannot be cancelled; an already-cancelled export is returned unchanged.
Create Export: Creates an export and starts generating the requested CSV file asynchronously. The export is returned with status created and is then processed in the background; poll it until its status is completed before requesting a download URL.
Create Export Url: Generates a temporary, presigned URL for downloading the export's generated CSV file. The export must have a generated file available — typically once its status is completed. The returned URL expires after a short period, so request a fresh one when it lapses.
Get Export: Retrieves the details of an existing export, including its current status. Supply the unique export ID returned when the export was created.
List Exports: Returns a list of your exports, sorted with the most recently created exports first.
Create File: Uploads a file to Flex. The request must be a multipart/form-data upload containing a file part and a purpose part. The file must be a JPEG, PNG, or PDF no larger than 5 MB; PNGs using 16-bit depth or Adam7 interlacing are rejected. The uploaded file can then be referenced by ID elsewhere in the API.
List Files: Returns a list of your files, sorted by creation date with the most recently created files first. Pass purpose to filter to a single file purpose. Requires the files_read scope.
Retrieve File: Retrieves the details of an existing file. Supply the unique file ID that was returned when the file was uploaded. Requires the files_read scope.
Mark Invoice Uncollectible: Mark an invoice as uncollectible. This will stop automatic collection attempts and move the associated subscription to an unpaid state.
Send Receipt: Send a receipt to customer for the associated payment
Create Payment Link: Creates a payment link: a shareable URL that generates a checkout session each time a customer opens it. The mode is determined by line_items — it becomes subscription if any price is recurring, otherwise payment; pass mode=setup to save a payment method without a charge (setup mode requires...
Get Payment Link: Retrieves the details of an existing payment link, including its line items and applied discounts. If the link has no label yet, one is generated from its first line item's product and persisted before the link is returned.
List Payment Links: Returns a list of your payment links. Only active links are returned; archived (inactive) links are omitted. Results are ordered by ID descending. Supports cursor pagination via starting_after/ending_before; offset is deprecated. Line items and discounts are not expanded here — retrieve a single payment link to access that information.
Update Payment Link: Updates an existing payment link. Only the supplied fields are changed; omitted fields are left unchanged. The mutable fields are label, after_completion, and active — line items, discounts, and other parameters are fixed once the link is created. Set active to false to archive the link, w...
Create Price: Creates a new price. Supply product to attach the price to an existing product, or product_data to create a new product inline in the same request. A price is one-time unless you include recurring, in which case it bills on the given interval. Amounts are in the smallest currency unit (cents)...
Get Price: Retrieves the price with the given ID. Pass expand_product=true to inline the full Product object instead of just its ID. Resolves your own prices, and (if you belong to an organization) prices owned by a sibling account.
List Prices: Returns a list of your prices, sorted by price ID in descending order (most recently created first). By default only active prices are returned; pass active=false to list archived ones, or filter to a single product with product.
Update Price: Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged. Only description and active can be updated; the unit amount, currency, and recurring interval of a price are immutable. Setting active to false archives the price so it...
Create Product: Creates a new product. Flex automatically determines the product's HSA/FSA eligibility from the supplied name, description, identifiers, and URL; if it can't be resolved synchronously, the product is created with eligibility pending and classification continues in the background, after which a product.product_classification webhooks would be sent to notify you.
Get Product: Retrieves a product by ID. Resolves your own products, and (if you belong to an organization) products owned by a sibling account.
List Products: Returns a list of your products, sorted by creation date with the most recently created products appearing first. By default only active products are returned; pass active=false to list archived ones. You can also filter by client_reference_id or by metadata using metadata[key]=value query parameters.
Processing Status: Returns how many of the account's products are still awaiting automatic HSA/FSA eligibility classification, capped for bounded cost on very large catalogs. Backs the dashboard "Syncing products" banner; clients derive any time estimate from pending_classification themselves.
Update Product: Updates the specified product by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Updates never re-run HSA/FSA eligibility determination — eligibility is set when the product is created and only changes through review. Passing categories replaces the existing categories on the product.
Create Promo Code: Creates a promotion code referencing an existing coupon. If code is omitted, a unique code is generated automatically. The supplied code must be unique across your promotion codes.
List Promo Codes: Returns a list of your promotion codes. Optionally filter by active.
Update Promo Code: Updates a promotion code by its ID. Only active and metadata can be modified; the referenced coupon and the code are immutable.
Create Refund: Creates a refund for a previously succeeded payment intent and returns the resulting Refund.
Get Refund: Retrieves the details of an existing refund by its ID.
List Refunds: Returns a list of your refunds, most recent first.
Update Refund: Updates the reason and/or metadata of an existing refund. Only these two fields can be changed; the refund amount, status, and associated payment cannot be modified after creation. Supplied metadata keys are merged into any existing metadata.
Get Review: Retrieves the details of a fraud review.
List Reviews: Returns a list of your fraud reviews, newest-first.
Create Setup Intent: Creates a SetupIntent to collect a customer's payment method details for future off-session use.
Get Setup Intent: Retrieves the details of an existing SetupIntent.
List Setup Intents: Returns a list of SetupIntents, sorted by ID in descending order (most recent first).
Create Shipping Rate: Creates a new shipping rate. The rate is a fixed amount denominated in USD. New shipping rates are active by default.
List Shipping Rates: Returns a list of your shipping rates, most recent first. Pass active to return only active or only archived rates.
Update Shipping Rate: Updates the specified shipping rate. You can update active and metadata; both are overwritten with the values passed, and omitting metadata clears it. The shipping rate's display_name and amount are immutable.
Cancel Subscription: Cancels a customer's subscription. By default the subscription is canceled immediately; set cancel_at_period_end to true to keep it active until the end of the current billing period instead.
Get Refund Preview: Previews the prorated refund that would result from canceling a subscription. Runs the same validation as a real prorated refund but issues no refund and creates no records, so it is safe to call repeatedly. Returns the prorated amount available to refund, the amount paid on the latest invoice, the...
Get Subscription: Retrieves the subscription with the given ID. Use expand (or expand_customer) to inline related objects such as the customer, latest invoice, default payment method, or item prices.
List Subscriptions: Returns a list of your subscriptions, most recent first. Optionally filter by customer or status. Use expand (or expand_customer) to inline related objects such as the customer, latest invoice, or item prices.
Update Subscription: Updates an existing subscription. Any omitted field is left unchanged, and an empty request body is a no-op that simply returns the current subscription.
Reimbursement: Learn how to set up reimbursement integrations where consumers receive a Letter of Medical Necessity to file for reimbursement.
Integrating Flex with RevenueCat: Connect Flex with RevenueCat to sync subscription events, pass custom identifiers, and keep customer status up to date.
Auto-Tag Flex Shopify Orders: Automatically tag Flex orders in your Shopify admin so you can easily filter, organize, and review them alongside the rest of your orders.
How Flex Shopify Payments Work: Learn how the Flex Shopify payment app processes HSA/FSA payments and handles different cart eligibility scenarios.
Flex Shopify Payment App: Flex provides a Shopify payment app to make it easy to accept HSA/FSA payments in your Shopify store checkout flow.
Reconciliation: Understand money movement from Flex with your Shopify Store.
Shopify Subscriptions: How to add the Flex reimbursement block to your Shopify Thank You page so subscription customers can get HSA/FSA reimbursement through Flex.
Shopify Test Store: Learn how to set up test payments and run test transactions on your Shopify store with Flex.
Stripe Payouts & Identity Verification: How Flex uses Stripe for payouts, why Stripe asks for personal information like an SSN, and how to manage your payout details.
Test Mode: Flex's test mode allows you to test your integration without making real charges or payments.
Webhook Overview: Listen to events at your webhook endpoint to automatically trigger reactions.
Using Redirects Instead of Webhooks: Learn how to handle checkout completion using redirects instead of webhooks for simpler implementation and testing.
Verify Webhooks: Learn how to securely verify webhook signatures to ensure they originate from Flex.
Marketing HSA/FSA: Resources to help you succeed with Flex HSA/FSA payments
Brand & Messaging Hub: Approved copy, compliance guidance, and brand assets, all in one place. Reference this page before publishing any HSA/FSA messaging across any channel.
Brand Guidelines: Flex brand guidelines for merchants — logo usage, colors, typography, and co-branding rules.
Email & SMS: Templates and guidance for lifecycle marketers and CRM teams. Start here to announce HSA/FSA acceptance, add Flex to your flows, and drive conversion.
Launch Checklist: Your go-live plan. Follow these steps in order — no strategy needed, just execution.
Paid Media: This is the strategy and copy for performance marketers. Layer HSA/FSA messaging into your existing paid channels to drive conversion without increasing spend.
Results & Case Studies: Real results from Flex merchants across fitness, wellness, sleep, maternity, and more. Use these to build the case internally, set expectations, and see what's possible.
Social Media Templates: Ready-to-use templates for announcing HSA/FSA payments on social media.
Social & Influencers: Templates and guidance for social media managers and creator partnerships. Use these to announce HSA/FSA acceptance, build an evergreen social presence, and brief creators effectively.
Getting Started: Learn how to maximize the value of HSA/FSA payments after implementation.
Shopify Marketing App: Promote HSA/FSA eligibility on your Shopify store with badges, a dedicated landing page, and product eligibility synced directly from Flex.
Customer Support FAQs: Common questions about HSA/FSA payments, Letters of Medical Necessity, and reimbursements.
Homepage: Promote HSA/FSA acceptance with site banners and homepage spotlights.
Checkout & Inline Cart: Display HSA/FSA eligibility messaging in your cart and checkout pages.
Landing Page: Create a dedicated HSA/FSA landing page to educate customers and drive conversions.
Handle Stripe Radar reviews with Flex: Step-by-step guide to wiring up review webhooks, building an internal review queue, and testing the flow end-to-end.