# Sumup v1.0.0 - Table of Contents

> A production-grade, fully-typed Elixir client for the SumUp API (Checkouts, Readers, Customers, Transactions, Payouts, Receipts, Members, Memberships, Roles and Merchants) with telemetry, retries, cursor streaming, webhook handling, and RFC 9457 aware error handling.

## Pages

- [Sumup](readme.md)
- [Changelog](changelog.md)

## Modules

- [Sumup](Sumup.md): A production-grade Elixir client for the [SumUp API](https://developer.sumup.com/api).

- Resources
  - [Sumup.Checkouts](Sumup.Checkouts.md): Checkouts: create a payment intent, then process it with a card, saved
token, or an alternative payment method (Boleto, iDEAL, Bancontact,
Blik, Google Pay, Apple Pay). API version `v0.1` (`v0.2` for Apple Pay
sessions).
  - [Sumup.Customers](Sumup.Customers.md): Customers: a lightweight vault for storing payer identity and reusable
payment instruments. API version `v0.1`.

  - [Sumup.Members](Sumup.Members.md): Members: user accounts under a merchant, including virtual/managed
users. API version `v0.1`.

  - [Sumup.Memberships](Sumup.Memberships.md): Memberships: lists the *currently authenticated user's* memberships
across merchants/organizations, optionally filtered by resource type,
role, status, or parent. API version `v0.1`.
  - [Sumup.Merchants](Sumup.Merchants.md): Merchants: legal entity and KYC profile data. API version `v1`.
  - [Sumup.PaymentInstruments](Sumup.PaymentInstruments.md): Payment instruments: tokenized cards saved against a `Sumup.Customer`,
created as a side effect of a `Sumup.Checkouts.process/3` call with
`purpose: "SETUP"` (or a regular charge that opts to save the method).
API version `v0.1`.

  - [Sumup.Payouts](Sumup.Payouts.md): Payouts: a date-ranged report of funds settled to (or deducted from) a
merchant's bank account. API version `v1.0`.
  - [Sumup.Readers](Sumup.Readers.md): Readers: pair, manage, and push payments to physical SumUp Solo card
readers. API version `v0.1`.
  - [Sumup.Receipts](Sumup.Receipts.md): Receipts: detailed, receipt-formatted view of a transaction, keyed by
transaction id plus the merchant id (`mid`). API version `v1.1`.

  - [Sumup.Roles](Sumup.Roles.md): Roles: role definitions (built-in and custom) grouping permissions,
assignable to `Sumup.Member`s. API version `v0.1`.

  - [Sumup.Transactions](Sumup.Transactions.md): Transactions: read-heavy history and lookup endpoints (API version
`v2.1`), plus refunds (API version `v1.0`).

- Schemas
  - [Sumup.Checkout](Sumup.Checkout.md): A SumUp Checkout: the core online-payment primitive. Created with an
amount/currency/reference, then processed with a payment method (card,
token, or an alternative payment method such as iDEAL/Bancontact/Blik).

  - [Sumup.Customer](Sumup.Customer.md): A vaulted SumUp customer, used to store payment instruments for later reuse.
  - [Sumup.Member](Sumup.Member.md): A user account under a merchant (id prefixed `mem_`).
  - [Sumup.Membership](Sumup.Membership.md): A membership relation between the currently authenticated user and a
resource (typically a merchant or organization), including the roles
and effective permissions granted there.

  - [Sumup.Merchant](Sumup.Merchant.md): A merchant's legal entity profile: company details, business profile,
and locale/currency defaults.
  - [Sumup.PaymentInstrument](Sumup.PaymentInstrument.md): A tokenized, reusable payment method saved against a `Sumup.Customer`.
  - [Sumup.Payout](Sumup.Payout.md): A single payout (or payout-adjusting) entry in a merchant's financial report.
  - [Sumup.Reader](Sumup.Reader.md): A SumUp Solo card reader (id prefixed `rdr_`), paired to a merchant.

  - [Sumup.ReaderStatus](Sumup.ReaderStatus.md): Live device status for a paired reader (battery, firmware, connectivity).
  - [Sumup.Receipt](Sumup.Receipt.md): A detailed, printable/emailable receipt for a transaction.
  - [Sumup.Role](Sumup.Role.md): A role definition (built-in or custom), grouping a set of permissions assignable to members.
  - [Sumup.Transaction](Sumup.Transaction.md): A single SumUp transaction (card-present, online, or refund).

- Webhooks
  - [Sumup.WebhookEvent](Sumup.WebhookEvent.md): A decoded SumUp webhook payload.
  - [Sumup.Webhooks](Sumup.Webhooks.md): Handling for SumUp's online-payments webhooks.

- Support
  - [Sumup.Client](Sumup.Client.md): Low-level HTTP transport shared by every `Sumup.*` resource module.
  - [Sumup.Config](Sumup.Config.md): Validated configuration for a `Sumup` client.
  - [Sumup.Error](Sumup.Error.md): Normalized representation of every error the SumUp API can return.
  - [Sumup.Money](Sumup.Money.md): SumUp represents money in two different, incompatible shapes depending on
which API generation you're calling
  - [Sumup.Money.Float](Sumup.Money.Float.md): Money as represented by SumUp's legacy resources (Checkouts, Customers'
payment instruments, Transactions, Payouts): a decimal **major-unit**
float plus an ISO 4217 currency code, e.g. `%{"amount" => 10.5,
"currency" => "EUR"}`.
  - [Sumup.Money.MinorUnit](Sumup.Money.MinorUnit.md): Money as represented by SumUp's newer Readers API: an integer `value` in
minor units, an explicit `minor_unit` (decimal exponent), and an ISO 4217
currency code, e.g. `%{"value" => 5033, "minor_unit" => 2, "currency" =>
"EUR"}` for €50.33.
  - [Sumup.Pagination](Sumup.Pagination.md): Generic lazy pagination built on `Stream.resource/3`, used by every
resource module that exposes a `list_all/2`-style function (e.g.
`Sumup.Transactions.list_all/2`, `Sumup.Members.list_all/2`).
  - [Sumup.RequestError](Sumup.RequestError.md): `Exception` wrapper around `Sumup.Error`, raised by bang (`!`) functions
and by `Sumup.Pagination.stream/2` (since `Enumerable`/`Stream.resource/3`
can only propagate failures by raising).

  - [Sumup.Telemetry](Sumup.Telemetry.md): `Sumup` instruments every HTTP call with
[`:telemetry`](https://hexdocs.pm/telemetry) spans (default prefix
`[:sumup, :request]`, configurable via `Sumup.Config.t/0`'s
`:telemetry_prefix`).

