Trace identifier for a Stripe Payout.
Surfaces the rail-specific trace ID that lets you reconcile a payout against
the recipient bank's settlement record. The status field is a clear
pattern-match target — your reconciliation code typically branches on whether
Stripe has obtained the trace ID yet.
case payout.trace_id do
%LatticeStripe.Payout.TraceId{status: "supported", value: trace} ->
reconcile(trace)
%LatticeStripe.Payout.TraceId{status: "pending"} ->
:wait_for_webhook
%LatticeStripe.Payout.TraceId{status: status} ->
{:unsupported, status}
endUnknown future fields from Stripe land in :extra per the F-001
forward-compatibility rule — upgrading the SDK will never silently drop data.
Stripe API Reference
See the Stripe Payout object — trace_id
for the full field reference.
Summary
Types
@type t() :: %LatticeStripe.Payout.TraceId{ extra: map(), status: String.t() | nil, value: String.t() | nil }
A Stripe Payout trace ID.
The status enum Stripe currently emits is one of
"supported" | "pending" | "unsupported" | "not_applicable", but it is typed
as String.t() so user pattern matches stay forward-compatible when Stripe
adds new values.