LatticeStripe.Quote (LatticeStripe v1.7.10)

Copy Markdown View Source

Operations on Stripe Quote objects.

Quotes model a proposal before it becomes billable downstream Stripe objects. LatticeStripe exposes the Stripe-shaped Quote resource surface directly: create and iterate on a draft, finalize it into an open quote, optionally inspect or download its PDF, then accept or cancel it with explicit verbs.

Lifecycle

draft --> (finalize) --> open --> (accept) --> accepted
    \                      \
     \                      (cancel) --> canceled
      \
       (cancel) --> canceled

Accepting a quote may create downstream billing objects such as an Invoice, Subscription, or SubscriptionSchedule. This module intentionally stops at the Stripe resource boundary and does not add application-level orchestration or prediction helpers.

Line-item surfaces

Quotes expose three different line-item views:

PDF access

pdf/3 returns raw PDF binary, not a %Quote{}. Stripe only generates PDFs for shareable/finalized states, so draft and canceled quote PDF requests may return 404.

Summary

Functions

Accepts an open quote.

Like accept/3 but raises on failure.

Cancels a draft or open quote.

Like cancel/3 but raises on failure.

Like create/3 but raises on failure.

Finalizes a draft quote and transitions it to open.

Lists Quotes with optional filters.

Like list/3 but raises on failure.

Lists the computed upfront-only line items for a Quote.

Lists the quoted-input line items for a Quote.

Downloads a Quote PDF as raw binary.

Like pdf/3 but raises on failure.

Retrieves a Quote by ID.

Like retrieve/3 but raises on failure.

Returns a lazy stream of Quotes matching the given filters.

Returns a lazy stream of computed upfront-only line items for a Quote.

Returns a lazy stream of quoted-input line items for a Quote.

Types

t()

@type t() :: %LatticeStripe.Quote{
  amount_subtotal: integer() | nil,
  amount_total: integer() | nil,
  application: String.t() | nil,
  application_fee_amount: integer() | nil,
  application_fee_percent: float() | integer() | nil,
  automatic_tax: map() | nil,
  collection_method: atom() | String.t() | nil,
  computed: LatticeStripe.Quote.Computed.t() | nil,
  created: integer() | nil,
  currency: String.t() | nil,
  customer: LatticeStripe.Customer.t() | String.t() | nil,
  default_tax_rates: list() | nil,
  description: String.t() | nil,
  discounts: list() | nil,
  expires_at: integer() | nil,
  extra: map(),
  footer: String.t() | nil,
  from_quote: map() | nil,
  header: String.t() | nil,
  id: String.t() | nil,
  invoice: LatticeStripe.Invoice.t() | String.t() | nil,
  invoice_settings: map() | nil,
  line_items: LatticeStripe.List.t() | nil,
  livemode: boolean() | nil,
  metadata: map() | nil,
  number: String.t() | nil,
  object: String.t(),
  on_behalf_of: String.t() | nil,
  status: atom() | String.t() | nil,
  status_transitions: LatticeStripe.Quote.StatusTransitions.t() | nil,
  subscription: LatticeStripe.Subscription.t() | String.t() | nil,
  subscription_data: map() | nil,
  subscription_schedule:
    LatticeStripe.SubscriptionSchedule.t() | String.t() | nil,
  test_clock: String.t() | nil,
  total_details: map() | nil,
  transfer_data: map() | nil
}

Functions

accept(client, id, opts \\ [])

@spec accept(LatticeStripe.Client.t(), String.t(), keyword()) ::
  {:ok, t()} | {:error, LatticeStripe.Error.t()}

Accepts an open quote.

Accepting a quote is a terminal lifecycle transition that may generate downstream Stripe billing objects such as an Invoice, Subscription, or SubscriptionSchedule.

accept!(client, id, opts \\ [])

@spec accept!(LatticeStripe.Client.t(), String.t(), keyword()) :: t()

Like accept/3 but raises on failure.

cancel(client, id, opts \\ [])

@spec cancel(LatticeStripe.Client.t(), String.t(), keyword()) ::
  {:ok, t()} | {:error, LatticeStripe.Error.t()}

Cancels a draft or open quote.

This is a terminal lifecycle transition. Stripe documents no request params for this endpoint, so the public API is intentionally parameterless apart from per-request opts.

cancel!(client, id, opts \\ [])

@spec cancel!(LatticeStripe.Client.t(), String.t(), keyword()) :: t()

Like cancel/3 but raises on failure.

create(client, params, opts \\ [])

