# tipalti_client v1.0.0 - Table of Contents > A complete, production-grade Elixir client for the Tipalti API surface: the modern OAuth2 REST API, the legacy HMAC-signed SOAP Payee/Payer API, and the Procurement REST API, with pagination, retries, telemetry, and IPN webhook support. ## Pages - [Tipalti](readme.md) - [Changelog](changelog.md) - [LICENSE](license.md) ## Modules - [Tipalti](Tipalti.md): A production-grade Elixir client for the full Tipalti API surface. - [Tipalti.HTTP](Tipalti.HTTP.md): Minimal HTTP transport used by every Tipalti API family. - REST - [Tipalti.Auth.TokenServer](Tipalti.Auth.TokenServer.md): Caches an OAuth 2.0 client-credentials access token for the modern REST API and refreshes it automatically shortly before it expires. - [Tipalti.Invoices](Tipalti.Invoices.md): Modern REST API — invoice/bill submission and management. See the caveat in `Tipalti.Payees` about endpoint-shape assumptions; the same applies here. - [Tipalti.Payees](Tipalti.Payees.md): Modern REST API — payee onboarding and management. - [Tipalti.Payments](Tipalti.Payments.md): Modern REST API — mass payout initiation and tracking. See the caveat in `Tipalti.Payees` about endpoint-shape assumptions; the same applies here. - SOAP - [Tipalti.SOAP.Client](Tipalti.SOAP.Client.md): Generic engine behind `Tipalti.SOAP.Payee` and `Tipalti.SOAP.Payer`. - [Tipalti.SOAP.Payee](Tipalti.SOAP.Payee.md): Legacy SOAP API — Payee Functions (`PayeeFunctions.asmx`). - [Tipalti.SOAP.Payer](Tipalti.SOAP.Payer.md): Legacy SOAP API — Payer Functions (`PayerFunctions.asmx`). - [Tipalti.SOAP.Signature](Tipalti.SOAP.Signature.md): Implements Tipalti's SOAP API request signing scheme. - Procurement - [Tipalti.Procurement.Employees](Tipalti.Procurement.Employees.md): Procurement REST API — bulk employee import via CSV. - [Tipalti.Procurement.PurchaseOrders](Tipalti.Procurement.PurchaseOrders.md): Procurement REST API — purchase order sync. - Support - [Tipalti.Client](Tipalti.Client.md): Shared JSON/REST request helper used by `Tipalti.Payees`, `Tipalti.Invoices`, `Tipalti.Payments`, and the `Tipalti.Procurement.*` modules. - [Tipalti.Config](Tipalti.Config.md): Holds credentials and connection settings for all three Tipalti API families. Build one with `new/1` and pass it as the first argument to every `Tipalti.*` function. - [Tipalti.Error](Tipalti.Error.md): Base exception raised by every `!` function in this package and returned (unraised, as the error element of an `{:error, exception}` tuple) by every non-bang function. - [Tipalti.Pagination](Tipalti.Pagination.md): Builds lazy `Stream`s over paginated list endpoints so callers can `Enum.take/2`, pipe into `Enum.reduce/3`, etc. without manually tracking page cursors. - [Tipalti.RateLimiter](Tipalti.RateLimiter.md): An optional, self-contained token-bucket rate limiter. - [Tipalti.Telemetry](Tipalti.Telemetry.md): Documents the `:telemetry` events this package emits. There's nothing to call here — attach your own handler with `:telemetry.attach/4` or `:telemetry.attach_many/4`. - [Tipalti.Webhook](Tipalti.Webhook.md): Parses Tipalti IPN (Instant Payment Notification) callbacks. - Exceptions - [Tipalti.APIError](Tipalti.APIError.md): Raised when the API responds with a well-formed error payload. - [Tipalti.AuthenticationError](Tipalti.AuthenticationError.md): Raised when credentials are missing, invalid, or an OAuth2 token could not be obtained/refreshed. - [Tipalti.NetworkError](Tipalti.NetworkError.md): Raised when a request fails at the transport level after retries are exhausted. - [Tipalti.RateLimitError](Tipalti.RateLimitError.md): Raised on HTTP 429 or a Procurement API rate-limit rejection. - [Tipalti.SOAPFaultError](Tipalti.SOAPFaultError.md): Raised when the SOAP API returns a `` element. - [Tipalti.ValidationError](Tipalti.ValidationError.md): Raised for locally-detected or server-rejected malformed input.