{-# LANGUAGE ExplicitForAll #-} {-# LANGUAGE MultiWayIf #-} -- CHANGE WITH CAUTION: This is a generated code file generated by https://github.com/Haskell-OpenAPI-Code-Generator/Haskell-OpenAPI-Client-Code-Generator. {-# LANGUAGE OverloadedStrings #-} -- | Contains the different functions to run the operation postCustomersCustomerBankAccountsId module StripeAPI.Operations.PostCustomersCustomerBankAccountsId where import qualified Control.Monad.Fail import qualified Control.Monad.Trans.Reader import qualified Data.Aeson import qualified Data.Aeson as Data.Aeson.Encoding.Internal import qualified Data.Aeson as Data.Aeson.Types import qualified Data.Aeson as Data.Aeson.Types.FromJSON import qualified Data.Aeson as Data.Aeson.Types.Internal import qualified Data.Aeson as Data.Aeson.Types.ToJSON import qualified Data.ByteString.Char8 import qualified Data.ByteString.Char8 as Data.ByteString.Internal import qualified Data.Either import qualified Data.Functor import qualified Data.Scientific import qualified Data.Text import qualified Data.Text.Internal import qualified Data.Time.Calendar as Data.Time.Calendar.Days import qualified Data.Time.LocalTime as Data.Time.LocalTime.Internal.ZonedTime import qualified Data.Vector import qualified GHC.Base import qualified GHC.Classes import qualified GHC.Int import qualified GHC.Show import qualified GHC.Types import qualified Network.HTTP.Client import qualified Network.HTTP.Client as Network.HTTP.Client.Request import qualified Network.HTTP.Client as Network.HTTP.Client.Types import qualified Network.HTTP.Simple import qualified Network.HTTP.Types import qualified Network.HTTP.Types as Network.HTTP.Types.Status import qualified Network.HTTP.Types as Network.HTTP.Types.URI import qualified StripeAPI.Common import StripeAPI.Types import qualified Prelude as GHC.Integer.Type import qualified Prelude as GHC.Maybe -- | > POST /v1/customers/{customer}/bank_accounts/{id} -- -- \

Update a specified source for a given customer.\<\/p> postCustomersCustomerBankAccountsId :: forall m. StripeAPI.Common.MonadHTTP m => -- | Contains all available parameters of this operation (query and path parameters) PostCustomersCustomerBankAccountsIdParameters -> -- | The request body to send GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdRequestBody -> -- | Monadic computation which returns the result of the operation StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response PostCustomersCustomerBankAccountsIdResponse) postCustomersCustomerBankAccountsId parameters body = GHC.Base.fmap ( \response_0 -> GHC.Base.fmap ( Data.Either.either PostCustomersCustomerBankAccountsIdResponseError GHC.Base.id GHC.Base.. ( \response body -> if | (\status_1 -> Network.HTTP.Types.Status.statusCode status_1 GHC.Classes.== 200) (Network.HTTP.Client.Types.responseStatus response) -> PostCustomersCustomerBankAccountsIdResponse200 Data.Functor.<$> ( Data.Aeson.eitherDecodeStrict body :: Data.Either.Either GHC.Base.String PostCustomersCustomerBankAccountsIdResponseBody200 ) | GHC.Base.const GHC.Types.True (Network.HTTP.Client.Types.responseStatus response) -> PostCustomersCustomerBankAccountsIdResponseDefault Data.Functor.<$> ( Data.Aeson.eitherDecodeStrict body :: Data.Either.Either GHC.Base.String Error ) | GHC.Base.otherwise -> Data.Either.Left "Missing default response type" ) response_0 ) response_0 ) (StripeAPI.Common.doBodyCallWithConfigurationM (Data.Text.toUpper GHC.Base.$ Data.Text.pack "POST") (Data.Text.pack ("/v1/customers/" GHC.Base.++ (Data.ByteString.Char8.unpack (Network.HTTP.Types.URI.urlEncode GHC.Types.True GHC.Base.$ (Data.ByteString.Char8.pack GHC.Base.$ StripeAPI.Common.stringifyModel (postCustomersCustomerBankAccountsIdParametersPathCustomer parameters))) GHC.Base.++ ("/bank_accounts/" GHC.Base.++ (Data.ByteString.Char8.unpack (Network.HTTP.Types.URI.urlEncode GHC.Types.True GHC.Base.$ (Data.ByteString.Char8.pack GHC.Base.$ StripeAPI.Common.stringifyModel (postCustomersCustomerBankAccountsIdParametersPathId parameters))) GHC.Base.++ ""))))) GHC.Base.mempty body StripeAPI.Common.RequestBodyEncodingFormData) -- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.parameters@ in the specification. data PostCustomersCustomerBankAccountsIdParameters = PostCustomersCustomerBankAccountsIdParameters { -- | pathCustomer: Represents the parameter named \'customer\' -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdParametersPathCustomer :: Data.Text.Internal.Text, -- | pathId: Represents the parameter named \'id\' -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdParametersPathId :: Data.Text.Internal.Text } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdParameters where toJSON obj = Data.Aeson.Types.Internal.object ("pathCustomer" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdParametersPathCustomer obj : "pathId" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdParametersPathId obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("pathCustomer" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdParametersPathCustomer obj) GHC.Base.<> ("pathId" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdParametersPathId obj)) instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdParameters where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostCustomersCustomerBankAccountsIdParameters" (\obj -> (GHC.Base.pure PostCustomersCustomerBankAccountsIdParameters GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "pathCustomer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "pathId")) -- | Create a new 'PostCustomersCustomerBankAccountsIdParameters' with all required fields. mkPostCustomersCustomerBankAccountsIdParameters :: -- | 'postCustomersCustomerBankAccountsIdParametersPathCustomer' Data.Text.Internal.Text -> -- | 'postCustomersCustomerBankAccountsIdParametersPathId' Data.Text.Internal.Text -> PostCustomersCustomerBankAccountsIdParameters mkPostCustomersCustomerBankAccountsIdParameters postCustomersCustomerBankAccountsIdParametersPathCustomer postCustomersCustomerBankAccountsIdParametersPathId = PostCustomersCustomerBankAccountsIdParameters { postCustomersCustomerBankAccountsIdParametersPathCustomer = postCustomersCustomerBankAccountsIdParametersPathCustomer, postCustomersCustomerBankAccountsIdParametersPathId = postCustomersCustomerBankAccountsIdParametersPathId } -- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification. data PostCustomersCustomerBankAccountsIdRequestBody = PostCustomersCustomerBankAccountsIdRequestBody { -- | account_holder_name: The name of the person or business that owns the bank account. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyAccountHolderName :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyAccountHolderType :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'), -- | address_city: City\/District\/Suburb\/Town\/Village. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyAddressCity :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_country: Billing address country, if provided when creating card. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyAddressCountry :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_line1: Address line 1 (Street address\/PO Box\/Company name). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyAddressLine1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyAddressLine2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_state: State\/County\/Province\/Region. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyAddressState :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_zip: ZIP or postal code. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyAddressZip :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | exp_month: Two digit number representing the card’s expiration month. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyExpMonth :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | exp_year: Four digit number representing the card’s expiration year. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyExpYear :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | expand: Specifies which fields in the response should be expanded. postCustomersCustomerBankAccountsIdRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])), -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`. postCustomersCustomerBankAccountsIdRequestBodyMetadata :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdRequestBodyMetadata'Variants), -- | name: Cardholder name. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyName :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | owner postCustomersCustomerBankAccountsIdRequestBodyOwner :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdRequestBodyOwner') } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdRequestBody where toJSON obj = Data.Aeson.Types.Internal.object ("account_holder_name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAccountHolderName obj : "account_holder_type" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAccountHolderType obj : "address_city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressCity obj : "address_country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressCountry obj : "address_line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressLine1 obj : "address_line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressLine2 obj : "address_state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressState obj : "address_zip" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressZip obj : "exp_month" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyExpMonth obj : "exp_year" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyExpYear obj : "expand" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyExpand obj : "metadata" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyMetadata obj : "name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyName obj : "owner" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("account_holder_name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAccountHolderName obj) GHC.Base.<> (("account_holder_type" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAccountHolderType obj) GHC.Base.<> (("address_city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressCity obj) GHC.Base.<> (("address_country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressCountry obj) GHC.Base.<> (("address_line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressLine1 obj) GHC.Base.<> (("address_line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressLine2 obj) GHC.Base.<> (("address_state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressState obj) GHC.Base.<> (("address_zip" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyAddressZip obj) GHC.Base.<> (("exp_month" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyExpMonth obj) GHC.Base.<> (("exp_year" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyExpYear obj) GHC.Base.<> (("expand" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyExpand obj) GHC.Base.<> (("metadata" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyMetadata obj) GHC.Base.<> (("name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyName obj) GHC.Base.<> ("owner" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner obj)))))))))))))) instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdRequestBody where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostCustomersCustomerBankAccountsIdRequestBody" (\obj -> (((((((((((((GHC.Base.pure PostCustomersCustomerBankAccountsIdRequestBody GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "expand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "owner")) -- | Create a new 'PostCustomersCustomerBankAccountsIdRequestBody' with all required fields. mkPostCustomersCustomerBankAccountsIdRequestBody :: PostCustomersCustomerBankAccountsIdRequestBody mkPostCustomersCustomerBankAccountsIdRequestBody = PostCustomersCustomerBankAccountsIdRequestBody { postCustomersCustomerBankAccountsIdRequestBodyAccountHolderName = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyAccountHolderType = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyAddressCity = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyAddressCountry = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyAddressLine1 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyAddressLine2 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyAddressState = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyAddressZip = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyExpMonth = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyExpYear = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyExpand = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyMetadata = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyName = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyOwner = GHC.Maybe.Nothing } -- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.account_holder_type@ in the specification. -- -- The type of entity that holds the account. This can be either \`individual\` or \`company\`. data PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'Other Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"company"@ PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'EnumCompany | -- | Represents the JSON value @"individual"@ PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'EnumIndividual deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType' where toJSON (PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'Other val) = val toJSON (PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'EnumCompany) = "company" toJSON (PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'EnumIndividual) = "individual" instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "company" -> PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'EnumCompany | val GHC.Classes.== "individual" -> PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'EnumIndividual | GHC.Base.otherwise -> PostCustomersCustomerBankAccountsIdRequestBodyAccountHolderType'Other val ) -- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.metadata.anyOf@ in the specification. -- -- Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`. data PostCustomersCustomerBankAccountsIdRequestBodyMetadata'Variants = -- | Represents the JSON value @""@ PostCustomersCustomerBankAccountsIdRequestBodyMetadata'EmptyString | PostCustomersCustomerBankAccountsIdRequestBodyMetadata'Object Data.Aeson.Types.Internal.Object deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdRequestBodyMetadata'Variants where toJSON (PostCustomersCustomerBankAccountsIdRequestBodyMetadata'Object a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (PostCustomersCustomerBankAccountsIdRequestBodyMetadata'EmptyString) = "" instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdRequestBodyMetadata'Variants where parseJSON val = if | val GHC.Classes.== "" -> GHC.Base.pure PostCustomersCustomerBankAccountsIdRequestBodyMetadata'EmptyString | GHC.Base.otherwise -> case (PostCustomersCustomerBankAccountsIdRequestBodyMetadata'Object Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched" of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.owner@ in the specification. data PostCustomersCustomerBankAccountsIdRequestBodyOwner' = PostCustomersCustomerBankAccountsIdRequestBodyOwner' { -- | address postCustomersCustomerBankAccountsIdRequestBodyOwner'Address :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address'), -- | email postCustomersCustomerBankAccountsIdRequestBodyOwner'Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | name -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyOwner'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | phone -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyOwner'Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdRequestBodyOwner' where toJSON obj = Data.Aeson.Types.Internal.object ("address" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address obj : "email" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Email obj : "name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Name obj : "phone" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Phone obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("address" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address obj) GHC.Base.<> (("email" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Email obj) GHC.Base.<> (("name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Name obj) GHC.Base.<> ("phone" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Phone obj)))) instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdRequestBodyOwner' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostCustomersCustomerBankAccountsIdRequestBodyOwner'" (\obj -> (((GHC.Base.pure PostCustomersCustomerBankAccountsIdRequestBodyOwner' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) -- | Create a new 'PostCustomersCustomerBankAccountsIdRequestBodyOwner'' with all required fields. mkPostCustomersCustomerBankAccountsIdRequestBodyOwner' :: PostCustomersCustomerBankAccountsIdRequestBodyOwner' mkPostCustomersCustomerBankAccountsIdRequestBodyOwner' = PostCustomersCustomerBankAccountsIdRequestBodyOwner' { postCustomersCustomerBankAccountsIdRequestBodyOwner'Address = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyOwner'Email = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyOwner'Name = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyOwner'Phone = GHC.Maybe.Nothing } -- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.owner.properties.address@ in the specification. data PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address' = PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address' { -- | city -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | country -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line1 -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line2 -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | postal_code -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | state -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address' where toJSON obj = Data.Aeson.Types.Internal.object ("city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'City obj : "country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Country obj : "line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Line1 obj : "line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Line2 obj : "postal_code" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'PostalCode obj : "state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'State obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'City obj) GHC.Base.<> (("country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Country obj) GHC.Base.<> (("line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Line1 obj) GHC.Base.<> (("line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Line2 obj) GHC.Base.<> (("postal_code" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'PostalCode obj) GHC.Base.<> ("state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'State obj)))))) instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address'" (\obj -> (((((GHC.Base.pure PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state")) -- | Create a new 'PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address'' with all required fields. mkPostCustomersCustomerBankAccountsIdRequestBodyOwner'Address' :: PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address' mkPostCustomersCustomerBankAccountsIdRequestBodyOwner'Address' = PostCustomersCustomerBankAccountsIdRequestBodyOwner'Address' { postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'City = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Country = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Line1 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'Line2 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'PostalCode = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdRequestBodyOwner'Address'State = GHC.Maybe.Nothing } -- | Represents a response of the operation 'postCustomersCustomerBankAccountsId'. -- -- The response constructor is chosen by the status code of the response. If no case matches (no specific case for the response code, no range case, no default case), 'PostCustomersCustomerBankAccountsIdResponseError' is used. data PostCustomersCustomerBankAccountsIdResponse = -- | Means either no matching case available or a parse error PostCustomersCustomerBankAccountsIdResponseError GHC.Base.String | -- | Successful response. PostCustomersCustomerBankAccountsIdResponse200 PostCustomersCustomerBankAccountsIdResponseBody200 | -- | Error response. PostCustomersCustomerBankAccountsIdResponseDefault Error deriving (GHC.Show.Show, GHC.Classes.Eq) -- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf@ in the specification. data PostCustomersCustomerBankAccountsIdResponseBody200 = PostCustomersCustomerBankAccountsIdResponseBody200 { -- | account: The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead. postCustomersCustomerBankAccountsIdResponseBody200Account :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdResponseBody200Account'Variants), -- | account_holder_name: The name of the person or business that owns the bank account. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AccountHolderName :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AccountHolderType :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | ach_credit_transfer postCustomersCustomerBankAccountsIdResponseBody200AchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer), -- | ach_debit postCustomersCustomerBankAccountsIdResponseBody200AchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit), -- | acss_debit postCustomersCustomerBankAccountsIdResponseBody200AcssDebit :: (GHC.Maybe.Maybe SourceTypeAcssDebit), -- | address_city: City\/District\/Suburb\/Town\/Village. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AddressCity :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_country: Billing address country, if provided when creating card. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AddressCountry :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_line1: Address line 1 (Street address\/PO Box\/Company name). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AddressLine1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AddressLine1Check :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AddressLine2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_state: State\/County\/Province\/Region. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AddressState :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_zip: ZIP or postal code. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AddressZip :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200AddressZipCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | alipay postCustomersCustomerBankAccountsIdResponseBody200Alipay :: (GHC.Maybe.Maybe SourceTypeAlipay), -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for \`single_use\` sources. postCustomersCustomerBankAccountsIdResponseBody200Amount :: (GHC.Maybe.Maybe GHC.Types.Int), -- | au_becs_debit postCustomersCustomerBankAccountsIdResponseBody200AuBecsDebit :: (GHC.Maybe.Maybe SourceTypeAuBecsDebit), -- | available_payout_methods: A set of available payout methods for this card. Only values from this set should be passed as the \`method\` when creating a payout. postCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods :: (GHC.Maybe.Maybe ([PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'])), -- | bancontact postCustomersCustomerBankAccountsIdResponseBody200Bancontact :: (GHC.Maybe.Maybe SourceTypeBancontact), -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200BankName :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Brand :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | card postCustomersCustomerBankAccountsIdResponseBody200Card :: (GHC.Maybe.Maybe SourceTypeCard), -- | card_present postCustomersCustomerBankAccountsIdResponseBody200CardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent), -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200ClientSecret :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | code_verification: postCustomersCustomerBankAccountsIdResponseBody200CodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow), -- | country: Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\'ve collected. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | created: Time at which the object was created. Measured in seconds since the Unix epoch. postCustomersCustomerBankAccountsIdResponseBody200Created :: (GHC.Maybe.Maybe GHC.Types.Int), -- | currency: Three-letter [ISO code for currency](https:\/\/stripe.com\/docs\/payouts). Only applicable on accounts (not customers or recipients). The card can be used as a transfer destination for funds in this currency. postCustomersCustomerBankAccountsIdResponseBody200Currency :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | customer: The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead. postCustomersCustomerBankAccountsIdResponseBody200Customer :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdResponseBody200Customer'Variants), -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`. A result of unchecked indicates that CVC was provided but hasn\'t been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https:\/\/support.stripe.com\/questions\/check-if-a-card-is-valid-without-a-charge). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200CvcCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | default_for_currency: Whether this card is the default external account for its currency. postCustomersCustomerBankAccountsIdResponseBody200DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool), -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200DynamicLast4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | eps postCustomersCustomerBankAccountsIdResponseBody200Eps :: (GHC.Maybe.Maybe SourceTypeEps), -- | exp_month: Two-digit number representing the card\'s expiration month. postCustomersCustomerBankAccountsIdResponseBody200ExpMonth :: (GHC.Maybe.Maybe GHC.Types.Int), -- | exp_year: Four-digit number representing the card\'s expiration year. postCustomersCustomerBankAccountsIdResponseBody200ExpYear :: (GHC.Maybe.Maybe GHC.Types.Int), -- | fingerprint: Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number. -- -- *Starting May 1, 2021, card fingerprint in India for Connect will change to allow two fingerprints for the same card --- one for India and one for the rest of the world.* -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Fingerprint :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Flow :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Funding :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | giropay postCustomersCustomerBankAccountsIdResponseBody200Giropay :: (GHC.Maybe.Maybe SourceTypeGiropay), -- | id: Unique identifier for the object. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | ideal postCustomersCustomerBankAccountsIdResponseBody200Ideal :: (GHC.Maybe.Maybe SourceTypeIdeal), -- | klarna postCustomersCustomerBankAccountsIdResponseBody200Klarna :: (GHC.Maybe.Maybe SourceTypeKlarna), -- | last4: The last four digits of the card. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Last4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode. postCustomersCustomerBankAccountsIdResponseBody200Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool), -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. postCustomersCustomerBankAccountsIdResponseBody200Metadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object), -- | multibanco postCustomersCustomerBankAccountsIdResponseBody200Multibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco), -- | name: Cardholder name. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | object: String representing the object\'s type. Objects of the same type share the same value. postCustomersCustomerBankAccountsIdResponseBody200Object :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdResponseBody200Object'), -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types. postCustomersCustomerBankAccountsIdResponseBody200Owner :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdResponseBody200Owner'), -- | p24 postCustomersCustomerBankAccountsIdResponseBody200P24 :: (GHC.Maybe.Maybe SourceTypeP24), -- | receiver: postCustomersCustomerBankAccountsIdResponseBody200Receiver :: (GHC.Maybe.Maybe SourceReceiverFlow), -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead. postCustomersCustomerBankAccountsIdResponseBody200Recipient :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Variants), -- | redirect: postCustomersCustomerBankAccountsIdResponseBody200Redirect :: (GHC.Maybe.Maybe SourceRedirectFlow), -- | routing_number: The routing transit number for the bank account. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200RoutingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | sepa_debit postCustomersCustomerBankAccountsIdResponseBody200SepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit), -- | sofort postCustomersCustomerBankAccountsIdResponseBody200Sofort :: (GHC.Maybe.Maybe SourceTypeSofort), -- | source_order: postCustomersCustomerBankAccountsIdResponseBody200SourceOrder :: (GHC.Maybe.Maybe SourceOrder), -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200StatementDescriptor :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated. -- -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Status :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | three_d_secure postCustomersCustomerBankAccountsIdResponseBody200ThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure), -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200TokenizationMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | type: The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used. postCustomersCustomerBankAccountsIdResponseBody200Type :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdResponseBody200Type'), -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Usage :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | wechat postCustomersCustomerBankAccountsIdResponseBody200Wechat :: (GHC.Maybe.Maybe SourceTypeWechat) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200 where toJSON obj = Data.Aeson.Types.Internal.object ("account" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Account obj : "account_holder_name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AccountHolderName obj : "account_holder_type" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AccountHolderType obj : "ach_credit_transfer" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AchCreditTransfer obj : "ach_debit" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AchDebit obj : "acss_debit" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AcssDebit obj : "address_city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressCity obj : "address_country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressCountry obj : "address_line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressLine1 obj : "address_line1_check" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressLine1Check obj : "address_line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressLine2 obj : "address_state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressState obj : "address_zip" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressZip obj : "address_zip_check" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressZipCheck obj : "alipay" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Alipay obj : "amount" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Amount obj : "au_becs_debit" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AuBecsDebit obj : "available_payout_methods" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods obj : "bancontact" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Bancontact obj : "bank_name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200BankName obj : "brand" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Brand obj : "card" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Card obj : "card_present" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200CardPresent obj : "client_secret" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200ClientSecret obj : "code_verification" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200CodeVerification obj : "country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Country obj : "created" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Created obj : "currency" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Currency obj : "customer" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Customer obj : "cvc_check" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200CvcCheck obj : "default_for_currency" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200DefaultForCurrency obj : "dynamic_last4" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200DynamicLast4 obj : "eps" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Eps obj : "exp_month" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200ExpMonth obj : "exp_year" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200ExpYear obj : "fingerprint" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Fingerprint obj : "flow" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Flow obj : "funding" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Funding obj : "giropay" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Giropay obj : "id" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Id obj : "ideal" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Ideal obj : "klarna" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Klarna obj : "last4" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Last4 obj : "livemode" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Livemode obj : "metadata" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Metadata obj : "multibanco" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Multibanco obj : "name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Name obj : "object" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Object obj : "owner" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner obj : "p24" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200P24 obj : "receiver" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Receiver obj : "recipient" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Recipient obj : "redirect" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Redirect obj : "routing_number" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200RoutingNumber obj : "sepa_debit" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200SepaDebit obj : "sofort" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Sofort obj : "source_order" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200SourceOrder obj : "statement_descriptor" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200StatementDescriptor obj : "status" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Status obj : "three_d_secure" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200ThreeDSecure obj : "tokenization_method" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200TokenizationMethod obj : "type" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Type obj : "usage" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Usage obj : "wechat" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Wechat obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("account" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Account obj) GHC.Base.<> (("account_holder_name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AccountHolderName obj) GHC.Base.<> (("account_holder_type" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AccountHolderType obj) GHC.Base.<> (("ach_credit_transfer" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AchCreditTransfer obj) GHC.Base.<> (("ach_debit" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AchDebit obj) GHC.Base.<> (("acss_debit" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AcssDebit obj) GHC.Base.<> (("address_city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressCity obj) GHC.Base.<> (("address_country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressCountry obj) GHC.Base.<> (("address_line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressLine1 obj) GHC.Base.<> (("address_line1_check" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressLine1Check obj) GHC.Base.<> (("address_line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressLine2 obj) GHC.Base.<> (("address_state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressState obj) GHC.Base.<> (("address_zip" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressZip obj) GHC.Base.<> (("address_zip_check" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AddressZipCheck obj) GHC.Base.<> (("alipay" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Alipay obj) GHC.Base.<> (("amount" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Amount obj) GHC.Base.<> (("au_becs_debit" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AuBecsDebit obj) GHC.Base.<> (("available_payout_methods" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods obj) GHC.Base.<> (("bancontact" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Bancontact obj) GHC.Base.<> (("bank_name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200BankName obj) GHC.Base.<> (("brand" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Brand obj) GHC.Base.<> (("card" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Card obj) GHC.Base.<> (("card_present" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200CardPresent obj) GHC.Base.<> (("client_secret" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200ClientSecret obj) GHC.Base.<> (("code_verification" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200CodeVerification obj) GHC.Base.<> (("country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Country obj) GHC.Base.<> (("created" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Created obj) GHC.Base.<> (("currency" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Currency obj) GHC.Base.<> (("customer" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Customer obj) GHC.Base.<> (("cvc_check" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200CvcCheck obj) GHC.Base.<> (("default_for_currency" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200DefaultForCurrency obj) GHC.Base.<> (("dynamic_last4" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200DynamicLast4 obj) GHC.Base.<> (("eps" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Eps obj) GHC.Base.<> (("exp_month" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200ExpMonth obj) GHC.Base.<> (("exp_year" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200ExpYear obj) GHC.Base.<> (("fingerprint" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Fingerprint obj) GHC.Base.<> (("flow" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Flow obj) GHC.Base.<> (("funding" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Funding obj) GHC.Base.<> (("giropay" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Giropay obj) GHC.Base.<> (("id" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Id obj) GHC.Base.<> (("ideal" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Ideal obj) GHC.Base.<> (("klarna" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Klarna obj) GHC.Base.<> (("last4" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Last4 obj) GHC.Base.<> (("livemode" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Livemode obj) GHC.Base.<> (("metadata" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Metadata obj) GHC.Base.<> (("multibanco" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Multibanco obj) GHC.Base.<> (("name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Name obj) GHC.Base.<> (("object" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Object obj) GHC.Base.<> (("owner" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner obj) GHC.Base.<> (("p24" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200P24 obj) GHC.Base.<> (("receiver" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Receiver obj) GHC.Base.<> (("recipient" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Recipient obj) GHC.Base.<> (("redirect" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Redirect obj) GHC.Base.<> (("routing_number" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200RoutingNumber obj) GHC.Base.<> (("sepa_debit" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200SepaDebit obj) GHC.Base.<> (("sofort" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Sofort obj) GHC.Base.<> (("source_order" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200SourceOrder obj) GHC.Base.<> (("statement_descriptor" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200StatementDescriptor obj) GHC.Base.<> (("status" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Status obj) GHC.Base.<> (("three_d_secure" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200ThreeDSecure obj) GHC.Base.<> (("tokenization_method" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200TokenizationMethod obj) GHC.Base.<> (("type" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Type obj) GHC.Base.<> (("usage" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Usage obj) GHC.Base.<> ("wechat" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Wechat obj)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200 where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostCustomersCustomerBankAccountsIdResponseBody200" (\obj -> (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((GHC.Base.pure PostCustomersCustomerBankAccountsIdResponseBody200 GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "account_holder_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_credit_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ach_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "acss_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line1_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_zip_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "au_becs_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "available_payout_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "bank_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "brand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card_present")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "code_verification")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cvc_check")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "default_for_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dynamic_last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eps")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_month")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "exp_year")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fingerprint")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "flow")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "funding")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "giropay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last4")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "multibanco")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "object")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "owner")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receiver")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "recipient")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "redirect")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "routing_number")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "source_order")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "three_d_secure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "tokenization_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "usage")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "wechat")) -- | Create a new 'PostCustomersCustomerBankAccountsIdResponseBody200' with all required fields. mkPostCustomersCustomerBankAccountsIdResponseBody200 :: PostCustomersCustomerBankAccountsIdResponseBody200 mkPostCustomersCustomerBankAccountsIdResponseBody200 = PostCustomersCustomerBankAccountsIdResponseBody200 { postCustomersCustomerBankAccountsIdResponseBody200Account = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AccountHolderName = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AccountHolderType = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AchCreditTransfer = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AchDebit = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AcssDebit = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AddressCity = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AddressCountry = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AddressLine1 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AddressLine1Check = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AddressLine2 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AddressState = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AddressZip = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AddressZipCheck = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Alipay = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Amount = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AuBecsDebit = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Bancontact = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200BankName = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Brand = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Card = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200CardPresent = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200ClientSecret = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200CodeVerification = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Country = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Created = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Currency = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Customer = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200CvcCheck = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200DefaultForCurrency = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200DynamicLast4 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Eps = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200ExpMonth = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200ExpYear = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Fingerprint = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Flow = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Funding = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Giropay = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Id = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Ideal = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Klarna = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Last4 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Livemode = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Metadata = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Multibanco = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Name = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Object = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200P24 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Receiver = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Recipient = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Redirect = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200RoutingNumber = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200SepaDebit = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Sofort = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200SourceOrder = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200StatementDescriptor = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Status = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200ThreeDSecure = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200TokenizationMethod = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Type = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Usage = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Wechat = GHC.Maybe.Nothing } -- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.account.anyOf@ in the specification. -- -- The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead. data PostCustomersCustomerBankAccountsIdResponseBody200Account'Variants = PostCustomersCustomerBankAccountsIdResponseBody200Account'Text Data.Text.Internal.Text | PostCustomersCustomerBankAccountsIdResponseBody200Account'Account Account deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200Account'Variants where toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Account'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Account'Account a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200Account'Variants where parseJSON val = case (PostCustomersCustomerBankAccountsIdResponseBody200Account'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((PostCustomersCustomerBankAccountsIdResponseBody200Account'Account Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched") of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.available_payout_methods.items@ in the specification. data PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'Other Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"instant"@ PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'EnumInstant | -- | Represents the JSON value @"standard"@ PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'EnumStandard deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods' where toJSON (PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'Other val) = val toJSON (PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'EnumInstant) = "instant" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'EnumStandard) = "standard" instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "instant" -> PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'EnumInstant | val GHC.Classes.== "standard" -> PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'EnumStandard | GHC.Base.otherwise -> PostCustomersCustomerBankAccountsIdResponseBody200AvailablePayoutMethods'Other val ) -- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.customer.anyOf@ in the specification. -- -- The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead. data PostCustomersCustomerBankAccountsIdResponseBody200Customer'Variants = PostCustomersCustomerBankAccountsIdResponseBody200Customer'Text Data.Text.Internal.Text | PostCustomersCustomerBankAccountsIdResponseBody200Customer'Customer Customer | PostCustomersCustomerBankAccountsIdResponseBody200Customer'DeletedCustomer DeletedCustomer deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200Customer'Variants where toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Customer'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Customer'Customer a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Customer'DeletedCustomer a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200Customer'Variants where parseJSON val = case (PostCustomersCustomerBankAccountsIdResponseBody200Customer'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((PostCustomersCustomerBankAccountsIdResponseBody200Customer'Customer Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((PostCustomersCustomerBankAccountsIdResponseBody200Customer'DeletedCustomer Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched")) of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.object@ in the specification. -- -- String representing the object\'s type. Objects of the same type share the same value. data PostCustomersCustomerBankAccountsIdResponseBody200Object' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. PostCustomersCustomerBankAccountsIdResponseBody200Object'Other Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. PostCustomersCustomerBankAccountsIdResponseBody200Object'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"card"@ PostCustomersCustomerBankAccountsIdResponseBody200Object'EnumCard deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200Object' where toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Object'Other val) = val toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Object'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Object'EnumCard) = "card" instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200Object' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "card" -> PostCustomersCustomerBankAccountsIdResponseBody200Object'EnumCard | GHC.Base.otherwise -> PostCustomersCustomerBankAccountsIdResponseBody200Object'Other val ) -- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.owner.anyOf@ in the specification. -- -- Information about the owner of the payment instrument that may be used or required by particular source types. data PostCustomersCustomerBankAccountsIdResponseBody200Owner' = PostCustomersCustomerBankAccountsIdResponseBody200Owner' { -- | address: Owner\'s address. postCustomersCustomerBankAccountsIdResponseBody200Owner'Address :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address'), -- | email: Owner\'s email address. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | name: Owner\'s full name. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | phone: Owner\'s phone number (including extension). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | verified_address: Verified owner\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated. postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress :: (GHC.Maybe.Maybe PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'), -- | verified_email: Verified owner\'s email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedEmail :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | verified_name: Verified owner\'s full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedName :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | verified_phone: Verified owner\'s phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedPhone :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200Owner' where toJSON obj = Data.Aeson.Types.Internal.object ("address" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address obj : "email" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Email obj : "name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Name obj : "phone" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Phone obj : "verified_address" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress obj : "verified_email" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedEmail obj : "verified_name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedName obj : "verified_phone" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedPhone obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("address" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address obj) GHC.Base.<> (("email" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Email obj) GHC.Base.<> (("name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Name obj) GHC.Base.<> (("phone" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Phone obj) GHC.Base.<> (("verified_address" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress obj) GHC.Base.<> (("verified_email" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedEmail obj) GHC.Base.<> (("verified_name" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedName obj) GHC.Base.<> ("verified_phone" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedPhone obj)))))))) instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200Owner' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostCustomersCustomerBankAccountsIdResponseBody200Owner'" (\obj -> (((((((GHC.Base.pure PostCustomersCustomerBankAccountsIdResponseBody200Owner' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verified_phone")) -- | Create a new 'PostCustomersCustomerBankAccountsIdResponseBody200Owner'' with all required fields. mkPostCustomersCustomerBankAccountsIdResponseBody200Owner' :: PostCustomersCustomerBankAccountsIdResponseBody200Owner' mkPostCustomersCustomerBankAccountsIdResponseBody200Owner' = PostCustomersCustomerBankAccountsIdResponseBody200Owner' { postCustomersCustomerBankAccountsIdResponseBody200Owner'Address = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'Email = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'Name = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'Phone = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedEmail = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedName = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedPhone = GHC.Maybe.Nothing } -- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.owner.anyOf.properties.address.anyOf@ in the specification. -- -- Owner\\\'s address. data PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address' = PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address' { -- | city: City, district, suburb, town, or village. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line1: Address line 1 (e.g., street, PO Box, or company name). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line2: Address line 2 (e.g., apartment, suite, unit, or building). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | postal_code: ZIP or postal code. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | state: State, county, province, or region. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address' where toJSON obj = Data.Aeson.Types.Internal.object ("city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'City obj : "country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Country obj : "line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Line1 obj : "line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Line2 obj : "postal_code" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'PostalCode obj : "state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'State obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'City obj) GHC.Base.<> (("country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Country obj) GHC.Base.<> (("line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Line1 obj) GHC.Base.<> (("line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Line2 obj) GHC.Base.<> (("postal_code" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'PostalCode obj) GHC.Base.<> ("state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'State obj)))))) instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address'" (\obj -> (((((GHC.Base.pure PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state")) -- | Create a new 'PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address'' with all required fields. mkPostCustomersCustomerBankAccountsIdResponseBody200Owner'Address' :: PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address' mkPostCustomersCustomerBankAccountsIdResponseBody200Owner'Address' = PostCustomersCustomerBankAccountsIdResponseBody200Owner'Address' { postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'City = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Country = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Line1 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'Line2 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'PostalCode = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'Address'State = GHC.Maybe.Nothing } -- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.owner.anyOf.properties.verified_address.anyOf@ in the specification. -- -- Verified owner\\\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated. data PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress' = PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress' { -- | city: City, district, suburb, town, or village. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line1: Address line 1 (e.g., street, PO Box, or company name). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line2: Address line 2 (e.g., apartment, suite, unit, or building). -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | postal_code: ZIP or postal code. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | state: State, county, province, or region. -- -- Constraints: -- -- * Maximum length of 5000 postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress' where toJSON obj = Data.Aeson.Types.Internal.object ("city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'City obj : "country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Country obj : "line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Line1 obj : "line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Line2 obj : "postal_code" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'PostalCode obj : "state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'State obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("city" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'City obj) GHC.Base.<> (("country" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Country obj) GHC.Base.<> (("line1" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Line1 obj) GHC.Base.<> (("line2" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Line2 obj) GHC.Base.<> (("postal_code" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'PostalCode obj) GHC.Base.<> ("state" Data.Aeson.Types.ToJSON..= postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'State obj)))))) instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'" (\obj -> (((((GHC.Base.pure PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state")) -- | Create a new 'PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'' with all required fields. mkPostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress' :: PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress' mkPostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress' = PostCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress' { postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'City = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Country = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Line1 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'Line2 = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'PostalCode = GHC.Maybe.Nothing, postCustomersCustomerBankAccountsIdResponseBody200Owner'VerifiedAddress'State = GHC.Maybe.Nothing } -- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.recipient.anyOf@ in the specification. -- -- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead. data PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Variants = PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Text Data.Text.Internal.Text | PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Recipient Recipient deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Variants where toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Recipient a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Variants where parseJSON val = case (PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((PostCustomersCustomerBankAccountsIdResponseBody200Recipient'Recipient Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched") of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/bank_accounts\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.type@ in the specification. -- -- The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used. data PostCustomersCustomerBankAccountsIdResponseBody200Type' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. PostCustomersCustomerBankAccountsIdResponseBody200Type'Other Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. PostCustomersCustomerBankAccountsIdResponseBody200Type'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"ach_credit_transfer"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAchCreditTransfer | -- | Represents the JSON value @"ach_debit"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAchDebit | -- | Represents the JSON value @"acss_debit"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAcssDebit | -- | Represents the JSON value @"alipay"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAlipay | -- | Represents the JSON value @"au_becs_debit"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAuBecsDebit | -- | Represents the JSON value @"bancontact"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumBancontact | -- | Represents the JSON value @"card"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumCard | -- | Represents the JSON value @"card_present"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumCardPresent | -- | Represents the JSON value @"eps"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumEps | -- | Represents the JSON value @"giropay"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumGiropay | -- | Represents the JSON value @"ideal"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumIdeal | -- | Represents the JSON value @"klarna"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumKlarna | -- | Represents the JSON value @"multibanco"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumMultibanco | -- | Represents the JSON value @"p24"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumP24 | -- | Represents the JSON value @"sepa_debit"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumSepaDebit | -- | Represents the JSON value @"sofort"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumSofort | -- | Represents the JSON value @"three_d_secure"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumThreeDSecure | -- | Represents the JSON value @"wechat"@ PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumWechat deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerBankAccountsIdResponseBody200Type' where toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'Other val) = val toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAchCreditTransfer) = "ach_credit_transfer" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAchDebit) = "ach_debit" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAcssDebit) = "acss_debit" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAlipay) = "alipay" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAuBecsDebit) = "au_becs_debit" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumBancontact) = "bancontact" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumCard) = "card" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumCardPresent) = "card_present" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumEps) = "eps" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumGiropay) = "giropay" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumIdeal) = "ideal" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumKlarna) = "klarna" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumMultibanco) = "multibanco" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumP24) = "p24" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumSepaDebit) = "sepa_debit" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumSofort) = "sofort" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumThreeDSecure) = "three_d_secure" toJSON (PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumWechat) = "wechat" instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerBankAccountsIdResponseBody200Type' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "ach_credit_transfer" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAchCreditTransfer | val GHC.Classes.== "ach_debit" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAchDebit | val GHC.Classes.== "acss_debit" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAcssDebit | val GHC.Classes.== "alipay" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAlipay | val GHC.Classes.== "au_becs_debit" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumAuBecsDebit | val GHC.Classes.== "bancontact" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumBancontact | val GHC.Classes.== "card" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumCard | val GHC.Classes.== "card_present" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumCardPresent | val GHC.Classes.== "eps" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumEps | val GHC.Classes.== "giropay" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumGiropay | val GHC.Classes.== "ideal" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumIdeal | val GHC.Classes.== "klarna" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumKlarna | val GHC.Classes.== "multibanco" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumMultibanco | val GHC.Classes.== "p24" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumP24 | val GHC.Classes.== "sepa_debit" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumSepaDebit | val GHC.Classes.== "sofort" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumSofort | val GHC.Classes.== "three_d_secure" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumThreeDSecure | val GHC.Classes.== "wechat" -> PostCustomersCustomerBankAccountsIdResponseBody200Type'EnumWechat | GHC.Base.otherwise -> PostCustomersCustomerBankAccountsIdResponseBody200Type'Other val )