@spec create(LatticeStripe.Client.t(), map(), keyword()) ::
  {:ok, t()} | {:error, LatticeStripe.Error.t()}

Creates a Quote.

create!(client, params, opts \\ [])

@spec create!(LatticeStripe.Client.t(), map(), keyword()) :: t()

Like create/3 but raises on failure.

finalize(client, id, params \\ %{}, opts \\ [])

@spec finalize(LatticeStripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, t()} | {:error, LatticeStripe.Error.t()}

Finalizes a draft quote and transitions it to open.

Stripe accepts optional finalize-time params, so this function preserves the raw request map instead of constraining it locally.

finalize!(client, id, params \\ %{}, opts \\ [])

@spec finalize!(LatticeStripe.Client.t(), String.t(), map(), keyword()) :: t()

Like finalize/4 but raises on failure.

from_map(map)

@spec from_map(map() | nil) :: t() | nil

list(client, params \\ %{}, opts \\ [])

@spec list(LatticeStripe.Client.t(), map(), keyword()) ::
  {:ok, LatticeStripe.Response.t()} | {:error, LatticeStripe.Error.t()}

Lists Quotes with optional filters.

list!(client, params \\ %{}, opts \\ [])

Like list/3 but raises on failure.

list_computed_upfront_line_items(client, id, params \\ %{}, opts \\ [])

@spec list_computed_upfront_line_items(
  LatticeStripe.Client.t(),
  String.t(),
  map(),
  keyword()
) ::
  {:ok, LatticeStripe.Response.t()} | {:error, LatticeStripe.Error.t()}

Lists the computed upfront-only line items for a Quote.

list_computed_upfront_line_items!(client, id, params \\ %{}, opts \\ [])

@spec list_computed_upfront_line_items!(
  LatticeStripe.Client.t(),
  String.t(),
  map(),
  keyword()
) ::
  LatticeStripe.Response.t()

Like list_computed_upfront_line_items/4 but raises on failure.

list_line_items(client, id, params \\ %{}, opts \\ [])

@spec list_line_items(LatticeStripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, LatticeStripe.Response.t()} | {:error, LatticeStripe.Error.t()}

Lists the quoted-input line items for a Quote.

list_line_items!(client, id, params \\ %{}, opts \\ [])

@spec list_line_items!(LatticeStripe.Client.t(), String.t(), map(), keyword()) ::
  LatticeStripe.Response.t()

Like list_line_items/4 but raises on failure.

pdf(client, id, opts \\ [])

@spec pdf(LatticeStripe.Client.t(), String.t(), keyword()) ::
  {:ok, binary()} | {:error, LatticeStripe.Error.t()}

Downloads a Quote PDF as raw binary.

This calls Stripe's binary PDF endpoint and unwraps the transport %Response{} into {:ok, binary} at the resource layer.

Stripe may return 404 for draft and canceled quotes because PDFs are only available for shareable/finalized states.

pdf!(client, id, opts \\ [])

@spec pdf!(LatticeStripe.Client.t(), String.t(), keyword()) :: binary()

Like pdf/3 but raises on failure.

retrieve(client, id, opts \\ [])

@spec retrieve(LatticeStripe.Client.t(), String.t(), keyword()) ::
  {:ok, t()} | {:error, LatticeStripe.Error.t()}

Retrieves a Quote by ID.

retrieve!(client, id, opts \\ [])

@spec retrieve!(LatticeStripe.Client.t(), String.t(), keyword()) :: t()

Like retrieve/3 but raises on failure.

stream!(client, params \\ %{}, opts \\ [])

@spec stream!(LatticeStripe.Client.t(), map(), keyword()) :: Enumerable.t()

Returns a lazy stream of Quotes matching the given filters.

stream_computed_upfront_line_items!(client, id, params \\ %{}, opts \\ [])

@spec stream_computed_upfront_line_items!(
  LatticeStripe.Client.t(),
  String.t(),
  map(),
  keyword()
) ::
  Enumerable.t()

Returns a lazy stream of computed upfront-only line items for a Quote.

stream_line_items!(client, id, params \\ %{}, opts \\ [])

@spec stream_line_items!(LatticeStripe.Client.t(), String.t(), map(), keyword()) ::
  Enumerable.t()

Returns a lazy stream of quoted-input line items for a Quote.

update(client, id, params, opts \\ [])

@spec update(LatticeStripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, t()} | {:error, LatticeStripe.Error.t()}

Updates a Quote by ID.

update!(client, id, params, opts \\ [])

@spec update!(LatticeStripe.Client.t(), String.t(), map(), keyword()) :: t()

Like update/4 but raises on failure.