LatticeStripe.File (LatticeStripe v1.7.6)

Copy Markdown View Source

Represents a file uploaded to Stripe.

Files are created via multipart upload to files.stripe.com and used for dispute evidence, identity verification, and other purposes. Files are immutable after creation -- there is no update or delete operation.

Upload

binary = File.read!("evidence.pdf")
{:ok, file} = LatticeStripe.File.create(client, %{
  "purpose" => "dispute_evidence",
  "file" => binary,
  "filename" => "evidence.pdf"
})

Retrieve

{:ok, file} = LatticeStripe.File.retrieve(client, "file_abc123")

List with Auto-Pagination

LatticeStripe.File.stream!(client, %{"purpose" => "dispute_evidence"})
|> Enum.take(50)

Stripe API Reference

See the Stripe File API for the full object reference and available parameters.

Summary

Functions

Uploads a file to Stripe via multipart/form-data.

Lists files with optional filters.

Same as list/3 but raises on error.

Retrieves a file by ID.

Same as retrieve/3 but raises on error.

Returns a lazy stream of all files, auto-paginating as needed.

Types

t()

@type t() :: %LatticeStripe.File{
  created: integer() | nil,
  expires_at: integer() | nil,
  extra: map(),
  filename: String.t() | nil,
  id: String.t() | nil,
  links: LatticeStripe.List.t() | nil,
  object: String.t(),
  purpose: String.t() | nil,
  size: integer() | nil,
  title: String.t() | nil,
  type: String.t() | nil,
  url: String.t() | nil
}

Functions

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

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

Uploads a file to Stripe via multipart/form-data.

The params map must include "purpose" (string) and "file" (raw binary). Optionally include "filename" (defaults to "upload") and "file_link_data".

Examples

binary = File.read!("evidence.pdf")
LatticeStripe.File.create(client, %{
  "purpose" => "dispute_evidence",
  "file" => binary,
  "filename" => "evidence.pdf"
})

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

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

Same as create/3 but raises on error.

from_map(map)

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

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

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

Lists files with optional filters.

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

Same as list/3 but raises on error.

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

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

Retrieves a file by ID.

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

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

Same as retrieve/3 but raises on error.

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

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

Returns a lazy stream of all files, auto-paginating as needed.