circle-0.1.0.0: Circle API client for Haskell
Copyright(c) Dylan Martin 2022
Maintainerdmarticus@gmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Circle.Types

Description

Synopsis

Documentation

newtype ApiToken Source #

Token type used for HTTP Bearer authentication.

Constructors

ApiToken 

Instances

Instances details
Eq ApiToken Source # 
Instance details

Defined in Circle.Types

Read ApiToken Source # 
Instance details

Defined in Circle.Types

Show ApiToken Source # 
Instance details

Defined in Circle.Types

data CircleAPIRequest a b c Source #

Type to represent the 3 main components (method, endpoint, and params) needed to call Circle's API.

Constructors

CircleAPIRequest 

Fields

Instances

Instances details
Show (CircleAPIRequest a b c) Source # 
Instance details

Defined in Circle.Types

mkCircleAPIRequest :: Method -> Text -> Params TupleBS8 ByteString -> CircleAPIRequest a b c Source #

Create a CircleAPIRequest

type family CircleRequest a :: * Source #

Instances

Instances details
type CircleRequest WalletsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest WalletRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest ReturnsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest PaymentIntentsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest PaymentIntentRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest ReversalsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest MockChargebackRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest ChargebackRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest ChargebacksRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SettlementsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SettlementRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SEPAInstructionsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SEPAAccountRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest MockAccountRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest ACHBankAccountRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest CardRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest CardsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest OnChainAddressRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest OnChainTransfersRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest OnChainTransferRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest PaymentsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest PaymentRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest WireInstructionsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest WireAccountsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest WireAccountRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SignetBankInstructionsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SignetBankAccountsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SignetBankAccountRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SENInstructionsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SENAccountsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SENAccountRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest MockPaymentRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest DepositsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest RecipientAddressRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest RecipientAddressesRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest DepositAddressRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest DepositAddressesRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest TransferRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest TransfersRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SubscriptionRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest SubscriptionsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest StablecoinsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest ChannelsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest EncryptionRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest ConfigurationRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest PayoutsRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest PayoutRequest Source # 
Instance details

Defined in Circle.Types

type CircleRequest BalanceRequest Source # 
Instance details

Defined in Circle.Types

data CircleError Source #

CircleErrors have contain both the error reason (parseError) and the full error response body as a ByteString.

Constructors

CircleError 

Instances

Instances details
Show CircleError Source # 
Instance details

Defined in Circle.Types

data CircleResponseBody a Source #

The CircleResponseBody will have Nothing for the circleResponseCode and circleResponseMessage if the request succeeds, and Nothing for the circleResponseData if the request fails.

Instances

Instances details
Eq a => Eq (CircleResponseBody a) Source # 
Instance details

Defined in Circle.Types

Show a => Show (CircleResponseBody a) Source # 
Instance details

Defined in Circle.Types

FromJSON a => FromJSON (CircleResponseBody a) Source # 
Instance details

Defined in Circle.Types

type Host = Text Source #

Either production or sandbox API host

data CircleHost Source #

Instances

Instances details
Eq CircleHost Source # 
Instance details

Defined in Circle.Types

Show CircleHost Source # 
Instance details

Defined in Circle.Types

data CircleConfig Source #

Constructors

CircleConfig 

Fields

Instances

Instances details
Eq CircleConfig Source # 
Instance details

Defined in Circle.Types

Show CircleConfig Source # 
Instance details

Defined in Circle.Types

credentialsEnv :: Maybe String -> IO ApiToken Source #

Creates an API token using a secrete stored at $CIRCLE_API_KEY (the default key for storing the Circle secret)

prodEnvConfig :: Maybe String -> IO CircleConfig Source #

Helper method for instantiating a Circle config that calls the production endpoint: https://api.circle.com/v1/ Example usage: @ import Circle.Client import Circle.Types import Network.HTTP.Client (newManager) import Network.HTTP.Client.TLS (tlsManagerSettings)

main :: IO () main = do manager <- newManager tlsManagerSettings config <- prodEnvConfig "CIRCLE_API_KEY" result <- circle config manager getConfigurationInfo case result of Right CircleResponseBody b -> print bs Left CircleError e -> print e @

sandboxEnvConfig :: Maybe String -> IO CircleConfig Source #

Helper method for instantiating a Circle config that calls the production endpoint: https://api-sandbox.circle.com/v1/ Example usage: @ import Circle.Client import Circle.Types import Network.HTTP.Client (newManager) import Network.HTTP.Client.TLS (tlsManagerSettings)

main :: IO () main = do manager <- newManager tlsManagerSettings config <- sandboxEnvConfig "CIRCLE_API_KEY" result <- circle config manager getConfigurationInfo case result of Right CircleResponseBody b -> print bs Left CircleError e -> print e @

newtype Query Source #

Constructors

Query 

Fields

Instances

Instances details
Eq Query Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: Query -> Query -> Bool #

(/=) :: Query -> Query -> Bool #

Show Query Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> Query -> ShowS #

show :: Query -> String #

showList :: [Query] -> ShowS #

newtype Body Source #

Constructors

Body 

Fields

Instances

Instances details
Eq Body Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: Body -> Body -> Bool #

(/=) :: Body -> Body -> Bool #

Show Body Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> Body -> ShowS #

show :: Body -> String #

showList :: [Body] -> ShowS #

data Params b c Source #

Parameters for each request which include both the query and the body of a request

Constructors

Params 

Instances

Instances details
Show (Params b c) Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> Params b c -> ShowS #

show :: Params b c -> String #

showList :: [Params b c] -> ShowS #

type TupleBS8 = (ByteString, ByteString) Source #

Type alias for query parameters

class ToCircleParam param where Source #

Convert a parameter to a key/value

Methods

toCircleParam :: param -> Params TupleBS8 c -> Params TupleBS8 c Source #

Instances

