Public entry points for configuring ExQuickbooks.
ExQuickbooks is a small Elixir client for the QuickBooks Online Accounting API. It focuses on a clear library surface: create a validated client, run OAuth flows, execute shared requests, and work with decoded QuickBooks maps.
Examples
iex> {:ok, %ExQuickbooks.Client{environment: :sandbox}} =
...> ExQuickbooks.new(
...> client_id: "client-id",
...> client_secret: "client-secret",
...> redirect_uri: "https://example.com/callback",
...> realm_id: "9130357992221046"
...> )
Summary
Functions
Builds a validated client for later QuickBooks requests.
Executes a shared QuickBooks request.
Builds a shared /v3/company/:realm_id/... request path.
Functions
@spec new(keyword()) :: {:ok, ExQuickbooks.Client.t()} | {:error, ExQuickbooks.Error.t()}
Builds a validated client for later QuickBooks requests.
@spec request(ExQuickbooks.Client.t(), ExQuickbooks.Request.t(), keyword()) :: {:ok, term()} | {:error, ExQuickbooks.Error.t()}
Executes a shared QuickBooks request.
@spec request_path( ExQuickbooks.Client.t(), [String.t() | atom() | integer()], keyword() ) :: String.t()
Builds a shared /v3/company/:realm_id/... request path.
Examples
iex> {:ok, client} =
...> ExQuickbooks.new(
...> client_id: "client-id",
...> client_secret: "client-secret",
...> redirect_uri: "https://example.com/callback",
...> realm_id: "9130357992221046",
...> minor_version: 75
...> )
iex> ExQuickbooks.request_path(client, ["customer"], query: [active: true])
"/v3/company/9130357992221046/customer?active=true&minorversion=75"