---
title: "Get Payment Intent"
method: GET
path: "/v1/payment_intents/{id}"
tags: ["Payment Intents"]
---

# Get Payment Intent

`GET /v1/payment_intents/{id}`

Retrieves the details of a PaymentIntent that has previously been created.

## Path parameters

- `id` string, required

## Query parameters

- `expand` string — Comma-separated list of related objects to expand in the response.
- `expand_customer` boolean, nullable — If true, expands the customer object in the response.

## Response `200`

An envelope wrapping a single payment intent object.

- PaymentIntentBodyForPaymentIntent — An envelope wrapping a single payment intent object.
  - `payment_intent` PaymentIntent, required — 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.
          - `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.
    - `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.
          - 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 — recursive
        - `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`).
    - `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.
          - string
          - PaymentIntent — recursive
        - `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` ExpandableForInvoice — recursive
            - `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`).
    - `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.
          - `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.
    - `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.

## 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)