Instances details
ToCircleParam ReturnIdentitiesQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam DestinationWalletIdQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam SourceWalletIdQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam WalletIdQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam PaymentIntentContextQueryParams Source # 
Instance details

Defined in Circle.Types

ToCircleParam PaymentStatusQueryParams Source # 
Instance details

Defined in Circle.Types

ToCircleParam PaymentIdQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam PaymentIntentIdQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam SettlementIdQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam SourceQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam CurrencyQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam TypeQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam DestinationQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam StatusQueryParams Source # 
Instance details

Defined in Circle.Types

ToCircleParam PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam ToQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam FromQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam PaginationQueryParams Source #

Circle has some BS pagination where they let users supply some canonical collection ID, and then this pagination rule will return n entries before OR after that page, where n is controlled by the pageSize param. This type exists to prevent callers from providing both params, which would error out

Instance details

Defined in Circle.Types

class ToCircleParam param => CircleHasParam request param Source #

Instances

Instances details
CircleHasParam WalletsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam WalletsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam WalletsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam WalletsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReturnsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReturnsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReturnsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReturnsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest PaymentIntentContextQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest PaymentStatusQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReversalsRequest PaymentStatusQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReversalsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReversalsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReversalsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReversalsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam ChargebacksRequest PaymentIdQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ChargebacksRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ChargebacksRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ChargebacksRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ChargebacksRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam SettlementsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam SettlementsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam SettlementsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam SettlementsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam CardsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam CardsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest ReturnIdentitiesQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest DestinationWalletIdQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest SourceWalletIdQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest WalletIdQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransferRequest ReturnIdentitiesQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest PaymentStatusQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest PaymentIntentIdQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest SettlementIdQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest SourceQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest TypeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest DestinationQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam WireInstructionsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam DepositsRequest TypeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam DepositsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam DepositsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam DepositsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam DepositsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam RecipientAddressesRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam RecipientAddressesRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam RecipientAddressesRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam RecipientAddressesRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransferRequest ReturnIdentitiesQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest ReturnIdentitiesQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest DestinationWalletIdQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest SourceWalletIdQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest WalletIdQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest TypeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest DestinationQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest StatusQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

(-&-) :: CircleHasParam r param => CircleAPIRequest r b c -> param -> CircleAPIRequest r b c Source #

Supports adding an optional query parameter. Example usage: @ import Circle.Client import Circle.Types import Network.HTTP.Client (newManager) import Network.HTTP.Client.TLS (tlsManagerSettings)

main :: IO () main = do manager <- newManager tlsManagerSettings config <- sandboxEnvConfig "CIRCLE_API_KEY" result <- circle config manager listAllBalances -&- PaginationQueryParams (PageBefore "a8899b8e-782a-4526-b674-0efe1e04526d") case result of Right CircleResponseBody b -> print bs Left CircleError e -> print e @

newtype PaginationQueryParams Source #

Instances

Instances details
Eq PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

Show PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

ToCircleParam PaginationQueryParams Source #

Circle has some BS pagination where they let users supply some canonical collection ID, and then this pagination rule will return n entries before OR after that page, where n is controlled by the pageSize param. This type exists to prevent callers from providing both params, which would error out

Instance details

Defined in Circle.Types

CircleHasParam WalletsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReturnsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReversalsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam ChargebacksRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam SettlementsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam CardsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam WireInstructionsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam DepositsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam RecipientAddressesRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest PaginationQueryParams Source # 
Instance details

Defined in Circle.Types

data PaginationQueryParam Source #

Depending on which endpoint is being called, the IDs after the PageBefore and PageAfter params could either be UUIDs or non-UUIDs. Let's just keep them as text for now. TODO maybe improve this one day.

Constructors

PageBefore !Text 
PageAfter !Text 

newtype FromQueryParam Source #

Constructors

FromQueryParam 

Instances

Instances details
Eq FromQueryParam Source # 
Instance details

Defined in Circle.Types

Show FromQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam WalletsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReturnsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReversalsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ChargebacksRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam SettlementsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam DepositsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam RecipientAddressesRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest FromQueryParam Source # 
Instance details

Defined in Circle.Types

newtype ToQueryParam Source #

Constructors

ToQueryParam 

Instances

Instances details
Eq ToQueryParam Source # 
Instance details

Defined in Circle.Types

Show ToQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam WalletsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReturnsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReversalsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ChargebacksRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam SettlementsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam DepositsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam RecipientAddressesRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest ToQueryParam Source # 
Instance details

Defined in Circle.Types

newtype PageSizeQueryParam Source #

Instances

Instances details
Eq PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

Show PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

ToCircleParam PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam WalletsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReturnsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentIntentsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ReversalsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam ChargebacksRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam SettlementsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam CardsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam OnChainTransfersRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PaymentsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam DepositsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam RecipientAddressesRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam TransfersRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

CircleHasParam PayoutsRequest PageSizeQueryParam Source # 
Instance details

Defined in Circle.Types

data BalanceResponseBody Source #

Response body for the "businessAccount/balances" and "/balances" endpoints

Instances

Instances details
Eq BalanceResponseBody Source # 
Instance details

Defined in Circle.Types

Show BalanceResponseBody Source # 
Instance details

Defined in Circle.Types

Generic BalanceResponseBody Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep BalanceResponseBody :: Type -> Type #

ToJSON BalanceResponseBody Source # 
Instance details

Defined in Circle.Types

FromJSON BalanceResponseBody Source # 
Instance details

Defined in Circle.Types

HasCodec BalanceResponseBody Source # 
Instance details

Defined in Circle.Types

type Rep BalanceResponseBody Source # 
Instance details

Defined in Circle.Types

