# LatticeStripe v1.1.0 - Table of Contents A production-grade, idiomatic Elixir SDK for the Stripe API ## Pages - Guides - [Getting Started](getting-started.md) - [Client Configuration](client-configuration.md) - [Payments](payments.md) - [Checkout](checkout.md) - [Invoices](invoices.md) - [Billing Metering](metering.md) - [Subscriptions](subscriptions.md) - [Connect](connect.md) - [Connect Accounts](connect-accounts.md) - [Connect Money Movement](connect-money-movement.md) - [Customer Portal](customer-portal.md) - [Webhooks](webhooks.md) - [Error Handling](error-handling.md) - [Testing](testing.md) - [Telemetry](telemetry.md) - [API Stability](api_stability.md) - [Extending LatticeStripe](extending-lattice-stripe.md) - [LatticeStripe Cheatsheet](cheatsheet.md) - Changelog - [Changelog](changelog.md) ## Modules - [LatticeStripe.Coupon](LatticeStripe.Coupon.md): Operations on Stripe Coupon objects. - [LatticeStripe.Coupon.AppliesTo](LatticeStripe.Coupon.AppliesTo.md): Typed representation of a Coupon's `applies_to` restriction. - [LatticeStripe.Price](LatticeStripe.Price.md): Operations on Stripe Price objects. - [LatticeStripe.Price.Recurring](LatticeStripe.Price.Recurring.md): Typed representation of a Price's `recurring` nested object. - [LatticeStripe.Price.Tier](LatticeStripe.Price.Tier.md): Typed representation of a single tier in a tiered Price. - [LatticeStripe.Product](LatticeStripe.Product.md): Operations on Stripe Product objects. - [LatticeStripe.PromotionCode](LatticeStripe.PromotionCode.md): Operations on Stripe Promotion Code objects. - [LatticeStripe.TestHelpers.TestClock](LatticeStripe.TestHelpers.TestClock.md): Operations on Stripe [Test Clock](https://docs.stripe.com/api/test_clocks) objects. - Client & Configuration - [LatticeStripe](LatticeStripe.md): A production-grade, idiomatic Elixir SDK for the Stripe API. - [LatticeStripe.Client](LatticeStripe.Client.md): The main entry point for making Stripe API requests. - [LatticeStripe.Config](LatticeStripe.Config.md): Client configuration schema and validation. - [LatticeStripe.Error](LatticeStripe.Error.md): Structured error type for Stripe API errors. - [LatticeStripe.List](LatticeStripe.List.md): Represents a paginated list of Stripe objects. - [LatticeStripe.Request](LatticeStripe.Request.md): A Stripe API request as pure data. - [LatticeStripe.Response](LatticeStripe.Response.md): Wraps a successful Stripe API response with metadata. - Payments - [LatticeStripe.Customer](LatticeStripe.Customer.md): Operations on Stripe Customer objects. - [LatticeStripe.PaymentIntent](LatticeStripe.PaymentIntent.md): Operations on Stripe PaymentIntent objects. - [LatticeStripe.PaymentMethod](LatticeStripe.PaymentMethod.md): Operations on Stripe PaymentMethod objects. - [LatticeStripe.Refund](LatticeStripe.Refund.md): Operations on Stripe Refund objects. - [LatticeStripe.SetupIntent](LatticeStripe.SetupIntent.md): Operations on Stripe SetupIntent objects. - Checkout - [LatticeStripe.Checkout.LineItem](LatticeStripe.Checkout.LineItem.md): Represents a line item in a Checkout Session. - [LatticeStripe.Checkout.Session](LatticeStripe.Checkout.Session.md): Operations on Stripe Checkout Session objects. - Billing - [LatticeStripe.Invoice](LatticeStripe.Invoice.md): Operations on Stripe Invoice objects. - [LatticeStripe.Invoice.AutomaticTax](LatticeStripe.Invoice.AutomaticTax.md): Represents automatic tax calculation settings on a Stripe Invoice. - [LatticeStripe.Invoice.LineItem](LatticeStripe.Invoice.LineItem.md): Represents a line item on a Stripe Invoice. - [LatticeStripe.Invoice.StatusTransitions](LatticeStripe.Invoice.StatusTransitions.md): Tracks lifecycle Unix timestamps for a Stripe Invoice. - [LatticeStripe.InvoiceItem](LatticeStripe.InvoiceItem.md): Operations on Stripe InvoiceItem objects. - [LatticeStripe.InvoiceItem.Period](LatticeStripe.InvoiceItem.Period.md): Billing period for an InvoiceItem. - [LatticeStripe.Subscription](LatticeStripe.Subscription.md): Operations on Stripe Subscription objects. - [LatticeStripe.Subscription.CancellationDetails](LatticeStripe.Subscription.CancellationDetails.md): Represents the `cancellation_details` nested object on a Stripe Subscription. - [LatticeStripe.Subscription.PauseCollection](LatticeStripe.Subscription.PauseCollection.md): Represents the `pause_collection` nested object on a Stripe Subscription. - [LatticeStripe.Subscription.TrialSettings](LatticeStripe.Subscription.TrialSettings.md): Represents the `trial_settings` nested object on a Stripe Subscription. - [LatticeStripe.SubscriptionItem](LatticeStripe.SubscriptionItem.md): Operations on Stripe Subscription Item objects. - [LatticeStripe.SubscriptionSchedule](LatticeStripe.SubscriptionSchedule.md): Operations on Stripe Subscription Schedule objects. - [LatticeStripe.SubscriptionSchedule.AddInvoiceItem](LatticeStripe.SubscriptionSchedule.AddInvoiceItem.md): A one-off invoice item to add at the start of a SubscriptionSchedule phase. - [LatticeStripe.SubscriptionSchedule.CurrentPhase](LatticeStripe.SubscriptionSchedule.CurrentPhase.md): The current phase of a Subscription Schedule, or `nil` if the schedule has not yet started or has completed. - [LatticeStripe.SubscriptionSchedule.Phase](LatticeStripe.SubscriptionSchedule.Phase.md): A single phase of a Stripe Subscription Schedule. - [LatticeStripe.SubscriptionSchedule.PhaseItem](LatticeStripe.SubscriptionSchedule.PhaseItem.md): A single item inside a SubscriptionSchedule phase. - Customer Portal - [LatticeStripe.BillingPortal.Session](LatticeStripe.BillingPortal.Session.md): Operations on Stripe Billing Portal Session objects. - [LatticeStripe.BillingPortal.Session.FlowData](LatticeStripe.BillingPortal.Session.FlowData.md): The `flow` sub-object echoed back on a `LatticeStripe.BillingPortal.Session`. - [LatticeStripe.BillingPortal.Session.FlowData.AfterCompletion](LatticeStripe.BillingPortal.Session.FlowData.AfterCompletion.md): The `after_completion` sub-object of a `LatticeStripe.BillingPortal.Session.FlowData`. - [LatticeStripe.BillingPortal.Session.FlowData.SubscriptionCancel](LatticeStripe.BillingPortal.Session.FlowData.SubscriptionCancel.md): The `subscription_cancel` branch of a `LatticeStripe.BillingPortal.Session.FlowData`. - [LatticeStripe.BillingPortal.Session.FlowData.SubscriptionUpdate](LatticeStripe.BillingPortal.Session.FlowData.SubscriptionUpdate.md): The `subscription_update` branch of a `LatticeStripe.BillingPortal.Session.FlowData`. - [LatticeStripe.BillingPortal.Session.FlowData.SubscriptionUpdateConfirm](LatticeStripe.BillingPortal.Session.FlowData.SubscriptionUpdateConfirm.md): The `subscription_update_confirm` branch of a `LatticeStripe.BillingPortal.Session.FlowData`. - Billing Metering - [LatticeStripe.Billing.Meter](LatticeStripe.Billing.Meter.md): Stripe Billing Meter resource — usage-based billing schema. - [LatticeStripe.Billing.Meter.CustomerMapping](LatticeStripe.Billing.Meter.CustomerMapping.md): How a `LatticeStripe.Billing.MeterEvent` payload is mapped to a Stripe customer. Currently Stripe exposes `"by_id"` with `event_payload_key` naming the field inside `payload` that carries a `cus_*` customer ID. `:extra` captures any future mapping types Stripe adds. - [LatticeStripe.Billing.Meter.DefaultAggregation](LatticeStripe.Billing.Meter.DefaultAggregation.md): Aggregation formula for a `LatticeStripe.Billing.Meter`. - [LatticeStripe.Billing.Meter.StatusTransitions](LatticeStripe.Billing.Meter.StatusTransitions.md): Lifecycle timestamps for `LatticeStripe.Billing.Meter`. Currently only `deactivated_at` (Unix epoch seconds, nil when the meter is active). `:extra` captures any future transitions Stripe adds. - [LatticeStripe.Billing.Meter.ValueSettings](LatticeStripe.Billing.Meter.ValueSettings.md): Value-extraction settings for sum/last meters. `event_payload_key` names the field inside `MeterEvent.payload` from which Stripe reads the numeric value. Defaults server-side to `"value"` when omitted in `Meter.create/3`. - [LatticeStripe.Billing.MeterEvent](LatticeStripe.Billing.MeterEvent.md): Stripe Billing MeterEvent — hot-path usage reporting. Create-only; Stripe exposes no retrieve/list operations for events. See `guides/metering.md` for the full `AccrueLike.UsageReporter` recipe and the two-layer idempotency contract. - [LatticeStripe.Billing.MeterEventAdjustment](LatticeStripe.Billing.MeterEventAdjustment.md): Stripe Billing MeterEventAdjustment — correct a previously-reported `MeterEvent` within Stripe's 24-hour cancellation window. Create-only. - [LatticeStripe.Billing.MeterEventAdjustment.Cancel](LatticeStripe.Billing.MeterEventAdjustment.Cancel.md): The `cancel` sub-object of a `LatticeStripe.Billing.MeterEventAdjustment`. - Connect - [LatticeStripe.Account](LatticeStripe.Account.md): Operations on Stripe Connect Account objects. - [LatticeStripe.Account.BusinessProfile](LatticeStripe.Account.BusinessProfile.md): Represents the `business_profile` nested object on a Stripe Account. - [LatticeStripe.Account.Capability](LatticeStripe.Account.Capability.md): A single capability entry from `Account.capabilities`. - [LatticeStripe.Account.Company](LatticeStripe.Account.Company.md): Represents the `company` nested object on a Stripe Account. - [LatticeStripe.Account.Individual](LatticeStripe.Account.Individual.md): Represents the `individual` nested object on a Stripe Account. - [LatticeStripe.Account.Requirements](LatticeStripe.Account.Requirements.md): Represents the requirements nested object on a Stripe Account. - [LatticeStripe.Account.Settings](LatticeStripe.Account.Settings.md): Represents the `settings` nested object on a Stripe Account. - [LatticeStripe.Account.TosAcceptance](LatticeStripe.Account.TosAcceptance.md): Represents the `tos_acceptance` nested object on a Stripe Account. - [LatticeStripe.AccountLink](LatticeStripe.AccountLink.md): Operations on Stripe Connect Account Links — short-lived onboarding URLs. - [LatticeStripe.Balance](LatticeStripe.Balance.md): Stripe Balance singleton. - [LatticeStripe.Balance.Amount](LatticeStripe.Balance.Amount.md): A single currency-denominated amount in a Stripe Balance. - [LatticeStripe.Balance.SourceTypes](LatticeStripe.Balance.SourceTypes.md): Source-type breakdown of a `LatticeStripe.Balance.Amount`. - [LatticeStripe.BalanceTransaction](LatticeStripe.BalanceTransaction.md): Operations on Stripe BalanceTransaction objects — the server-side ledger entries that back every Charge, Refund, Transfer, Payout, and fee on a Stripe account. - [LatticeStripe.BalanceTransaction.FeeDetail](LatticeStripe.BalanceTransaction.FeeDetail.md): A single fee line on a Stripe `BalanceTransaction`. - [LatticeStripe.BankAccount](LatticeStripe.BankAccount.md): A Stripe bank account attached to a Connect connected account (external account). - [LatticeStripe.Card](LatticeStripe.Card.md): A Stripe debit card attached to a Connect connected account (external account). - [LatticeStripe.Charge](LatticeStripe.Charge.md): Retrieve-only access to Stripe Charge objects. - [LatticeStripe.ExternalAccount](LatticeStripe.ExternalAccount.md): Polymorphic dispatcher for external accounts on a Stripe Connect connected account. - [LatticeStripe.ExternalAccount.Unknown](LatticeStripe.ExternalAccount.Unknown.md): Forward-compatibility fallback for `LatticeStripe.ExternalAccount` responses whose `object` is neither `"bank_account"` nor `"card"`. Preserves the raw payload in `:extra` so user code does not crash on a new Stripe object type. - [LatticeStripe.LoginLink](LatticeStripe.LoginLink.md): Operations on Stripe Express Login Links — single-use dashboard return URLs for Express connected accounts. - [LatticeStripe.Payout](LatticeStripe.Payout.md): Operations on Stripe Payout objects. - [LatticeStripe.Payout.TraceId](LatticeStripe.Payout.TraceId.md): Trace identifier for a Stripe Payout. - [LatticeStripe.Transfer](LatticeStripe.Transfer.md): Operations on Stripe Transfer objects — the Connect separate-charge-and-transfer primitive. - [LatticeStripe.TransferReversal](LatticeStripe.TransferReversal.md): Operations on Stripe Transfer Reversal objects — standalone top-level module. - Webhooks - [LatticeStripe.Event](LatticeStripe.Event.md): Operations on Stripe Event objects. - [LatticeStripe.Webhook](LatticeStripe.Webhook.md): Stripe webhook signature verification and event construction. - [LatticeStripe.Webhook.Handler](LatticeStripe.Webhook.Handler.md): Behaviour for handling verified Stripe webhook events. - [LatticeStripe.Webhook.Plug](LatticeStripe.Webhook.Plug.md): Phoenix Plug for Stripe webhook signature verification and event dispatch. - [LatticeStripe.Webhook.SignatureVerificationError](LatticeStripe.Webhook.SignatureVerificationError.md): Exception raised when Stripe webhook signature verification fails. - Telemetry - [LatticeStripe.Telemetry](LatticeStripe.Telemetry.md): Telemetry integration for LatticeStripe. - Testing - [LatticeStripe.Testing](LatticeStripe.Testing.md): Test helpers for apps using LatticeStripe. - [LatticeStripe.Testing.TestClock](LatticeStripe.Testing.TestClock.md): ExUnit ergonomics for Stripe Test Clocks. - [LatticeStripe.Testing.TestClock.Owner](LatticeStripe.Testing.TestClock.Owner.md): GenServer-backed registry that owns per-test `LatticeStripe.Testing.TestClock` ids so integration tests can isolate time-travel state. - Internals - [LatticeStripe.Json](LatticeStripe.Json.md): JSON codec behaviour for LatticeStripe. - [LatticeStripe.RetryStrategy](LatticeStripe.RetryStrategy.md): Behaviour for controlling retry logic on failed Stripe API requests. - [LatticeStripe.Transport](LatticeStripe.Transport.md): HTTP transport behaviour for LatticeStripe. - Exceptions - [LatticeStripe.Testing.TestClockError](LatticeStripe.Testing.TestClockError.md): Exception raised by `LatticeStripe.Testing.TestClock` when a test-time precondition fails — e.g., `advance/2` is called with an unsupported unit (`:months`, `:years` on Elixir 1.15), or no client is bound at the call site. ## Mix Tasks - [mix lattice_stripe.test_clock.cleanup](Mix.Tasks.LatticeStripe.TestClock.Cleanup.md): Mix task backstop for cleaning up leaked test clocks.