ClearBank.Types (ClearBank v1.0.0)

Copy Markdown View Source

Shared type definitions and helper guards used across clearbank.

Summary

Types

Account number — 8 digits

Monetary amount as a Decimal-compatible string, e.g. 1000.00

BIC / SWIFT code

ISO 4217 currency code, e.g. GBP, EUR, USD

ISO 8601 datetime string

IBAN string

Paginated response wrapper

Standard pagination params

Sort code — 6 digits, no dashes, e.g. 040004

UUID v4 string

Functions

Appends query params to a path, only if params is non-empty.

Converts a keyword list or map to a query string, dropping nil values.

Types

account_number()

@type account_number() :: String.t()

Account number — 8 digits

amount()

@type amount() :: String.t()

Monetary amount as a Decimal-compatible string, e.g. 1000.00

bic()

@type bic() :: String.t()

BIC / SWIFT code

currency_code()

@type currency_code() :: String.t()

ISO 4217 currency code, e.g. GBP, EUR, USD

datetime()

@type datetime() :: String.t()

ISO 8601 datetime string

iban()

@type iban() :: String.t()

IBAN string

paginated(t)

@type paginated(t) :: %{
  data: [t],
  total_count: non_neg_integer(),
  page_number: pos_integer(),
  page_size: pos_integer()
}

Paginated response wrapper

pagination_params()

@type pagination_params() :: %{
  optional(:page_number) => pos_integer(),
  optional(:page_size) => pos_integer()
}

Standard pagination params

sort_code()

@type sort_code() :: String.t()

Sort code — 6 digits, no dashes, e.g. 040004

uuid()

@type uuid() :: String.t()

UUID v4 string

Functions

build_path(path, params)

@spec build_path(String.t(), map() | keyword()) :: String.t()

Appends query params to a path, only if params is non-empty.

to_query(params)

@spec to_query(map() | keyword()) :: String.t()

Converts a keyword list or map to a query string, dropping nil values.