type Rep BalanceResponseBody = D1 ('MetaData "BalanceResponseBody" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "BalanceResponseBody" 'PrefixI 'True) (S1 ('MetaSel ('Just "balanceResponseBodyAvailable") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [MoneyAmount]) :*: S1 ('MetaSel ('Just "balanceResponseBodyUnsettled") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [MoneyAmount])))

data PayoutResponseBody Source #

Response body for methods that call "businessAccount/payouts" or "payouts" endpoints

data PayoutReturnResponseBody Source #

Response body for methods that call the "returns" endpoint

newtype PGPKey Source #

Constructors

PGPKey 

Fields

Instances

Instances details
Eq PGPKey Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: PGPKey -> PGPKey -> Bool #

(/=) :: PGPKey -> PGPKey -> Bool #

Show PGPKey Source # 
Instance details

Defined in Circle.Types

ToJSON PGPKey Source # 
Instance details

Defined in Circle.Types

FromJSON PGPKey Source # 
Instance details

Defined in Circle.Types

HasCodec PGPKey Source # 
Instance details

Defined in Circle.Types

data Channel Source #

Instances

Instances details
Eq Channel Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: Channel -> Channel -> Bool #

(/=) :: Channel -> Channel -> Bool #

Show Channel Source # 
Instance details

Defined in Circle.Types

ToJSON Channel Source # 
Instance details

Defined in Circle.Types

FromJSON Channel Source # 
Instance details

Defined in Circle.Types

HasCodec Channel Source # 
Instance details

Defined in Circle.Types

data Chain Source #

Constructors

ALGO 
ARB 
AVAX 
ChainBTC 
ChainETH 
FLOW 
HBAR 
MATIC 
NEAR 
OP 
SOL 
TRX 
XLM 

Instances

Instances details
Eq Chain Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: Chain -> Chain -> Bool #

(/=) :: Chain -> Chain -> Bool #

Show Chain Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> Chain -> ShowS #

show :: Chain -> String #

showList :: [Chain] -> ShowS #

ToJSON Chain Source # 
Instance details

Defined in Circle.Types

FromJSON Chain Source # 
Instance details

Defined in Circle.Types

HasCodec Chain Source # 
Instance details

Defined in Circle.Types

data Stablecoin Source #

Constructors

USDC 
EUROC 
USDT 

data BusinessTransferRequestBody Source #

Request body for creating a new business account transfer

data Identity Source #

Instances

Instances details
Eq Identity Source # 
Instance details

Defined in Circle.Types

Show Identity Source # 
Instance details

Defined in Circle.Types

ToJSON Identity Source # 
Instance details

Defined in Circle.Types

FromJSON Identity Source # 
Instance details

Defined in Circle.Types

HasCodec Identity Source # 
Instance details

Defined in Circle.Types

data DepositAddressResponseBody Source #

Response body for methods that call the "businessAccount/wallets/addresses/deposit" endpoint

data DepositAddressRequestBody Source #

Request body for creating a new deposit address

data RecipientAddressResponseBody Source #

Response body for methods that call the "businessAccount/wallets/addresses/recipient" endpoint

data RecipientAddressRequestBody Source #

Request body for creating a new recipient address

data DepositResponseBody Source #

Response body for methods that call the "businessAccount/deposits" endpoint

data MockPaymentResponseBody Source #

Response body for methods that call the "mock/payments/*" endpoint

data MockSenOrWirePaymentRequestBody Source #

Request body to create a mock SEN or Wire payment (in the sandbox only).

data MockSEPAPaymentRequestBody Source #

Request body to create a mock SEPA payment (in the sandbox only).

data SENAccountResponseBody Source #

Response body for methods that call the "businessAccount/banks/sen" endpoint

data SENInstructionsResponseData Source #

Instances

Instances details
Eq SENInstructionsResponseData Source # 
Instance details

Defined in Circle.Types

Show SENInstructionsResponseData Source # 
Instance details

Defined in Circle.Types

Generic SENInstructionsResponseData Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep SENInstructionsResponseData :: Type -> Type #

ToJSON SENInstructionsResponseData Source # 
Instance details

Defined in Circle.Types

FromJSON SENInstructionsResponseData Source # 
Instance details

Defined in Circle.Types

HasCodec SENInstructionsResponseData Source # 
Instance details

Defined in Circle.Types

type Rep SENInstructionsResponseData Source # 
Instance details

Defined in Circle.Types

type Rep SENInstructionsResponseData = D1 ('MetaData "SENInstructionsResponseData" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "SENInstructionsResponseData" 'PrefixI 'True) (S1 ('MetaSel ('Just "senInstructionsResponseDataTrackingRef") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TrackingReference) :*: (S1 ('MetaSel ('Just "senInstructionsResponseDataAccountNumber") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AccountNumber) :*: S1 ('MetaSel ('Just "senInstructionsResponseDataCurrency") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SupportedCurrencies))))

data SignetBankAccountRequestBody Source #

Request body to create Signet Bank bank account.

data SignetBankAccountResponseData Source #

Response body for methods that call the "businessAccount/banks/signet" endpoint

data SignetBankInstructionsResponseData Source #

data WireAccountRequestBody Source #

Request body to create a wire account. Sum type because this endpoint supports several different types of wire accounts.

data USBankAccountRequestBody Source #

data NonIBANBankAccountRequestBody Source #

data WireInstructionsResponseData Source #

Response body for getWireAccountInstructions

data WireAccountResponseBody Source #

Response body for methods that call the "/wires" or "businessAccount/wires" endpoints

data CreatePaymentRequestBody Source #

Request body to create any kind of payment.

newtype SessionId Source #

Constructors

SessionId 

Fields

Instances

Instances details
Eq SessionId Source # 
Instance details

Defined in Circle.Types

Show SessionId Source # 
Instance details

Defined in Circle.Types

ToJSON SessionId Source # 
Instance details

Defined in Circle.Types

FromJSON SessionId Source # 
Instance details

Defined in Circle.Types

HasCodec SessionId Source # 
Instance details

Defined in Circle.Types

newtype IPAddress Source #

Constructors

IPAddress 

Fields

Instances

Instances details
Eq IPAddress Source # 
Instance details

Defined in Circle.Types

Show IPAddress Source # 
Instance details

Defined in Circle.Types

ToJSON IPAddress Source # 
Instance details

Defined in Circle.Types

FromJSON IPAddress Source # 
Instance details

Defined in Circle.Types

HasCodec IPAddress Source # 
Instance details

Defined in Circle.Types

data PaymentErrorCode Source #

data FiatOrCryptoPaymentResponseBody Source #

A FiatOrCryptoPaymentResponseBody object represents a fiat or crypto payment. These payments look identical except for the Description field, and the fact that a FiatPayment could have response verification data, whereas a crypto payment could have info about the deposit address, transaction hash etc. I'd love to differentiate these fields based on what I can parse from JSON, but there's enough overlap between the two response bodies that I can cheat for now.

data VerificationData Source #

Instances

Instances details
Eq VerificationData Source # 
Instance details

Defined in Circle.Types

Show VerificationData Source # 
Instance details

Defined in Circle.Types

Generic VerificationData Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep VerificationData :: Type -> Type #

ToJSON VerificationData Source # 
Instance details

Defined in Circle.Types

FromJSON VerificationData Source # 
Instance details

Defined in Circle.Types

HasCodec VerificationData Source # 
Instance details

Defined in Circle.Types

type Rep VerificationData Source # 
Instance details

Defined in Circle.Types

type Rep VerificationData = D1 ('MetaData "VerificationData" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "VerificationData" 'PrefixI 'True) (S1 ('MetaSel ('Just "verificationAVS") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AVS) :*: S1 ('MetaSel ('Just "verificationCVV") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CVV)))

data AVS Source #

Constructors

AVSNotRequested 
AVSPending 
Y 
N 

Instances

Instances details
Eq AVS Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: AVS -> AVS -> Bool #

(/=) :: AVS -> AVS -> Bool #

Show AVS Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> AVS -> ShowS #

show :: AVS -> String #

showList :: [AVS] -> ShowS #

ToJSON AVS Source # 
Instance details

Defined in Circle.Types

FromJSON AVS Source # 
Instance details

Defined in Circle.Types

HasCodec AVS Source # 
Instance details

Defined in Circle.Types

data CVV Source #

Instances

Instances details
Eq CVV Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: CVV -> CVV -> Bool #

(/=) :: CVV -> CVV -> Bool #

Show CVV Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> CVV -> ShowS #

show :: CVV -> String #

showList :: [CVV] -> ShowS #

ToJSON CVV Source # 
Instance details

Defined in Circle.Types

FromJSON CVV Source # 
Instance details

Defined in Circle.Types

HasCodec CVV Source # 
Instance details

Defined in Circle.Types

data FiatCancelOrRefundResponseBody Source #

A FiatCancelOrRefundResponseBody object represents an attempt at canceling or refunding a payment. Cancellations apply only to card payments, and its presence doesn't necessarily mean that the cancellation was successful. A successful cancellation has a status of paid, a successful refund has a status of confirmed.

data OriginalFiatPayment Source #

Instances

Instances details
Eq OriginalFiatPayment Source # 
Instance details

Defined in Circle.Types

Show OriginalFiatPayment Source # 
Instance details

Defined in Circle.Types

Generic OriginalFiatPayment Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep OriginalFiatPayment :: Type -> Type #

ToJSON OriginalFiatPayment Source # 
Instance details

Defined in Circle.Types

FromJSON OriginalFiatPayment Source # 
Instance details

Defined in Circle.Types

HasCodec OriginalFiatPayment Source # 
Instance details

Defined in Circle.Types

type Rep OriginalFiatPayment Source # 
Instance details

Defined in Circle.Types

type Rep OriginalFiatPayment = D1 ('MetaData "OriginalFiatPayment" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "OriginalFiatPayment" 'PrefixI 'True) (((S1 ('MetaSel ('Just "originalFiatPaymentId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UUID) :*: (S1 ('MetaSel ('Just "originalFiatPaymentType") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PaymentType) :*: S1 ('MetaSel ('Just "originalFiatPaymentStatus") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PaymentStatus))) :*: (S1 ('MetaSel ('Just "originalFiatPaymentCreateDate") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UTCTime) :*: (S1 ('MetaSel ('Just "originalFiatPaymentUpdateDate") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UTCTime) :*: S1 ('MetaSel ('Just "originalFiatPaymentDescription") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe Text))))) :*: ((S1 ('MetaSel ('Just "originalFiatPaymentAmount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe MoneyAmount)) :*: (S1 ('MetaSel ('Just "originalFiatPaymentFees") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe MoneyAmount)) :*: S1 ('MetaSel ('Just "originalFiatPaymentMerchantId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe UUID)))) :*: (S1 ('MetaSel ('Just "originalFiatPaymentMerchantWalletId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe WalletId)) :*: (S1 ('MetaSel ('Just "originalFiatPaymentSource") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe PaymentSource)) :*: S1 ('MetaSel ('Just "originalFiatPaymentTrackingRef") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe TrackingReference)))))))

data CardRequest Source #

Instances

Instances details
type CircleRequest CardRequest Source # 
Instance details

Defined in Circle.Types

data ListCardResponseBody Source #

Response body for listAllCards

data CardResponseBody Source #

Response body for methods that interface with an individual card: createCard, getCard, and updateCard

data CreateCardRequestBody Source #

Request body to create a debit card.

data ListCardBillingDetails Source #

Instances

Instances details
Eq ListCardBillingDetails Source # 
Instance details

Defined in Circle.Types

Show ListCardBillingDetails Source # 
Instance details

Defined in Circle.Types

Generic ListCardBillingDetails Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep ListCardBillingDetails :: Type -> Type #

ToJSON ListCardBillingDetails Source # 
Instance details

Defined in Circle.Types

FromJSON ListCardBillingDetails Source # 
Instance details

Defined in Circle.Types

HasCodec ListCardBillingDetails Source # 
Instance details

Defined in Circle.Types

type Rep ListCardBillingDetails Source # 
Instance details

Defined in Circle.Types

type Rep ListCardBillingDetails = D1 ('MetaData "ListCardBillingDetails" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "ListCardBillingDetails" 'PrefixI 'True) (S1 ('MetaSel ('Just "listCardBillingDetailsCountry") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ISO3166Alpha2) :*: S1 ('MetaSel ('Just "listCardBillingDetailsDistrict") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 District)))

data CardNetwork Source #

Constructors

VISA 
MASTERCARD 
AMEX 
UNKNOWN 

Instances

Instances details
Bounded CardNetwork Source # 
Instance details

Defined in Circle.Types

Enum CardNetwork Source # 
Instance details

Defined in Circle.Types

Eq CardNetwork Source # 
Instance details

Defined in Circle.Types

Show CardNetwork Source # 
Instance details

Defined in Circle.Types

ToJSON CardNetwork Source # 
Instance details

Defined in Circle.Types

FromJSON CardNetwork Source # 
Instance details

Defined in Circle.Types

HasCodec CardNetwork Source # 
Instance details

Defined in Circle.Types

data CardFundingType Source #

Constructors

Credit 
Debit 
Prepaid 
Unknown 

Instances

Instances details
Bounded CardFundingType Source # 
Instance details

Defined in Circle.Types

Enum CardFundingType Source # 
Instance details

Defined in Circle.Types

Eq CardFundingType Source # 
Instance details

Defined in Circle.Types

Show CardFundingType Source # 
Instance details

Defined in Circle.Types

ToJSON CardFundingType Source # 
Instance details

Defined in Circle.Types

FromJSON CardFundingType Source # 
Instance details

Defined in Circle.Types

HasCodec CardFundingType Source # 
Instance details

Defined in Circle.Types

data VerificationErrorCode Source #

data ACHBankAccountResponseBody Source #

Response body for createACHAccount and getACHAccount

data CreateACHBankAccountRequestBody Source #

Request body to an ACH bank account.

data CreateMockACHBankAccountRequestBody Source #

Request body to create a mock ACH bank account (in the sandbox only).

data MockACHBankAccountResponseBody Source #

Response body for methods that call the "mocks/ach/account" endpoint

data MockRoutingNumber Source #

Instances

Instances details
Bounded MockRoutingNumber Source # 
Instance details

Defined in Circle.Types

Enum MockRoutingNumber Source # 
Instance details

Defined in Circle.Types

Eq MockRoutingNumber Source # 
Instance details

Defined in Circle.Types

Show MockRoutingNumber Source # 
Instance details

Defined in Circle.Types

ToJSON MockRoutingNumber Source # 
Instance details

Defined in Circle.Types

FromJSON MockRoutingNumber Source # 
Instance details

Defined in Circle.Types

HasCodec MockRoutingNumber Source # 
Instance details

Defined in Circle.Types

data SEPAAccountResponseBody Source #

Response body for methods that call the "banks/sepa" endpoint

data SettlementResponseBody Source #

Response body for methods that call the "settlements" endpoint

data ChargebackResponseBody Source #

Response body for methods that call the "cards/chargebacks" and "mocks/cards/chargebacks" endpoints

data ChargebackCategory Source #

Instances

Instances details
Bounded ChargebackCategory Source # 
Instance details

Defined in Circle.Types

Enum ChargebackCategory Source # 
Instance details

Defined in Circle.Types

Eq ChargebackCategory Source # 
Instance details

Defined in Circle.Types

Show ChargebackCategory Source # 
Instance details

Defined in Circle.Types

ToJSON ChargebackCategory Source # 
Instance details

Defined in Circle.Types

FromJSON ChargebackCategory Source # 
Instance details

Defined in Circle.Types

HasCodec ChargebackCategory Source # 
Instance details

Defined in Circle.Types

data ChargebackHistoryType Source #

Instances

Instances details
Bounded ChargebackHistoryType Source # 
Instance details

Defined in Circle.Types

Enum ChargebackHistoryType Source # 
Instance details

Defined in Circle.Types

Eq ChargebackHistoryType Source # 
Instance details

Defined in Circle.Types

Show ChargebackHistoryType Source # 
Instance details

Defined in Circle.Types

ToJSON ChargebackHistoryType Source # 
Instance details

Defined in Circle.Types

FromJSON ChargebackHistoryType Source # 
Instance details

Defined in Circle.Types

HasCodec ChargebackHistoryType Source # 
Instance details

Defined in Circle.Types

data ReversalResponseBody Source #

Response body for methods that call the "reversals" endpoint

data ReversalReason Source #

Instances

Instances details
Bounded ReversalReason Source # 
Instance details

Defined in Circle.Types

Enum ReversalReason Source # 
Instance details

Defined in Circle.Types

Eq ReversalReason Source # 
Instance details

Defined in Circle.Types

Show ReversalReason Source # 
Instance details

Defined in Circle.Types

ToJSON ReversalReason Source # 
Instance details

Defined in Circle.Types

FromJSON ReversalReason Source # 
Instance details

Defined in Circle.Types

HasCodec ReversalReason Source # 
Instance details

Defined in Circle.Types

data CreatePaymentIntentRequestBody Source #

Request body to create a payment intent for a blockchain payment

data PaymentIntentResponseBody Source #

Response body for methods that call the "paymentIntents" endpoint

tshow :: Show a => a -> Text Source #

data ThisOrThat a b Source #

Similar to Either but with different ToJSON and FromJSON instances. ToJSON will serialize the payload without adding any kind of tag. FromJSON will first attempt to parse JSON as the first type parameter, and if that fails will then attempt to parse as the second type parameter.

NB: The order of type parameters make a huge difference! In ThisOrThat A B, if A is structurally a subtype of B, then the parser can never produce a That result! For example, with types

  data A = A {foo :: String, bar :: Scientific}
  data B = B {foo :: String, bar :: Scientific, baz :: Bool}

FromJSON (ThisOrThat A B) can never parse a B. Any JSON object that includes properties foo: string and bar: number will parse as an A, whether or not the property baz: boolean is present. You can fix this by instead using ThisOrThat B A.

Constructors

This a 
That b 

Instances

Instances details
Bifunctor ThisOrThat Source # 
Instance details

Defined in Circle.Types

Methods

bimap :: (a -> b) -> (c -> d) -> ThisOrThat a c -> ThisOrThat b d #

first :: (a -> b) -> ThisOrThat a c -> ThisOrThat b c #

second :: (b -> c) -> ThisOrThat a b -> ThisOrThat a c #

(Eq a, Eq b) => Eq (ThisOrThat a b) Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: ThisOrThat a b -> ThisOrThat a b -> Bool #

(/=) :: ThisOrThat a b -> ThisOrThat a b -> Bool #

(Show a, Show b) => Show (ThisOrThat a b) Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> ThisOrThat a b -> ShowS #

show :: ThisOrThat a b -> String #

showList :: [ThisOrThat a b] -> ShowS #

Generic (ThisOrThat a b) Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep (ThisOrThat a b) :: Type -> Type #

Methods

from :: ThisOrThat a b -> Rep (ThisOrThat a b) x #

to :: Rep (ThisOrThat a b) x -> ThisOrThat a b #

(ToJSON a, ToJSON b) => ToJSON (ThisOrThat a b) Source # 
Instance details

Defined in Circle.Types

(FromJSON a, FromJSON b) => FromJSON (ThisOrThat a b) Source # 
Instance details

Defined in Circle.Types

type Rep (ThisOrThat a b) Source # 
Instance details

Defined in Circle.Types

type Rep (ThisOrThat a b) = D1 ('MetaData "ThisOrThat" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "This" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 a)) :+: C1 ('MetaCons "That" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 b)))

catThises :: [ThisOrThat a b] -> [a] Source #

catThats :: [ThisOrThat a b] -> [b] Source #

thisOrThat :: (a -> c) -> (b -> c) -> ThisOrThat a b -> c Source #

data Status Source #

Constructors

Pending 
Complete 
Failed 

Instances

Instances details
Eq Status Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: Status -> Status -> Bool #

(/=) :: Status -> Status -> Bool #

Show Status Source # 
Instance details

Defined in Circle.Types

ToJSON Status Source # 
Instance details

Defined in Circle.Types

FromJSON Status Source # 
Instance details

Defined in Circle.Types

HasCodec Status Source # 
Instance details

Defined in Circle.Types

data Address Source #

Instances

Instances details
Eq Address Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: Address -> Address -> Bool #

(/=) :: Address -> Address -> Bool #

Show Address Source # 
Instance details

Defined in Circle.Types

ToJSON Address Source # 
Instance details

Defined in Circle.Types

FromJSON Address Source # 
Instance details

Defined in Circle.Types

HasCodec Address Source # 
Instance details

Defined in Circle.Types

data SupportedCurrencies Source #

Constructors

USD 
EUR 
BTC 
ETH 

Instances

Instances details
Bounded SupportedCurrencies Source # 
Instance details

Defined in Circle.Types

Enum SupportedCurrencies Source # 
Instance details

Defined in Circle.Types

Eq SupportedCurrencies Source # 
Instance details

Defined in Circle.Types

Show SupportedCurrencies Source # 
Instance details

Defined in Circle.Types

ToJSON SupportedCurrencies Source # 
Instance details

Defined in Circle.Types

FromJSON SupportedCurrencies Source # 
Instance details

Defined in Circle.Types

HasCodec SupportedCurrencies Source # 
Instance details

Defined in Circle.Types

newtype Amount Source #

Constructors

Amount 

Fields

Instances

Instances details
Eq Amount Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: Amount -> Amount -> Bool #

(/=) :: Amount -> Amount -> Bool #

Show Amount Source # 
Instance details

Defined in Circle.Types

ToJSON Amount Source # 
Instance details

Defined in Circle.Types

FromJSON Amount Source # 
Instance details

Defined in Circle.Types

HasCodec Amount Source # 
Instance details

Defined in Circle.Types

data BlockchainFeeMoneyAmount Source #

Instances

Instances details
Eq BlockchainFeeMoneyAmount Source # 
Instance details

Defined in Circle.Types

Show BlockchainFeeMoneyAmount Source # 
Instance details

Defined in Circle.Types

Generic BlockchainFeeMoneyAmount Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep BlockchainFeeMoneyAmount :: Type -> Type #

ToJSON BlockchainFeeMoneyAmount Source # 
Instance details

Defined in Circle.Types

FromJSON BlockchainFeeMoneyAmount Source # 
Instance details

Defined in Circle.Types

HasCodec BlockchainFeeMoneyAmount Source # 
Instance details

Defined in Circle.Types

type Rep BlockchainFeeMoneyAmount Source # 
Instance details

Defined in Circle.Types

type Rep BlockchainFeeMoneyAmount = D1 ('MetaData "BlockchainFeeMoneyAmount" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "BlockchainFeeMoneyAmount" 'PrefixI 'True) (S1 ('MetaSel ('Just "blockchainFeeMoneyAmountType") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BlockchainFeeType) :*: (S1 ('MetaSel ('Just "blockchainFeeMoneyAmountAmount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Amount) :*: S1 ('MetaSel ('Just "blockchainFeeMoneyAmountCurrency") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SupportedCurrencies))))

data MoneyAmount Source #

Instances

Instances details
Eq MoneyAmount Source # 
Instance details

Defined in Circle.Types

Show MoneyAmount Source # 
Instance details

Defined in Circle.Types

Generic MoneyAmount Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep MoneyAmount :: Type -> Type #

ToJSON MoneyAmount Source # 
Instance details

Defined in Circle.Types

FromJSON MoneyAmount Source # 
Instance details

Defined in Circle.Types

HasCodec MoneyAmount Source # 
Instance details

Defined in Circle.Types

type Rep MoneyAmount Source # 
Instance details

Defined in Circle.Types

type Rep MoneyAmount = D1 ('MetaData "MoneyAmount" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "MoneyAmount" 'PrefixI 'True) (S1 ('MetaSel ('Just "moneyAmountAmount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Amount) :*: S1 ('MetaSel ('Just "moneyAmountCurrency") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SupportedCurrencies)))

data TransferFeeAmount Source #

Instances

Instances details
Eq TransferFeeAmount Source # 
Instance details

Defined in Circle.Types

Show TransferFeeAmount Source # 
Instance details

Defined in Circle.Types

Generic TransferFeeAmount Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep TransferFeeAmount :: Type -> Type #

ToJSON TransferFeeAmount Source # 
Instance details

Defined in Circle.Types

FromJSON TransferFeeAmount Source # 
Instance details

Defined in Circle.Types

HasCodec TransferFeeAmount Source # 
Instance details

Defined in Circle.Types

type Rep TransferFeeAmount Source # 
Instance details

Defined in Circle.Types

type Rep TransferFeeAmount = D1 ('MetaData "TransferFeeAmount" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "TransferFeeAmount" 'PrefixI 'True) (S1 ('MetaSel ('Just "transferFeeAmountAmount") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Amount) :*: (S1 ('MetaSel ('Just "transferFeeAmountCurrency") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SupportedCurrencies) :*: S1 ('MetaSel ('Just "transferFeeAmountType") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text))))

data Decision Source #

Constructors

Approved 
Denied 
Review 

Instances

Instances details
Eq Decision Source # 
Instance details

Defined in Circle.Types

Show Decision Source # 
Instance details

Defined in Circle.Types

Generic Decision Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep Decision :: Type -> Type #

Methods

from :: Decision -> Rep Decision x #

to :: Rep Decision x -> Decision #

ToJSON Decision Source # 
Instance details

Defined in Circle.Types

FromJSON Decision Source # 
Instance details

Defined in Circle.Types

HasCodec Decision Source # 
Instance details

Defined in Circle.Types

type Rep Decision Source # 
Instance details

Defined in Circle.Types

type Rep Decision = D1 ('MetaData "Decision" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "Approved" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Denied" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Review" 'PrefixI 'False) (U1 :: Type -> Type)))

data RiskEvaluation Source #

Instances

Instances details
Eq RiskEvaluation Source # 
Instance details

Defined in Circle.Types

Show RiskEvaluation Source # 
Instance details

Defined in Circle.Types

Generic RiskEvaluation Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep RiskEvaluation :: Type -> Type #

ToJSON RiskEvaluation Source # 
Instance details

Defined in Circle.Types

FromJSON RiskEvaluation Source # 
Instance details

Defined in Circle.Types

HasCodec RiskEvaluation Source # 
Instance details

Defined in Circle.Types

type Rep RiskEvaluation Source # 
Instance details

Defined in Circle.Types

type Rep RiskEvaluation = D1 ('MetaData "RiskEvaluation" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "RiskEvaluation" 'PrefixI 'True) (S1 ('MetaSel ('Just "riskEvaluationDecision") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Decision) :*: S1 ('MetaSel ('Just "riskEvaluationReason") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)))

data Adjustments Source #

Instances

Instances details
Eq Adjustments Source # 
Instance details

Defined in Circle.Types

Show Adjustments Source # 
Instance details

Defined in Circle.Types

Generic Adjustments Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep Adjustments :: Type -> Type #

ToJSON Adjustments Source # 
Instance details

Defined in Circle.Types

FromJSON Adjustments Source # 
Instance details

Defined in Circle.Types

HasCodec Adjustments Source # 
Instance details

Defined in Circle.Types

type Rep Adjustments Source # 
Instance details

Defined in Circle.Types

type Rep Adjustments = D1 ('MetaData "Adjustments" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "Adjustments" 'PrefixI 'True) (S1 ('MetaSel ('Just "adjustmentsFXCredit") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 MoneyAmount) :*: S1 ('MetaSel ('Just "adjustmentsFXDebit") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 MoneyAmount)))

data BillingDetails Source #

Instances

Instances details
Eq BillingDetails Source # 
Instance details

Defined in Circle.Types

Show BillingDetails Source # 
Instance details

Defined in Circle.Types

Generic BillingDetails Source # 
Instance details

Defined in Circle.Types

Associated Types

type Rep BillingDetails :: Type -> Type #

ToJSON BillingDetails Source # 
Instance details

Defined in Circle.Types

FromJSON BillingDetails Source # 
Instance details

Defined in Circle.Types

HasCodec BillingDetails Source # 
Instance details

Defined in Circle.Types

type Rep BillingDetails Source # 
Instance details

Defined in Circle.Types

type Rep BillingDetails = D1 ('MetaData "BillingDetails" "Circle.Types" "circle-0.1.0.0-inplace" 'False) (C1 ('MetaCons "BillingDetails" 'PrefixI 'True) ((S1 ('MetaSel ('Just "billingDetailsName") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text) :*: (S1 ('MetaSel ('Just "billingDetailsCity") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 City) :*: S1 ('MetaSel ('Just "billingDetailsCountry") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ISO3166Alpha2))) :*: ((S1 ('MetaSel ('Just "billingDetailsLine1") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AddressLine) :*: S1 ('MetaSel ('Just "billingDetailsLine2") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe AddressLine))) :*: (S1 ('MetaSel ('Just "billingDetailsDistrict") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Maybe District)) :*: S1 ('MetaSel ('Just "billingDetailsPostalCode") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 PostalCode)))))

data BeneficiaryBankDetails Source #

newtype URL Source #

Constructors

URL 

Fields

Instances

Instances details
Eq URL Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: URL -> URL -> Bool #

(/=) :: URL -> URL -> Bool #

Show URL Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> URL -> ShowS #

show :: URL -> String #

showList :: [URL] -> ShowS #

ToJSON URL Source # 
Instance details

Defined in Circle.Types

FromJSON URL Source # 
Instance details

Defined in Circle.Types

HasCodec URL Source # 
Instance details

Defined in Circle.Types

Lift URL Source # 
Instance details

Defined in Circle.Types

Methods

lift :: URL -> Q Exp #

liftTyped :: URL -> Q (TExp URL) #

newtype Iban Source #

Constructors

Iban 

Fields

Instances

Instances details
Eq Iban Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: Iban -> Iban -> Bool #

(/=) :: Iban -> Iban -> Bool #

Read Iban Source # 
Instance details

Defined in Circle.Types

Show Iban Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> Iban -> ShowS #

show :: Iban -> String #

showList :: [Iban] -> ShowS #

ToJSON Iban Source # 
Instance details

Defined in Circle.Types

FromJSON Iban Source # 
Instance details

Defined in Circle.Types

HasCodec Iban Source # 
Instance details

Defined in Circle.Types

Lift Iban Source # 
Instance details

Defined in Circle.Types

Methods

lift :: Iban -> Q Exp #

liftTyped :: Iban -> Q (TExp Iban) #

newtype Email Source #

A newtype around email text. This newtype verifies the email is formatted correctly using HTML5's email regexp https://www.w3.org/TR/html5/forms.html#valid-e-mail-address

Constructors

Email 

Fields

Instances

Instances details
Eq Email Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: Email -> Email -> Bool #

(/=) :: Email -> Email -> Bool #

Ord Email Source # 
Instance details

Defined in Circle.Types

Methods

compare :: Email -> Email -> Ordering #

(<) :: Email -> Email -> Bool #

(<=) :: Email -> Email -> Bool #

(>) :: Email -> Email -> Bool #

(>=) :: Email -> Email -> Bool #

max :: Email -> Email -> Email #

min :: Email -> Email -> Email #

Show Email Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> Email -> ShowS #

show :: Email -> String #

showList :: [Email] -> ShowS #

ToJSON Email Source # 
Instance details

Defined in Circle.Types

FromJSON Email Source # 
Instance details

Defined in Circle.Types

HasCodec Email Source # 
Instance details

Defined in Circle.Types

Lift Email Source # 
Instance details

Defined in Circle.Types

Methods

lift :: Email -> Q Exp #

liftTyped :: Email -> Q (TExp Email) #

mkEmail :: Text -> Maybe Email Source #

Attempt to create an email from text, returning Nothing if it doesn't match our email regular expression.

emailToText :: Email -> Text Source #

Convenience function for APIs that take emails as Text

emailToByteString :: Email -> ByteString Source #

Convenience function for APIs that take emails as ByteString

compileEmail :: QuasiQuoter Source #

Create an email at compile time Usage: > [compileEmail|dmarticus@gmail.com|]

newtype City Source #

Constructors

City 

Fields

Instances

Instances details
Eq City Source # 
Instance details

Defined in Circle.Types

Methods

(==) :: City -> City -> Bool #

(/=) :: City -> City -> Bool #

Show City Source # 
Instance details

Defined in Circle.Types

Methods

showsPrec :: Int -> City -> ShowS #

show :: City -> String #

showList :: [City] -> ShowS #

ToJSON City Source # 
Instance details

Defined in Circle.Types

FromJSON City Source # 
Instance details

Defined in Circle.Types

HasCodec City Source # 
Instance details

Defined in Circle.Types

newtype PostalCode Source #

Constructors

PostalCode 

Fields

newtype SwiftCode Source #

Constructors

SwiftCode 

Fields

getCountryFromSwiftCodeText :: Text -> Text Source #

Extracts an ISO 3166-1 alpha-2 country code (or XK for Kosovo) from a SWIFT code, e.g. BOFAUS3N -> US

get8DigitSwiftCode :: SwiftCode -> SwiftCode Source #

SwiftCodes can be either 11 or 8 digits, this ensures you're always working with the 8 digit variety.

getBranchCodeFromSwiftCode :: SwiftCode -> Maybe Text Source #

Gets the branch code from an 11-digit SwiftCode (this is the last 3 digits of an 11-digit SwiftCode), otherwise returns Nothing.

newtype District Source #

Constructors

District 

Fields

Instances

Instances details
Eq District Source # 
Instance details

Defined in Circle.Types

Show District Source # 
Instance details

Defined in Circle.Types

ToJSON District Source # 
Instance details

Defined in Circle.Types

FromJSON District Source # 
Instance details

Defined in Circle.Types

HasCodec District Source # 
Instance details

Defined in Circle.Types

newtype ISO3166Alpha2 Source #

Constructors

ISO3166Alpha2 

newtype HexString Source #

Constructors

HexString 

Fields

Instances

Instances details
Eq HexString Source # 
Instance details

Defined in Circle.Types

Show HexString Source # 
Instance details

Defined in Circle.Types

ToJSON HexString Source # 
Instance details

Defined in Circle.Types

FromJSON HexString Source # 
Instance details

Defined in Circle.Types

HasCodec HexString Source # 
Instance details

Defined in Circle.Types

newtype WalletId Source #

Constructors

WalletId 

Fields

Instances

Instances details
Eq WalletId Source # 
Instance details

Defined in Circle.Types

Show WalletId Source # 
Instance details

Defined in Circle.Types

ToJSON WalletId Source # 
Instance details

Defined in Circle.Types

FromJSON WalletId Source # 
Instance details

Defined in Circle.Types

HasCodec WalletId Source # 
Instance details

Defined in Circle.Types

Orphan instances