# Synctera v1.0.0 - Table of Contents

> An unofficial, production-grade Elixir client for the Synctera Banking-as-a-Service API. Zero runtime dependencies, generated from Synctera's OpenAPI spec.

## Pages

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

## Modules

- [Synctera](Synctera.md): An unofficial, production-grade Elixir client for the Synctera
Banking-as-a-Service API.
- [Synctera.ACH](Synctera.ACH.md): Synctera 'ACH' endpoints.
- [Synctera.Accounts](Synctera.Accounts.md): Synctera 'Accounts' endpoints.
- [Synctera.Applications](Synctera.Applications.md): Synctera 'Applications' endpoints.
- [Synctera.Businesses](Synctera.Businesses.md): Synctera 'Businesses' endpoints.
- [Synctera.CardTransactionSimulations](Synctera.CardTransactionSimulations.md): Synctera 'Card Transaction Simulations' endpoints.
- [Synctera.CardWebhookSimulations](Synctera.CardWebhookSimulations.md): Synctera 'Card Webhook Simulations' endpoints.
- [Synctera.Cards](Synctera.Cards.md): Synctera 'Cards' endpoints.
- [Synctera.Client](Synctera.Client.md): Holds configuration for talking to the Synctera API. Construct one with
`new/1` and pass it as the first argument to every `Synctera.*` resource
function, per Elixir convention (cf. `Ecto.Repo`, `Req.Request`).

- [Synctera.Customers](Synctera.Customers.md): Synctera 'Customers' endpoints.
- [Synctera.DeviceInfo](Synctera.DeviceInfo.md): Synctera expects a `Customer-Device-Info` header (JSON-encoded) on requests
made "on behalf of" an end customer, or for internal batch operations
(docs: "Need to Know" -> Customer Device Fingerprinting). `customer_id`
must match the customer/business id referenced elsewhere in the request.

- [Synctera.DigitalWalletTokens](Synctera.DigitalWalletTokens.md): Synctera 'Digital Wallet Tokens' endpoints.
- [Synctera.Disclosures](Synctera.Disclosures.md): Synctera 'Disclosures' endpoints.
- [Synctera.DocumentsAlpha](Synctera.DocumentsAlpha.md): Synctera 'Documents (alpha)' endpoints.
- [Synctera.ExternalAccounts](Synctera.ExternalAccounts.md): Synctera 'External Accounts' endpoints.
- [Synctera.ExternalCardsAlpha](Synctera.ExternalCardsAlpha.md): Synctera 'External Cards (alpha)' endpoints.
- [Synctera.HTTP](Synctera.HTTP.md): Low-level request executor built on Erlang/OTP's built-in `:httpc` (part of
`:inets`) — no third-party HTTP client dependency required. Handles auth,
idempotency key resolution, device-info headers, retries with backoff, and
error mapping.

- [Synctera.Idempotency](Synctera.Idempotency.md): Synctera has two distinct idempotency behaviors (docs: "Need to Know" ->
Idempotency)
- [Synctera.InternalAccounts](Synctera.InternalAccounts.md): Synctera 'Internal Accounts' endpoints.
- [Synctera.JSON](Synctera.JSON.md): A small, dependency-free JSON encoder/decoder.
- [Synctera.KYCKYBVerifications](Synctera.KYCKYBVerifications.md): Synctera 'KYC/KYB Verifications' endpoints.
- [Synctera.KYCVerification](Synctera.KYCVerification.md): Synctera 'KYC Verification' endpoints.
- [Synctera.Monitoring](Synctera.Monitoring.md): Synctera 'Monitoring' endpoints.
- [Synctera.Pagination](Synctera.Pagination.md): Cursor-pagination helpers built on `Stream.resource/3` for lazy,
idiomatic-Elixir iteration over Synctera list endpoints, which return
`next_page_token` and accept it back as `page_token`.

- [Synctera.PaymentSchedules](Synctera.PaymentSchedules.md): Synctera 'PaymentSchedules' endpoints.
- [Synctera.Persons](Synctera.Persons.md): Synctera 'Persons' endpoints.
- [Synctera.Reconciliations](Synctera.Reconciliations.md): Synctera 'Reconciliations' endpoints.
- [Synctera.Relationships](Synctera.Relationships.md): Synctera 'Relationships' endpoints.
- [Synctera.RemoteCheckDepositBeta](Synctera.RemoteCheckDepositBeta.md): Synctera 'Remote Check Deposit (beta)' endpoints.
- [Synctera.Retry](Synctera.Retry.md): Retry policy for 429 and 5xx responses — the only statuses Synctera's docs
confirm are never served from their idempotency cache, and so are always
safe to retry without risking a duplicate side effect.

- [Synctera.SandboxWipeAlpha](Synctera.SandboxWipeAlpha.md): Synctera 'Sandbox Wipe (alpha)' endpoints.
- [Synctera.Statements](Synctera.Statements.md): Synctera 'Statements' endpoints.
- [Synctera.Transactions](Synctera.Transactions.md): Synctera 'Transactions' endpoints.
- [Synctera.Watchlist](Synctera.Watchlist.md): Synctera 'Watchlist' endpoints.
- [Synctera.Webhook](Synctera.Webhook.md): Verifies Synctera webhook deliveries, signed with HMAC-SHA256 over
`"#{timestamp}.#{body}"` (docs: Webhooks guide). Supports two signatures
during secret rotation and a configurable replay window.

- [Synctera.Webhooks](Synctera.Webhooks.md): Synctera 'Webhooks' endpoints.
- [Synctera.WiresAlpha](Synctera.WiresAlpha.md): Synctera 'Wires (alpha)' endpoints.

- Exceptions
  - [Synctera.Error](Synctera.Error.md): Raised/returned for non-2xx responses from the Synctera API.
  - [Synctera.UsageError](Synctera.UsageError.md): Raised for client-side programmer errors (e.g. missing a required
idempotency key on a ledger endpoint) — it never reaches the network.

  - [Synctera.WebhookSignatureError](Synctera.WebhookSignatureError.md): Raised by `Synctera.Webhook.verify!/1` when a webhook delivery's signature
is missing, malformed, expired, or does not match.

